Diff for /np2/win9x/dialog/d_sound.cpp between versions 1.1.1.1 and 1.8

version 1.1.1.1, 2003/10/16 17:59:03 version 1.8, 2003/11/03 00:49:55
Line 2 Line 2
 #include        <windowsx.h>  #include        <windowsx.h>
 #include        <commctrl.h>  #include        <commctrl.h>
 #include        <prsht.h>  #include        <prsht.h>
 #include        "resource.h"  
 #include        "strres.h"  #include        "strres.h"
   #include        "resource.h"
 #include        "np2.h"  #include        "np2.h"
   #include        "dosio.h"
 #include        "joymng.h"  #include        "joymng.h"
 #include        "sysmng.h"  #include        "sysmng.h"
 #include        "menu.h"  #include        "menu.h"
   #include        "np2class.h"
   #include        "dialog.h"
   #include        "dialogs.h"
   #include        "bit2res.h"
 #include        "pccore.h"  #include        "pccore.h"
 #include        "iocore.h"  #include        "iocore.h"
 #include        "sound.h"  #include        "sound.h"
 #include        "fmboard.h"  #include        "fmboard.h"
 #include        "bit2res.h"  
 #include        "dialog.h"  
 #include        "dialogs.h"  
 #include        "s98.h"  #include        "s98.h"
   
   
