亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dlg_sound.c

?? 十七種模擬器源代碼 非常有用的作課程設計不可缺少的
?? C
字號:
#include "raine.h"#include "rgui.h"#include "rguiproc.h"#include "gui.h"#include "dlg_sound.h"#include "palette.h"#include "ingame.h"#include "sasound.h"extern int use_emulated_ym3812;extern char soundname[96];DIALOG sound_setup_dialog[] ={   /* (dialog proc)     (x)   (y)   (w)   (h)   (fg)             (bg)                 (key) (flags)  (d1)  (d2)  (dp) */   { d_raine_window_proc,0,    0,    216,  190,  GUI_COL_TEXT_1,  GUI_BOX_COL_MIDDLE,  0,    0,       0,    0,    "Sound Setup"},   { d_raine_list_proc,  8,    28,   200,  80,   GUI_COL_TEXT_1,  GUI_BOX_COL_MIDDLE,  0,    D_EXIT,  0,    0,    soundcardlist_getter},   { x_raine_button_proc,8,    166,  48,   16,   GUI_COL_TEXT_1,  GUI_BOX_COL_MIDDLE,  'O',  D_EXIT,  0,    0,    "&Okay"},   { x_raine_button_proc,64,   166,  48,   16,   GUI_COL_TEXT_1,  GUI_BOX_COL_MIDDLE,  'C',  D_EXIT,  0,    0,    "&Cancel"},   { x_text_proc,        8,    16,   0,    8,    GUI_COL_TEXT_2,  GUI_BOX_COL_MIDDLE,  0,    0,       0,    0,    "Choose Sound Driver:"},   { x_text_proc,        8,    114,  1,    1,    GUI_COL_TEXT_2,  GUI_BOX_COL_MIDDLE,  0,    0,       0,    0,    "Sample Rate:"},   { x_raine_radio_proc, 8,    124,  64,   9,    GUI_COL_TEXT_1,  GUI_BOX_COL_MIDDLE,  0,    0,       0,    1,    "11025"},   { x_raine_radio_proc, 8,    134,  64,   9,    GUI_COL_TEXT_1,  GUI_BOX_COL_MIDDLE,  0,    0,       0,    1,    "22050"},   { x_raine_radio_proc, 8,    144,  64,   9,    GUI_COL_TEXT_1,  GUI_BOX_COL_MIDDLE,  0,    0,       0,    1,    "44100"},   { NULL,               0,    0,    0,    0,    0,               0,                   0,    0,       0,    0,    NULL}};char *soundcardlist_getter(int index, int *list_size){   if(index==-1){      *list_size = RaineSoundCardTotal;      return NULL;   }   else{      if((index >= 0)&&(index<RaineSoundCardTotal))         return sound_card_name(index);      else         return NULL;   }}void get_sound_variables(void){      // Initialize Sample Rate switch      // -----------------------------      sound_setup_dialog[SND_RATE_LIST].flags=0;      sound_setup_dialog[SND_RATE_LIST+1].flags=0;      sound_setup_dialog[SND_RATE_LIST+2].flags=0;      switch(SampleRate){          case 11025:             sound_setup_dialog[SND_RATE_LIST+0].flags=D_SELECTED;          break;          case 44100:             sound_setup_dialog[SND_RATE_LIST+2].flags=D_SELECTED;          break;          case 22050:          default:             SampleRate=22050;             sound_setup_dialog[SND_RATE_LIST+1].flags=D_SELECTED;          break;      }      // Initialize Soundcard switch      // ---------------------------      sound_setup_dialog[1].d1=RaineSoundCard;}void set_sound_variables(UINT8 update){   if(update){   RaineSoundCard=sound_setup_dialog[1].d1;   if((sound_setup_dialog[SND_RATE_LIST].flags)&D_SELECTED)   SampleRate=11025;   if((sound_setup_dialog[SND_RATE_LIST+1].flags)&D_SELECTED) SampleRate=22050;   if((sound_setup_dialog[SND_RATE_LIST+2].flags)&D_SELECTED) SampleRate=44100;   audio_sample_rate = sound_cfg.sample_rate = SampleRate;      change_sample_rate = 1;   }   sprintf(soundname, "%s %s", raine_translate_text("Sound:"), raine_translate_text(sound_card_name(RaineSoundCard)));   sprintf(soundname, "%s; %02dkHz",soundname,SampleRate/1000);}// sound_setup_proc():// Does sound setup options dialogint sound_setup_proc(int msg, DIALOG *d, int c){   int ret=x_raine_button_proc(msg,d,c);   if(ret==D_CLOSE){      Unselect_Button(d);      FadeGUI();      get_sound_variables();      ret=raine_do_dialog(sound_setup_dialog,-1);      if((ret!=3)&&(ret!=-1)){         set_sound_variables(1);      }      return D_REDRAW;   }   return ret;}void *old_draw = NULL;extern int screen_valid;extern int SampleVol[MAX_STREAM_CHANNELS];static void *player = NULL;extern BITMAP *BlitSource;static void INLINE helper(DIALOG *dlg,AL_METHOD(int, proc, (int, struct DIALOG *, int )),   int x, int y, int w, int h,   /* position and size of the object */   int fg, int bg,               /* foreground and background colors */   int key,                      /* keyboard shortcut (ASCII code) */   int flags,                    /* flags about the object state */   int d1, int d2,               /* any data the object might require */   void *dp,void *dp2,void *dp3) {       /* pointers to more object data */  dlg->proc = proc;  dlg->x=x; dlg->y=y; dlg->w=w; dlg->h=h;  dlg->fg=fg; dlg->bg=bg;  dlg->flags=flags;  dlg->d1=d1; dlg->d2=d2;  dlg->dp = dp; dlg->dp2 = dp2; dlg->dp3 = dp3;}static int mixer_slider(void *dp3,int d2) {  int *pvol = ((int*)dp3);  int id = pvol - SampleVol;  saSetVolume(id,d2);  return D_O_K;}      static int kill; // indicate wether to kill the gui_screen...static void mixer_draw(int *kill) {  static DIALOG mixer[64];  const char *name;  int x=25, y=0,n=1,channel,ymax=0;  int old_valid = screen_valid;    if (!GameMouse)    install_mouse();  screen_valid = 1;  set_mouse_sprite(RaineData[Mouse].dat); // This is really messy !!!  MakeGUIBack();  screen_valid = old_valid;  setup_gui_screen(kill); // also shows mouse    helper(mixer,d_raine_window_proc,x,   y,   270,  240,  GUI_COL_TEXT_1,  GUI_BOX_COL_MIDDLE,  0,    0,       0,    0,    "Mixer",NULL,NULL);  x+=10; y+=20;  for (channel = 0;channel < MAX_STREAM_CHANNELS;channel ++) {    name = stream_get_name(channel);    if (name) {            helper(&mixer[n++],x_text_proc,x, y, 1, 1, GUI_COL_TEXT_2, GUI_BOX_COL_MIDDLE, 0, 0, 0, 0, ((void*)name),NULL,NULL);      y+=10;      helper(&mixer[n++],raine_slider_proc,x,y,100,10,GUI_COL_TEXT_2,GUI_BOX_COL_MIDDLE,0,0,255,SampleVol[channel],NULL,mixer_slider,&SampleVol[channel]);      y+=10;      if (y>180){	ymax = y;	x+=130; y=20;      }    }  }  if (ymax) { // The button is at the bottom !    y = ymax;    x-= 130;  }    if (y == 20) { // No sound    helper(&mixer[n++],x_text_proc,x, y, 1, 1, GUI_COL_TEXT_2, GUI_BOX_COL_MIDDLE, 0, 0, 0, 0, "No stream allocated",NULL,NULL);    y+=20;  } else    y+=10;    // Exit button  helper(&mixer[n++],x_raine_button_proc,x,y, 48,  16,   GUI_COL_TEXT_1,  GUI_BOX_COL_MIDDLE,  'E',  D_EXIT,  0,    0,    "&Exit",NULL,NULL);    helper(&mixer[n],NULL,               0,    0,    0,    0,    0,    0,    0,    0,       0,    0,    NULL,NULL,NULL);  if (ymax)    x += 130; // To centre...  mixer[0].w = x+130;  mixer[0].h = y+25;  raine_centre_dialog(mixer);  player = init_dialog(mixer,n-1);  }static void my_update_dlg() {  if (!update_dialog(player)) {    switch_mixer();  }}void switch_mixer() {   VIDEO_INFO *vid_info;   vid_info = current_game->video_info;   if (old_draw) { // restores normal screen     if (player) {       shutdown_dialog(player);       player = NULL;     }     reset_palette_map();     show_mouse(NULL);     if (!GameMouse)       remove_mouse();     done_gui_screen(&kill);     vid_info->draw_game = old_draw;     old_draw=NULL;   } else {     old_draw = vid_info->draw_game;     vid_info->draw_game = my_update_dlg;     mixer_draw(&kill);   }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品亚洲第一区在线暖暖韩国| 国产成a人亚洲| 亚洲女子a中天字幕| 亚洲欧洲无码一区二区三区| 国产精品嫩草影院com| 国产精品国产精品国产专区不蜜| 久久久高清一区二区三区| 国产亚洲欧美日韩俺去了| 国产三级久久久| 国产精品黄色在线观看| 亚洲视频一区二区免费在线观看| 自拍偷拍欧美激情| 亚洲成人手机在线| 精品亚洲免费视频| 国产91精品入口| 日本精品视频一区二区三区| 欧美图区在线视频| 日韩美女视频在线| 国产精品免费视频网站| 亚洲美女屁股眼交| 免费观看一级欧美片| 国产毛片精品国产一区二区三区| 99久久精品国产麻豆演员表| 欧美日韩国产综合一区二区| 久久久久国产精品麻豆ai换脸| 中文成人av在线| 亚洲电影在线免费观看| 国产乱国产乱300精品| 99精品欧美一区二区三区综合在线| 在线看国产一区| 精品国产一区二区三区久久影院| 国产嫩草影院久久久久| 天天色 色综合| 99视频精品免费视频| 欧美一区二区网站| 亚洲乱码国产乱码精品精的特点| 日韩成人一级片| 91免费观看在线| 欧美成人vps| 亚洲国产成人porn| 成人激情午夜影院| 精品久久久影院| 亚洲高清久久久| kk眼镜猥琐国模调教系列一区二区| 欧美日韩在线观看一区二区 | 久久精品国产77777蜜臀| 成人国产精品免费网站| 日韩视频一区二区在线观看| 亚洲情趣在线观看| 粉嫩一区二区三区在线看| 欧美电影免费观看高清完整版| 成人欧美一区二区三区视频网页| 老司机精品视频在线| 欧美日韩免费一区二区三区| 亚洲视频在线观看三级| 国产伦精品一区二区三区免费| 8x8x8国产精品| 亚洲一线二线三线久久久| 成人动漫精品一区二区| 久久久亚洲午夜电影| 久久疯狂做爰流白浆xx| 欧美一区二区三区视频免费| 夜夜嗨av一区二区三区四季av | 亚洲精品中文在线| 成av人片一区二区| 久久精品欧美一区二区三区不卡| 久久精品99国产精品日本| 欧美肥妇free| 肉色丝袜一区二区| 精品视频资源站| 无吗不卡中文字幕| 欧美欧美欧美欧美首页| 日本中文字幕一区| 欧美日韩aaaaaa| 首页综合国产亚洲丝袜| 欧美一区二区三区人| 青青草成人在线观看| 欧美sm极限捆绑bd| 国产成人精品午夜视频免费| 久久精品一区二区三区不卡| 成人在线视频一区| 18成人在线观看| 91福利在线导航| 亚洲国产精品天堂| 日韩一区二区三区视频在线观看| 蜜乳av一区二区三区| 欧美精品一区二区三区四区| 国产成人免费在线| 亚洲少妇中出一区| 在线综合+亚洲+欧美中文字幕| 奇米888四色在线精品| 久久久三级国产网站| 成人看片黄a免费看在线| 专区另类欧美日韩| 91精品国产黑色紧身裤美女| 狠狠狠色丁香婷婷综合激情| 中文字幕欧美国产| 欧美三级一区二区| 国产美女精品人人做人人爽 | 91精品在线一区二区| 精品一区二区三区视频在线观看| 国产午夜精品一区二区三区嫩草| 99久久综合精品| 丝袜脚交一区二区| 国产精品久久久久aaaa樱花| 欧美精品日韩综合在线| 国产一区二区导航在线播放| 亚洲精品视频一区| 精品国产一二三| 91香蕉视频污| 激情久久久久久久久久久久久久久久| 国产女主播一区| 欧美精品乱码久久久久久按摩| 国产传媒久久文化传媒| 一区二区三区欧美激情| 久久久久久久久伊人| 欧美日韩一区在线| 9色porny自拍视频一区二区| 蜜臀国产一区二区三区在线播放| 中文字幕在线一区免费| 久久亚洲春色中文字幕久久久| 在线精品视频小说1| 国产成人在线看| 九九精品一区二区| 亚洲福利视频一区| 亚洲毛片av在线| **欧美大码日韩| 国产亚洲人成网站| 精品国产乱码久久久久久图片| 精品视频资源站| 色乱码一区二区三区88| 高清不卡在线观看| 精品亚洲国产成人av制服丝袜| 亚洲超丰满肉感bbw| 亚洲精品日韩一| 亚洲色图制服诱惑 | 欧美精品在线一区二区三区| 91视频你懂的| www.色综合.com| 高清不卡在线观看| 国产精品白丝av| 国产ts人妖一区二区| 美女视频网站黄色亚洲| 美女网站色91| 理论片日本一区| 国产一区福利在线| 国产美女主播视频一区| 国产一区二三区| 国产成人精品综合在线观看| 国产一区二区三区美女| 国产精品一区免费在线观看| 国产精品一品视频| 国产精品自拍在线| 国产成人精品免费一区二区| 国产一区二区精品久久91| 国产又黄又大久久| 成人影视亚洲图片在线| 成人高清视频免费观看| 99精品1区2区| 欧美四级电影网| 91精品国产一区二区三区香蕉| 91精品综合久久久久久| 精品成人一区二区| 中文字幕av免费专区久久| 国产精品灌醉下药二区| 亚洲精品国产精品乱码不99| 亚洲成人三级小说| 麻豆专区一区二区三区四区五区| 国内精品伊人久久久久av影院 | 国产日韩高清在线| 中文字幕一区二区三区不卡在线 | 欧美另类高清zo欧美| 欧美一区二区福利视频| 久久毛片高清国产| 国产精品午夜电影| 亚洲亚洲精品在线观看| 日本特黄久久久高潮| 国产一区二区精品久久99| 99精品久久只有精品| 欧美日韩国产综合久久| 久久综合九色综合久久久精品综合 | 日韩一区二区在线看片| 久久久久久久久久久久久夜| 成人免费在线视频| 美女一区二区三区| 99久久精品国产导航| 欧美久久高跟鞋激| 国产精品免费人成网站| 亚洲线精品一区二区三区八戒| 蜜桃精品在线观看| 99久久久精品| 欧美精品一区二区三区在线播放| 亚洲日本电影在线| 精品午夜一区二区三区在线观看| 色婷婷综合中文久久一本| 91精品久久久久久蜜臀| 日韩美女精品在线| 久久国产麻豆精品| 欧美日韩在线播放三区| 国产精品美女www爽爽爽|