Line 27  static const char str_sndopt[] = "Sound  Line 29  static const char str_sndopt[] = "Sound 
   
   
 typedef struct {  typedef struct {
         int             res;          UINT16  res;
         int             resstr;          UINT16  resstr;
         BYTE    *value;          BYTE    *value;
         WORD    min;          UINT16  min;
         WORD    max;          UINT16  max;
 } SLIDER_T;  } SLIDERTBL;
   
 static void slidersetvaluestr(HWND hWnd, const SLIDER_T *item, BYTE value) {  static void slidersetvaluestr(HWND hWnd, const SLIDERTBL *item, BYTE value) {
   
         char    work[32];          char    work[32];
   
Line 42  static void slidersetvaluestr(HWND hWnd, Line 44  static void slidersetvaluestr(HWND hWnd,
         SetDlgItemText(hWnd, item->resstr, work);          SetDlgItemText(hWnd, item->resstr, work);
 }  }
   
 static void slidersetvalue(HWND hWnd, const SLIDER_T *item, BYTE value) {  static void slidersetvalue(HWND hWnd, const SLIDERTBL *item, BYTE value) {
   
         if (value > (BYTE)(item->max)) {          if (value > (BYTE)(item->max)) {
                 value = (BYTE)(item->max);                  value = (BYTE)(item->max);
Line 54  static void slidersetvalue(HWND hWnd, co Line 56  static void slidersetvalue(HWND hWnd, co
         slidersetvaluestr(hWnd, item, value);          slidersetvaluestr(hWnd, item, value);
 }  }
   
 static void sliderinit(HWND hWnd, const SLIDER_T *item) {  static void sliderinit(HWND hWnd, const SLIDERTBL *item) {
   
         SendDlgItemMessage(hWnd, item->res, TBM_SETRANGE, TRUE,          SendDlgItemMessage(hWnd, item->res, TBM_SETRANGE, TRUE,
                                                                                         MAKELONG(item->min, item->max));                                                                                          MAKELONG(item->min, item->max));
         slidersetvalue(hWnd, item, *(item->value));          slidersetvalue(hWnd, item, *(item->value));
 }  }
   
 static void sliderresetpos(HWND hWnd, const SLIDER_T *item) {  static void sliderresetpos(HWND hWnd, const SLIDERTBL *item) {
   
         BYTE    value;          BYTE    value;
   
Line 75  static void sliderresetpos(HWND hWnd, co Line 77  static void sliderresetpos(HWND hWnd, co
         slidersetvaluestr(hWnd, item, value);          slidersetvaluestr(hWnd, item, value);
 }  }
   
 static BYTE sliderrestore(HWND hWnd, const SLIDER_T *item) {  static BYTE sliderrestore(HWND hWnd, const SLIDERTBL *item) {
   
         BYTE    value;          BYTE    value;
         BYTE    ret;          BYTE    ret;
Line 94  static BYTE sliderrestore(HWND hWnd, con Line 96  static BYTE sliderrestore(HWND hWnd, con
         return(ret);          return(ret);
 }  }
   
 // -------------------------------------------------------- mixer  // ---- mixer
   
 static const SLIDER_T sndmixitem[] = {  static const SLIDERTBL sndmixitem[] = {
                 {IDC_VOLFM,             IDC_VOLFMSTR,           &np2cfg.vol_fm,         0,128},                  {IDC_VOLFM,             IDC_VOLFMSTR,           &np2cfg.vol_fm,         0,128},
                 {IDC_VOLPSG,    IDC_VOLPSGSTR,          &np2cfg.vol_ssg,        0,128},                  {IDC_VOLPSG,    IDC_VOLPSGSTR,          &np2cfg.vol_ssg,        0,128},
                 {IDC_VOLADPCM,  IDC_VOLADPCMSTR,        &np2cfg.vol_adpcm,      0,128},                  {IDC_VOLADPCM,  IDC_VOLADPCMSTR,        &np2cfg.vol_adpcm,      0,128},
Line 137  static LRESULT CALLBACK SndmixDlgProc(HW Line 139  static LRESULT CALLBACK SndmixDlgProc(HW
                         break;                          break;
   
                 case WM_NOTIFY:                  case WM_NOTIFY:
                         if ((((NMHDR *)lp)->code) == PSN_APPLY) {                          if ((((NMHDR *)lp)->code) == (UINT)PSN_APPLY) {
                                 for (i=0; i<5; i++) {                                  for (i=0; i<5; i++) {
                                         if (sliderrestore(hWnd, &sndmixitem[i])) {                                          if (sliderrestore(hWnd, &sndmixitem[i])) {
                                                 sysmng_update(SYS_UPDATECFG);                                                  sysmng_update(SYS_UPDATECFG);
Line 161  static LRESULT CALLBACK SndmixDlgProc(HW Line 163  static LRESULT CALLBACK SndmixDlgProc(HW
   
 // -------------------------------------------------------- PC-9801-14  // -------------------------------------------------------- PC-9801-14
   
 const static SLIDER_T snd14item[] = {  static const SLIDERTBL snd14item[] = {
                 {IDC_VOL14L,    IDC_VOL14LSTR,          np2cfg.vol14+0,         0,15},                  {IDC_VOL14L,    IDC_VOL14LSTR,          np2cfg.vol14+0,         0,15},
                 {IDC_VOL14R,    IDC_VOL14RSTR,          np2cfg.vol14+1,         0,15},                  {IDC_VOL14R,    IDC_VOL14RSTR,          np2cfg.vol14+1,         0,15},
                 {IDC_VOLF2,             IDC_VOLF2STR,           np2cfg.vol14+2,         0,15},                  {IDC_VOLF2,             IDC_VOLF2STR,           np2cfg.vol14+2,         0,15},
Line 193  static LRESULT CALLBACK Snd14optDlgProc( Line 195  static LRESULT CALLBACK Snd14optDlgProc(
                         break;                          break;
   
                 case WM_NOTIFY:                  case WM_NOTIFY:
                         if ((((NMHDR *)lp)->code) == PSN_APPLY) {                          if ((((NMHDR *)lp)->code) == (UINT)PSN_APPLY) {
                                 for (i=0; i<6; i++) {                                  for (i=0; i<6; i++) {
                                         if (sliderrestore(hWnd, &snd14item[i])) {                                          if (sliderrestore(hWnd, &snd14item[i])) {
                                                 sysmng_update(SYS_UPDATECFG);                                                  sysmng_update(SYS_UPDATECFG);
Line 207  static LRESULT CALLBACK Snd14optDlgProc( Line 209  static LRESULT CALLBACK Snd14optDlgProc(
         return(FALSE);          return(FALSE);
 }  }
   
 // -------------------------------------------------------- 26K, SPB jumper  
   // ---- 26K, SPB jumper
   
   static const UINT snd26paranum[4] = {0, 3, 1, 2};
   
 static void setsnd26iopara(HWND hWnd, BYTE value) {  static void setsnd26iopara(HWND hWnd, BYTE value) {
   
Line 224  static BYTE getsnd26io(HWND hWnd, WORD r Line 229  static BYTE getsnd26io(HWND hWnd, WORD r
   
 static void setsnd26intpara(HWND hWnd, BYTE value) {  static void setsnd26intpara(HWND hWnd, BYTE value) {
   
 static WPARAM paranum[4] = {(WPARAM)0, (WPARAM)3, (WPARAM)1, (WPARAM)2};          SendMessage(hWnd, CB_SETCURSEL,
                                                   (WPARAM)snd26paranum[(value >> 6) & 3], (LPARAM)0);
         SendMessage(hWnd, CB_SETCURSEL, paranum[(value >> 6) & 3], (LPARAM)0);  
 }  }
   
 static BYTE getsnd26int(HWND hWnd, WORD res) {  static BYTE getsnd26int(HWND hWnd, WORD res) {
Line 294  void setsnd26romdip(BYTE *image, int px, Line 298  void setsnd26romdip(BYTE *image, int px,
         dlgs_setjumpery(image, px + v, py, align);          dlgs_setjumpery(image, px + v, py, align);
 }  }
   
 // -------------------------------------------------------- PC-9801-26  // ---- PC-9801-26
   
 static  BYTE                    snd26 = 0;  static  BYTE                    snd26 = 0;
 static  SUBCLASSPROC    oldidc_snd26jmp = NULL;  static  SUBCLASSPROC    oldidc_snd26jmp = NULL;
Line 357  static void set26jmp(HWND hWnd, BYTE val Line 361  static void set26jmp(HWND hWnd, BYTE val
         }          }
 }  }
   
 static LRESULT CALLBACK Snd26optDlgProc(HWND hWnd, UINT msg,  static void snd26cmddipsw(HWND hWnd) {
                                                                                                         WPARAM wp, LPARAM lp) {  
         BYTE    b, bit;  
         RECT    rect1;          RECT    rect1;
         RECT    rect2;          RECT    rect2;
         POINT   p;          POINT   p;
           BYTE    b, bit;
   
           GetWindowRect(GetDlgItem(hWnd, IDC_SND26JMP), &rect1);
           GetClientRect(GetDlgItem(hWnd, IDC_SND26JMP), &rect2);
           GetCursorPos(&p);
           p.x += rect2.left - rect1.left;
           p.y += rect2.top - rect1.top;
           p.x /= 9;
           p.y /= 9;
           if ((p.y < 1) || (p.y >= 3)) {
                   return;
           }
           if ((p.x >= 2) && (p.x < 7)) {
                   b = (BYTE)(p.x - 2);
                   if ((snd26 ^ b) & 7) {
                           snd26 &= ~0x07;
                           snd26 |= b;
                           setsnd26rompara(GetDlgItem(hWnd, IDC_SND26ROM), b);
                           InvalidateRect(GetDlgItem(hWnd, IDC_SND26JMP), NULL, TRUE);
                   }
           }
           else if ((p.x >= 9) && (p.x < 12)) {
                   b = snd26;
                   bit = 0x40 << (2 - p.y);
                   switch(p.x) {
                           case 9:
                                   b |= bit;
                                   break;
   
                           case 10:
                                   b ^= bit;
                                   break;
   
                           case 11:
                                   b &= ~bit;
                                   break;
                   }
                   if (snd26 != b) {
                           snd26 = b;
                           setsnd26intpara(GetDlgItem(hWnd, IDC_SND26INT), b);
                           InvalidateRect(GetDlgItem(hWnd, IDC_SND26JMP), NULL, TRUE);
                   }
           }
           else if ((p.x >= 15) && (p.x < 17)) {
                   b = (BYTE)((p.x - 15) << 4);
                   if ((snd26 ^ b) & 0x10) {
                           snd26 &= ~0x10;
                           snd26 |= b;
                           setsnd26iopara(GetDlgItem(hWnd, IDC_SND26IO), b);
                           InvalidateRect(GetDlgItem(hWnd, IDC_SND26JMP), NULL, TRUE);
                   }
           }
   }
   
   static LRESULT CALLBACK Snd26optDlgProc(HWND hWnd, UINT msg,
                                                                                                           WPARAM wp, LPARAM lp) {
   
         switch(msg) {          switch(msg) {
                 case WM_INITDIALOG:                  case WM_INITDIALOG:
Line 384  static LRESULT CALLBACK Snd26optDlgProc( Line 443  static LRESULT CALLBACK Snd26optDlgProc(
                                 case IDC_SND26IO:                                  case IDC_SND26IO:
                                         set26jmp(hWnd, getsnd26io(hWnd, IDC_SND26IO), 0x10);                                          set26jmp(hWnd, getsnd26io(hWnd, IDC_SND26IO), 0x10);
                                         break;                                          break;
   
                                 case IDC_SND26INT:                                  case IDC_SND26INT:
                                         set26jmp(hWnd, getsnd26int(hWnd, IDC_SND26INT), 0xc0);                                          set26jmp(hWnd, getsnd26int(hWnd, IDC_SND26INT), 0xc0);
                                         break;                                          break;
   
                                 case IDC_SND26ROM:                                  case IDC_SND26ROM:
                                         set26jmp(hWnd, getsnd26rom(hWnd, IDC_SND26ROM), 0x07);                                          set26jmp(hWnd, getsnd26rom(hWnd, IDC_SND26ROM), 0x07);
                                         break;                                          break;
   
                                 case IDC_SND26DEF:                                  case IDC_SND26DEF:
                                         snd26 = 0xd1;                                          snd26 = 0xd1;
                                         setsnd26iopara(GetDlgItem(hWnd, IDC_SND26IO), snd26);                                          setsnd26iopara(GetDlgItem(hWnd, IDC_SND26IO), snd26);
Line 397  static LRESULT CALLBACK Snd26optDlgProc( Line 459  static LRESULT CALLBACK Snd26optDlgProc(
                                         setsnd26rompara(GetDlgItem(hWnd, IDC_SND26ROM), snd26);                                          setsnd26rompara(GetDlgItem(hWnd, IDC_SND26ROM), snd26);
                                         InvalidateRect(GetDlgItem(hWnd, IDC_SND26JMP), NULL, TRUE);                                          InvalidateRect(GetDlgItem(hWnd, IDC_SND26JMP), NULL, TRUE);
                                         break;                                          break;
   
                                 case IDC_SND26JMP:                                  case IDC_SND26JMP:
                                         GetWindowRect(GetDlgItem(hWnd, IDC_SND26JMP), &rect1);                                          snd26cmddipsw(hWnd);
                                         GetClientRect(GetDlgItem(hWnd, IDC_SND26JMP), &rect2);  
                                         GetCursorPos(&p);  
                                         p.x += rect2.left - rect1.left;  
                                         p.y += rect2.top - rect1.top;  
                                         p.x /= 9;  
                                         p.y /= 9;  
                                         if ((p.y < 1) || (p.y >= 3)) {  
                                                 break;  
                                         }  
                                         if ((p.x >= 2) && (p.x < 7)) {  
                                                 b = (BYTE)(p.x - 2);  
                                                 if ((snd26 ^ b) & 7) {  
                                                         snd26 &= ~0x07;  
                                                         snd26 |= b;  
                                                         setsnd26rompara(GetDlgItem(hWnd, IDC_SND26ROM),  
                                                                                                                         b);  
                                                         InvalidateRect(GetDlgItem(hWnd, IDC_SND26JMP),  
                                                                                                                         NULL, TRUE);  
                                                 }  
                                         }  
                                         else if ((p.x >= 9) && (p.x < 12)) {  
                                                 b = snd26;  
                                                 bit = 0x40 << (2 - p.y);  
                                                 switch(p.x) {  
                                                         case 9:  
                                                                 b |= bit;  
                                                                 break;  
                                                         case 10:  
                                                                 b ^= bit;  
                                                                 break;  
                                                         case 11:  
                                                                 b &= ~bit;  
                                                                 break;  
                                                 }  
                                                 if (snd26 != b) {  
                                                         snd26 = b;  
                                                         setsnd26intpara(GetDlgItem(hWnd, IDC_SND26INT),  
                                                                                                                         b);  
                                                         InvalidateRect(GetDlgItem(hWnd, IDC_SND26JMP),  
                                                                                                                         NULL, TRUE);  
                                                 }  
                                         }  
                                         else if ((p.x >= 15) && (p.x < 17)) {  
                                                 b = (BYTE)((p.x - 15) << 4);  
                                                 if ((snd26 ^ b) & 0x10) {  
                                                         snd26 &= ~0x10;  
                                                         snd26 |= b;  
                                                         setsnd26iopara(GetDlgItem(hWnd, IDC_SND26IO), b);  
                                                         InvalidateRect(GetDlgItem(hWnd, IDC_SND26JMP),  
                                                                                                                         NULL, TRUE);  
                                                 }  
                                         }  
                                         break;                                          break;
                         }                          }
                         break;                          break;
   
                 case WM_NOTIFY:                  case WM_NOTIFY:
                         if ((((NMHDR *)lp)->code) == PSN_APPLY) {                          if ((((NMHDR *)lp)->code) == (UINT)PSN_APPLY) {
                                 if (np2cfg.snd26opt != snd26) {                                  if (np2cfg.snd26opt != snd26) {
                                         np2cfg.snd26opt = snd26;                                          np2cfg.snd26opt = snd26;
                                         sysmng_update(SYS_UPDATECFG);                                          sysmng_update(SYS_UPDATECFG);
Line 468  static LRESULT CALLBACK Snd26optDlgProc( Line 479  static LRESULT CALLBACK Snd26optDlgProc(
         return(FALSE);          return(FALSE);
 }  }
   
 // ------------------------------------------------------ PC-9801-86  // ---- PC-9801-86
   
 static  BYTE                    snd86 = 0;  static  BYTE                    snd86 = 0;
 static  SUBCLASSPROC    oldidc_snd86dip = NULL;  static  SUBCLASSPROC    oldidc_snd86dip = NULL;
   
   static const UINT snd86paranum[4] = {0, 1, 3, 2};
   
 static LRESULT CALLBACK snd86jmp(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {  static LRESULT CALLBACK snd86jmp(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
   
         PAINTSTRUCT                     ps;          PAINTSTRUCT                     ps;
Line 544  static BYTE getsnd86io(HWND hWnd, WORD r Line 557  static BYTE getsnd86io(HWND hWnd, WORD r
   
 static void setsnd86intpara(HWND hWnd, BYTE value) {  static void setsnd86intpara(HWND hWnd, BYTE value) {
   
 static WPARAM paranum[4] = {(WPARAM)0, (WPARAM)1, (WPARAM)3, (WPARAM)2};          SendMessage(hWnd, CB_SETCURSEL,
                                                   (WPARAM)snd86paranum[(value >> 2) & 3], (LPARAM)0);
         SendMessage(hWnd, CB_SETCURSEL, paranum[(value >> 2) & 3], (LPARAM)0);  
 }  }
   
 static BYTE getsnd86int(HWND hWnd) {  static BYTE getsnd86int(HWND hWnd) {
Line 557  static BYTE getsnd86int(HWND hWnd) { Line 569  static BYTE getsnd86int(HWND hWnd) {
         switch(work[3]) {          switch(work[3]) {
                 case '0':                  case '0':
                         return(0x00);                          return(0x00);
   
                 case '4':                  case '4':
                         return(0x04);                          return(0x04);
   
                 case '6':                  case '6':
                         return(0x08);                          return(0x08);
         }          }
Line 689  static LRESULT CALLBACK Snd86optDlgProc( Line 703  static LRESULT CALLBACK Snd86optDlgProc(
                         break;                          break;
   
                 case WM_NOTIFY:                  case WM_NOTIFY:
                         if ((((NMHDR *)lp)->code) == PSN_APPLY) {                          if ((((NMHDR *)lp)->code) == (UINT)PSN_APPLY) {
                                 if (np2cfg.snd86opt != snd86) {                                  if (np2cfg.snd86opt != snd86) {
                                         np2cfg.snd86opt = snd86;                                          np2cfg.snd86opt = snd86;
                                         sysmng_update(SYS_UPDATECFG);                                          sysmng_update(SYS_UPDATECFG);
Line 919  static LRESULT CALLBACK SPBoptDlgProc(HW Line 933  static LRESULT CALLBACK SPBoptDlgProc(HW
                         break;                          break;
   
                 case WM_NOTIFY:                  case WM_NOTIFY:
                         if ((((NMHDR *)lp)->code) == PSN_APPLY) {                          if ((((NMHDR *)lp)->code) == (UINT)PSN_APPLY) {
                                 update = 0;                                  update = 0;
                                 if (np2cfg.spbopt != spb) {                                  if (np2cfg.spbopt != spb) {
                                         np2cfg.spbopt = spb;                                          np2cfg.spbopt = spb;
Line 935  static LRESULT CALLBACK SPBoptDlgProc(HW Line 949  static LRESULT CALLBACK SPBoptDlgProc(HW
                                         np2cfg.spb_vrl = b;                                          np2cfg.spb_vrl = b;
                                         update |= SYS_UPDATECFG;                                          update |= SYS_UPDATECFG;
                                 }                                  }
 //                              FM_setVR(np2cfg.spb_vrc, np2cfg.spb_vrl);                                  opngen_setVR(np2cfg.spb_vrc, np2cfg.spb_vrl);
                                 b = (BYTE)(Button_GetCheck(GetDlgItem(hWnd, IDC_SPBREVERSE))?                                                                                                                                                   1:0);                                  b = (BYTE)(Button_GetCheck(GetDlgItem(hWnd, IDC_SPBREVERSE))?                                                                                                                                                   1:0);
                                 if (np2cfg.spb_x != b) {                                  if (np2cfg.spb_x != b) {
                                         np2cfg.spb_x = b;                                          np2cfg.spb_x = b;
Line 949  static LRESULT CALLBACK SPBoptDlgProc(HW Line 963  static LRESULT CALLBACK SPBoptDlgProc(HW
         return(FALSE);          return(FALSE);
 }  }
   
 // ----------------------------------------------------------- JOYPAD  
                                                                                                                                 // ver0.28  // ---- JOYPAD
   
 typedef struct {  typedef struct {
         int                     res;          UINT16  res;
         BYTE            *ptr;          UINT16  bit;
         DWORD           bit;          BYTE    *ptr;
 } CHKBTN_RES;  } CHECKTBL;
   
 const static CHKBTN_RES pad1opt[13] = {  static const CHECKTBL pad1opt[13] = {
         {IDC_JOYPAD1,   &np2oscfg.JOYPAD1,              0},                          {IDC_JOYPAD1, 0, &np2oscfg.JOYPAD1},
         {IDC_PAD1_1A,   np2oscfg.JOY1BTN + 0,   0},                          {IDC_PAD1_1A, 0, np2oscfg.JOY1BTN + 0},
         {IDC_PAD1_1B,   np2oscfg.JOY1BTN + 1,   0},                          {IDC_PAD1_1B, 0, np2oscfg.JOY1BTN + 1},
         {IDC_PAD1_1C,   np2oscfg.JOY1BTN + 2,   0},                          {IDC_PAD1_1C, 0, np2oscfg.JOY1BTN + 2},
         {IDC_PAD1_1D,   np2oscfg.JOY1BTN + 3,   0},                          {IDC_PAD1_1D, 0, np2oscfg.JOY1BTN + 3},
         {IDC_PAD1_2A,   np2oscfg.JOY1BTN + 0,   1},                          {IDC_PAD1_2A, 1, np2oscfg.JOY1BTN + 0},
         {IDC_PAD1_2B,   np2oscfg.JOY1BTN + 1,   1},                          {IDC_PAD1_2B, 1, np2oscfg.JOY1BTN + 1},
         {IDC_PAD1_2C,   np2oscfg.JOY1BTN + 2,   1},                          {IDC_PAD1_2C, 1, np2oscfg.JOY1BTN + 2},
         {IDC_PAD1_2D,   np2oscfg.JOY1BTN + 3,   1},                          {IDC_PAD1_2D, 1, np2oscfg.JOY1BTN + 3},
         {IDC_PAD1_RA,   np2oscfg.JOY1BTN + 0,   2},                          {IDC_PAD1_RA, 2, np2oscfg.JOY1BTN + 0},
         {IDC_PAD1_RB,   np2oscfg.JOY1BTN + 1,   2},                          {IDC_PAD1_RB, 2, np2oscfg.JOY1BTN + 1},
         {IDC_PAD1_RC,   np2oscfg.JOY1BTN + 2,   2},                          {IDC_PAD1_RC, 2, np2oscfg.JOY1BTN + 2},
         {IDC_PAD1_RD,   np2oscfg.JOY1BTN + 3,   2}};                          {IDC_PAD1_RD, 2, np2oscfg.JOY1BTN + 3}};
   
   
 static void checkbtnres_load(HWND hWnd, const CHKBTN_RES *item) {  static void checkbtnres_load(HWND hWnd, const CHECKTBL *item) {
   
         Button_SetCheck(GetDlgItem(hWnd, item->res),          Button_SetCheck(GetDlgItem(hWnd, item->res),
                                                                 (*(item->ptr)) & (1 << (item->bit)));                                                                  (*(item->ptr)) & (1 << (item->bit)));
 }  }
   
 static BYTE checkbtnres_store(HWND hWnd, const CHKBTN_RES *item) {  static BYTE checkbtnres_store(HWND hWnd, const CHECKTBL *item) {
   
         BYTE    value;          BYTE    value;
         BYTE    bit;          BYTE    bit;
Line 994  static BYTE checkbtnres_store(HWND hWnd, Line 1009  static BYTE checkbtnres_store(HWND hWnd,
         return(ret);          return(ret);
 }  }
   
   
 static LRESULT CALLBACK PAD1optDlgProc(HWND hWnd, UINT msg,  static LRESULT CALLBACK PAD1optDlgProc(HWND hWnd, UINT msg,
                                                                                                         WPARAM wp, LPARAM lp) {                                                                                                          WPARAM wp, LPARAM lp) {
   
Line 1012  static LRESULT CALLBACK PAD1optDlgProc(H Line 1026  static LRESULT CALLBACK PAD1optDlgProc(H
                         return(TRUE);                          return(TRUE);
   
                 case WM_NOTIFY:                  case WM_NOTIFY:
                         if ((((NMHDR *)lp)->code) == PSN_APPLY) {                          if ((((NMHDR *)lp)->code) == (UINT)PSN_APPLY) {
                                 renewal = 0;                                  renewal = 0;
                                 for (i=0; i<13; i++) {                                  for (i=0; i<13; i++) {
                                         renewal |= checkbtnres_store(hWnd, pad1opt + i);                                          renewal |= checkbtnres_store(hWnd, pad1opt + i);
Line 1029  static LRESULT CALLBACK PAD1optDlgProc(H Line 1043  static LRESULT CALLBACK PAD1optDlgProc(H
 }  }
   
   
 // --------------------------------------------------------------------------  // ----
   
 void dialog_sndopt(HWND hWnd) {  void dialog_sndopt(HWND hWnd) {
   
Line 1071  void dialog_sndopt(HWND hWnd) { Line 1085  void dialog_sndopt(HWND hWnd) {
   
         ZeroMemory(&psh, sizeof(psh));          ZeroMemory(&psh, sizeof(psh));
         psh.dwSize = sizeof(PROPSHEETHEADER);          psh.dwSize = sizeof(PROPSHEETHEADER);
         psh.dwFlags = PSH_NOAPPLYNOW;          psh.dwFlags = PSH_NOAPPLYNOW | PSH_USEHICON | PSH_USECALLBACK;
         psh.hwndParent = hWnd;          psh.hwndParent = hWnd;
         psh.hInstance = hinst;          psh.hInstance = hinst;
         psh.nPages = 6;                                                                                                 // ver0.29          psh.hIcon = LoadIcon(hinst, MAKEINTRESOURCE(IDI_ICON2));
           psh.nPages = 6;
         psh.phpage = hpsp;          psh.phpage = hpsp;
         psh.pszCaption = str_sndopt;          psh.pszCaption = str_sndopt;
           psh.pfnCallback = np2class_propetysheet;
         PropertySheet(&psh);          PropertySheet(&psh);
         InvalidateRect(hWndMain, NULL, TRUE);          InvalidateRect(hWnd, NULL, TRUE);
 }  }
   
   
Line 1093  static const FILESEL s98ui = {s98ui_titl Line 1109  static const FILESEL s98ui = {s98ui_titl
 void dialog_s98(HWND hWnd) {  void dialog_s98(HWND hWnd) {
   
         BOOL    check;          BOOL    check;
 const char      *p;          char    path[MAX_PATH];
   
         S98_close();          S98_close();
         check = FALSE;          check = FALSE;
         p = dlgs_selectwritenum(hWnd, &s98ui, s98ui_file,          file_cpyname(path, bmpfilefolder, sizeof(path));
                                                                         bmpfilefolder, sizeof(bmpfilefolder));          file_cutname(path);
         if ((p != NULL) && (S98_open(p) == SUCCESS)) {          file_catname(path, s98ui_file, sizeof(path));
           if ((dlgs_selectwritenum(hWnd, &s98ui, path, sizeof(path))) &&
                   (S98_open(path) == SUCCESS)) {
                   file_cpyname(bmpfilefolder, path, sizeof(bmpfilefolder));
                   sysmng_update(SYS_UPDATEOSCFG);
                 check = TRUE;                  check = TRUE;
         }          }
         xmenu_sets98logging(check);          xmenu_sets98logging(check);

Removed from v.1.1.1.1  
changed lines
  Added in v.1.8


RetroPC.NET-CVS <cvs@retropc.net>