-Cleaned up some of my old code
-Removed a few duplicate extern's -Added Sound Settings dialog - You can now select which sound core to use, the sound buffer size, and the volume level -All sound settings are loaded from and saved to desmume.ini
This commit is contained in:
parent
450364c4d6
commit
4e988e18f6
|
@ -43,10 +43,6 @@
|
||||||
//#define LOG_DMA2
|
//#define LOG_DMA2
|
||||||
//#define LOG_DIV
|
//#define LOG_DIV
|
||||||
|
|
||||||
extern BOOL execute;
|
|
||||||
extern BOOL click;
|
|
||||||
extern NDSSystem nds;
|
|
||||||
|
|
||||||
char szRomPath[512];
|
char szRomPath[512];
|
||||||
|
|
||||||
MMU_struct MMU;
|
MMU_struct MMU;
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern BOOL execute;
|
extern volatile BOOL execute;
|
||||||
extern BOOL click;
|
extern BOOL click;
|
||||||
|
|
||||||
//#define LOG_ARM9
|
//#define LOG_ARM9
|
||||||
|
|
|
@ -157,6 +157,14 @@ void SPU_Pause(int pause)
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
void SPU_SetVolume(int volume)
|
||||||
|
{
|
||||||
|
if (SNDCore)
|
||||||
|
SNDCore->SetVolume(volume);
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
void SPU_Reset(void)
|
void SPU_Reset(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
@ -1213,7 +1221,7 @@ void SNDDummySetVolume(int volume)
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
// File Write Interface
|
// WAV Write Interface
|
||||||
//////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
int SNDFileInit(int buffersize);
|
int SNDFileInit(int buffersize);
|
||||||
|
@ -1226,7 +1234,7 @@ void SNDFileSetVolume(int volume);
|
||||||
|
|
||||||
SoundInterface_struct SNDFile = {
|
SoundInterface_struct SNDFile = {
|
||||||
SNDCORE_FILEWRITE,
|
SNDCORE_FILEWRITE,
|
||||||
"File Write Sound Interface",
|
"WAV Write Sound Interface",
|
||||||
SNDFileInit,
|
SNDFileInit,
|
||||||
SNDFileDeInit,
|
SNDFileDeInit,
|
||||||
SNDFileUpdateAudio,
|
SNDFileUpdateAudio,
|
||||||
|
|
|
@ -68,9 +68,6 @@ typedef struct
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
// u8 mvol;
|
|
||||||
// u8 lout;
|
|
||||||
// u8 rout;
|
|
||||||
BOOL enable;
|
BOOL enable;
|
||||||
u32 bufpos;
|
u32 bufpos;
|
||||||
u32 buflength;
|
u32 buflength;
|
||||||
|
@ -84,6 +81,7 @@ extern SPU_struct *SPU;
|
||||||
|
|
||||||
int SPU_ChangeSoundCore(int coreid, int buffersize);
|
int SPU_ChangeSoundCore(int coreid, int buffersize);
|
||||||
int SPU_Init(int coreid, int buffersize);
|
int SPU_Init(int coreid, int buffersize);
|
||||||
|
void SPU_SetVolume(int volume);
|
||||||
void SPU_Reset(void);
|
void SPU_Reset(void);
|
||||||
void SPU_DeInit(void);
|
void SPU_DeInit(void);
|
||||||
void SPU_KeyOn(int channel);
|
void SPU_KeyOn(int channel);
|
||||||
|
|
|
@ -63,15 +63,21 @@ extern DWORD ds_start;
|
||||||
#define KEY_SELECT ds_select
|
#define KEY_SELECT ds_select
|
||||||
#define KEY_DEBUG ds_debug
|
#define KEY_DEBUG ds_debug
|
||||||
|
|
||||||
const char *get_path()
|
void GetINIPath(char *inipath)
|
||||||
|
{
|
||||||
|
if (*vPath)
|
||||||
|
szPath = vPath;
|
||||||
|
else
|
||||||
{
|
{
|
||||||
if (*vPath) return vPath;
|
|
||||||
ZeroMemory(vPath, sizeof(vPath));
|
ZeroMemory(vPath, sizeof(vPath));
|
||||||
GetModuleFileName(NULL, vPath, sizeof(vPath));
|
GetModuleFileName(NULL, vPath, sizeof(vPath));
|
||||||
char *p = vPath + lstrlen(vPath);
|
char *p = vPath + lstrlen(vPath);
|
||||||
while (p >= vPath && *p != '\\') p--;
|
while (p >= vPath && *p != '\\') p--;
|
||||||
if (++p >= vPath) *p = 0;
|
if (++p >= vPath) *p = 0;
|
||||||
return vPath;
|
szPath = vPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
sprintf(inipath, "%s\\desmume.ini",szPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ReadConfig(void)
|
void ReadConfig(void)
|
||||||
|
@ -79,8 +85,7 @@ void ReadConfig(void)
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
szPath = (char*)get_path();
|
GetINIPath(IniName);
|
||||||
sprintf(IniName,"%s\\desmume.ini",szPath);
|
|
||||||
|
|
||||||
i=GetPrivateProfileInt("KEYS","KEY_A",31, IniName);
|
i=GetPrivateProfileInt("KEYS","KEY_A",31, IniName);
|
||||||
KEY_A = i;
|
KEY_A = i;
|
||||||
|
@ -137,8 +142,7 @@ void WriteConfig(void)
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
szPath = (char*)get_path();
|
GetINIPath(IniName);
|
||||||
sprintf(IniName,"%s\\desmume.ini",szPath);
|
|
||||||
|
|
||||||
WritePrivateProfileInt("KEYS","KEY_A",KEY_A,IniName);
|
WritePrivateProfileInt("KEYS","KEY_A",KEY_A,IniName);
|
||||||
WritePrivateProfileInt("KEYS","KEY_B",KEY_B,IniName);
|
WritePrivateProfileInt("KEYS","KEY_B",KEY_B,IniName);
|
||||||
|
|
|
@ -18,7 +18,7 @@ extern DWORD ds_select;
|
||||||
extern DWORD ds_start;
|
extern DWORD ds_start;
|
||||||
extern DWORD ds_debug;
|
extern DWORD ds_debug;
|
||||||
|
|
||||||
char *get_path();
|
void GetINIPath(char *initpath);
|
||||||
void ReadConfig(void);
|
void ReadConfig(void);
|
||||||
|
|
||||||
BOOL CALLBACK ConfigView_Proc(HWND dialog,UINT komunikat,WPARAM wparam,LPARAM lparam);
|
BOOL CALLBACK ConfigView_Proc(HWND dialog,UINT komunikat,WPARAM wparam,LPARAM lparam);
|
||||||
|
|
|
@ -24,6 +24,7 @@
|
||||||
//#define RENDER3D
|
//#define RENDER3D
|
||||||
|
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
|
#include <commctrl.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "CWindow.h"
|
#include "CWindow.h"
|
||||||
#include "../MMU.h"
|
#include "../MMU.h"
|
||||||
|
@ -64,7 +65,8 @@ HWND hwnd;
|
||||||
HDC hdc;
|
HDC hdc;
|
||||||
HINSTANCE hAppInst;
|
HINSTANCE hAppInst;
|
||||||
|
|
||||||
BOOL execute = FALSE;
|
volatile BOOL execute = FALSE;
|
||||||
|
volatile BOOL paused = TRUE;
|
||||||
u32 glock = 0;
|
u32 glock = 0;
|
||||||
|
|
||||||
BOOL click = FALSE;
|
BOOL click = FALSE;
|
||||||
|
@ -76,6 +78,10 @@ HANDLE runthread=INVALID_HANDLE_VALUE;
|
||||||
|
|
||||||
const DWORD tabkey[48]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,VK_SPACE,VK_UP,VK_DOWN,VK_LEFT,VK_RIGHT,VK_TAB,VK_SHIFT,VK_DELETE,VK_INSERT,VK_HOME,VK_END,0x0d};
|
const DWORD tabkey[48]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4f,0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,VK_SPACE,VK_UP,VK_DOWN,VK_LEFT,VK_RIGHT,VK_TAB,VK_SHIFT,VK_DELETE,VK_INSERT,VK_HOME,VK_END,0x0d};
|
||||||
DWORD ds_up,ds_down,ds_left,ds_right,ds_a,ds_b,ds_x,ds_y,ds_l,ds_r,ds_select,ds_start,ds_debug;
|
DWORD ds_up,ds_down,ds_left,ds_right,ds_a,ds_b,ds_x,ds_y,ds_l,ds_r,ds_select,ds_start,ds_debug;
|
||||||
|
static char IniName[MAX_PATH];
|
||||||
|
int sndcoretype=SNDCORE_DIRECTX;
|
||||||
|
int sndbuffersize=735*4;
|
||||||
|
int sndvolume=100;
|
||||||
|
|
||||||
SoundInterface_struct *SNDCoreList[] = {
|
SoundInterface_struct *SNDCoreList[] = {
|
||||||
&SNDDummy,
|
&SNDDummy,
|
||||||
|
@ -84,6 +90,9 @@ SoundInterface_struct *SNDCoreList[] = {
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
LRESULT CALLBACK SoundSettingsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam,
|
||||||
|
LPARAM lParam);
|
||||||
|
|
||||||
DWORD WINAPI run( LPVOID lpParameter)
|
DWORD WINAPI run( LPVOID lpParameter)
|
||||||
{
|
{
|
||||||
char txt[80];
|
char txt[80];
|
||||||
|
@ -209,6 +218,7 @@ DWORD WINAPI run( LPVOID lpParameter)
|
||||||
CWindow_RefreshALL();
|
CWindow_RefreshALL();
|
||||||
Sleep(0);
|
Sleep(0);
|
||||||
}
|
}
|
||||||
|
paused = TRUE;
|
||||||
Sleep(500);
|
Sleep(500);
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -218,10 +228,12 @@ void NDS_Pause()
|
||||||
{
|
{
|
||||||
execute = FALSE;
|
execute = FALSE;
|
||||||
SPU_Pause(1);
|
SPU_Pause(1);
|
||||||
|
while (!paused) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
void NDS_UnPause()
|
void NDS_UnPause()
|
||||||
{
|
{
|
||||||
|
paused = FALSE;
|
||||||
execute = TRUE;
|
execute = TRUE;
|
||||||
SPU_Pause(0);
|
SPU_Pause(0);
|
||||||
}
|
}
|
||||||
|
@ -276,14 +288,22 @@ int WINAPI WinMain (HINSTANCE hThisInstance,
|
||||||
LogStart();
|
LogStart();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
GetINIPath(IniName);
|
||||||
|
|
||||||
NDS_Init();
|
NDS_Init();
|
||||||
|
|
||||||
if (SPU_ChangeSoundCore(SNDCORE_DIRECTX, 735 * 4) != 0)
|
sndcoretype = GetPrivateProfileInt("Sound","SoundCore", SNDCORE_DIRECTX, IniName);
|
||||||
|
sndbuffersize = GetPrivateProfileInt("Sound","SoundBufferSize", 735 * 4, IniName);
|
||||||
|
|
||||||
|
if (SPU_ChangeSoundCore(sndcoretype, sndbuffersize) != 0)
|
||||||
{
|
{
|
||||||
MessageBox(hwnd,"Unable to initialize DirectSound","Error",MB_OK);
|
MessageBox(hwnd,"Unable to initialize DirectSound","Error",MB_OK);
|
||||||
return messages.wParam;
|
return messages.wParam;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sndvolume = GetPrivateProfileInt("Sound","Volume",100, IniName);
|
||||||
|
SPU_SetVolume(sndvolume);
|
||||||
|
|
||||||
runthread = CreateThread(NULL, 0, run, NULL, 0, &threadID);
|
runthread = CreateThread(NULL, 0, run, NULL, 0, &threadID);
|
||||||
|
|
||||||
if(LoadROM(lpszArgument))
|
if(LoadROM(lpszArgument))
|
||||||
|
@ -329,10 +349,10 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM
|
||||||
return 0;
|
return 0;
|
||||||
case WM_DESTROY:
|
case WM_DESTROY:
|
||||||
NDS_Pause();
|
NDS_Pause();
|
||||||
|
finished = TRUE;
|
||||||
|
|
||||||
if (runthread != INVALID_HANDLE_VALUE)
|
if (runthread != INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
finished = TRUE;
|
|
||||||
if (WaitForSingleObject(runthread,INFINITE) == WAIT_TIMEOUT)
|
if (WaitForSingleObject(runthread,INFINITE) == WAIT_TIMEOUT)
|
||||||
{
|
{
|
||||||
// Couldn't close thread cleanly
|
// Couldn't close thread cleanly
|
||||||
|
@ -347,10 +367,10 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM
|
||||||
return 0;
|
return 0;
|
||||||
case WM_CLOSE:
|
case WM_CLOSE:
|
||||||
NDS_Pause();
|
NDS_Pause();
|
||||||
|
finished = TRUE;
|
||||||
|
|
||||||
if (runthread != INVALID_HANDLE_VALUE)
|
if (runthread != INVALID_HANDLE_VALUE)
|
||||||
{
|
{
|
||||||
finished = TRUE;
|
|
||||||
if (WaitForSingleObject(runthread,INFINITE) == WAIT_TIMEOUT)
|
if (WaitForSingleObject(runthread,INFINITE) == WAIT_TIMEOUT)
|
||||||
{
|
{
|
||||||
// Couldn't close thread cleanly
|
// Couldn't close thread cleanly
|
||||||
|
@ -657,6 +677,11 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM
|
||||||
NDS_UnPause();
|
NDS_UnPause();
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
|
case IDM_SOUNDSETTINGS:
|
||||||
|
{
|
||||||
|
DialogBox(GetModuleHandle(NULL), "SoundSettingsDlg", hwnd, (DLGPROC)SoundSettingsDlgProc);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
case IDM_GAME_INFO:
|
case IDM_GAME_INFO:
|
||||||
{
|
{
|
||||||
CreateDialog(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_GAME_INFO), hwnd, GinfoView_Proc);
|
CreateDialog(GetModuleHandle(NULL), MAKEINTRESOURCE(IDD_GAME_INFO), hwnd, GinfoView_Proc);
|
||||||
|
@ -893,3 +918,108 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LRESULT CALLBACK SoundSettingsDlgProc(HWND hDlg, UINT uMsg, WPARAM wParam,
|
||||||
|
LPARAM lParam)
|
||||||
|
{
|
||||||
|
static timerid=0;
|
||||||
|
|
||||||
|
switch (uMsg)
|
||||||
|
{
|
||||||
|
case WM_INITDIALOG:
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
char tempstr[MAX_PATH];
|
||||||
|
|
||||||
|
// Setup Sound Core Combo box
|
||||||
|
SendDlgItemMessage(hDlg, IDC_SOUNDCORECB, CB_RESETCONTENT, 0, 0);
|
||||||
|
SendDlgItemMessage(hDlg, IDC_SOUNDCORECB, CB_ADDSTRING, 0, (long)"None");
|
||||||
|
|
||||||
|
for (i = 1; SNDCoreList[i] != NULL; i++)
|
||||||
|
SendDlgItemMessage(hDlg, IDC_SOUNDCORECB, CB_ADDSTRING, 0, (long)SNDCoreList[i]->Name);
|
||||||
|
|
||||||
|
// Set Selected Sound Core
|
||||||
|
for (i = 0; SNDCoreList[i] != NULL; i++)
|
||||||
|
{
|
||||||
|
if (sndcoretype == SNDCoreList[i]->id)
|
||||||
|
SendDlgItemMessage(hDlg, IDC_SOUNDCORECB, CB_SETCURSEL, i, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Setup Sound Buffer Size Edit Text
|
||||||
|
sprintf(tempstr, "%d", sndbuffersize);
|
||||||
|
SetDlgItemText(hDlg, IDC_SOUNDBUFFERET, tempstr);
|
||||||
|
|
||||||
|
// Setup Volume Slider
|
||||||
|
SendDlgItemMessage(hDlg, IDC_SLVOLUME, TBM_SETRANGE, 0, MAKELONG(0, 100));
|
||||||
|
|
||||||
|
// Set Selected Volume
|
||||||
|
SendDlgItemMessage(hDlg, IDC_SLVOLUME, TBM_SETPOS, TRUE, sndvolume);
|
||||||
|
|
||||||
|
timerid = SetTimer(hDlg, 1, 500, NULL);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
case WM_TIMER:
|
||||||
|
{
|
||||||
|
if (timerid == wParam)
|
||||||
|
{
|
||||||
|
int setting;
|
||||||
|
setting = SendDlgItemMessage(hDlg, IDC_SLVOLUME, TBM_GETPOS, 0, 0);
|
||||||
|
SPU_SetVolume(setting);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case WM_COMMAND:
|
||||||
|
{
|
||||||
|
switch (LOWORD(wParam))
|
||||||
|
{
|
||||||
|
case IDOK:
|
||||||
|
{
|
||||||
|
char tempstr[MAX_PATH];
|
||||||
|
|
||||||
|
EndDialog(hDlg, TRUE);
|
||||||
|
|
||||||
|
NDS_Pause();
|
||||||
|
|
||||||
|
// Write Sound core type
|
||||||
|
sndcoretype = SNDCoreList[SendDlgItemMessage(hDlg, IDC_SOUNDCORECB, CB_GETCURSEL, 0, 0)]->id;
|
||||||
|
sprintf(tempstr, "%d", sndcoretype);
|
||||||
|
WritePrivateProfileString("Sound", "SoundCore", tempstr, IniName);
|
||||||
|
|
||||||
|
// Write Sound Buffer size
|
||||||
|
GetDlgItemText(hDlg, IDC_SOUNDBUFFERET, tempstr, 6);
|
||||||
|
sscanf(tempstr, "%d", &sndbuffersize);
|
||||||
|
WritePrivateProfileString("Sound", "SoundBufferSize", tempstr, IniName);
|
||||||
|
|
||||||
|
SPU_ChangeSoundCore(sndcoretype, sndbuffersize);
|
||||||
|
|
||||||
|
// Write Volume
|
||||||
|
sndvolume = SendDlgItemMessage(hDlg, IDC_SLVOLUME, TBM_GETPOS, 0, 0);
|
||||||
|
sprintf(tempstr, "%d", sndvolume);
|
||||||
|
WritePrivateProfileString("Sound", "Volume", tempstr, IniName);
|
||||||
|
SPU_SetVolume(sndvolume);
|
||||||
|
NDS_UnPause();
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
case IDCANCEL:
|
||||||
|
{
|
||||||
|
EndDialog(hDlg, FALSE);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case WM_DESTROY:
|
||||||
|
{
|
||||||
|
if (timerid != 0)
|
||||||
|
KillTimer(hDlg, timerid);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,6 +65,7 @@ void refreshAll();
|
||||||
#define IDM_OAM 129
|
#define IDM_OAM 129
|
||||||
#define IDM_PRINTSCREEN 140
|
#define IDM_PRINTSCREEN 140
|
||||||
#define IDM_QUICK_PRINTSCREEN 141
|
#define IDM_QUICK_PRINTSCREEN 141
|
||||||
|
#define IDM_SOUNDSETTINGS 142
|
||||||
|
|
||||||
#define IDM_STATE_LOAD 150
|
#define IDM_STATE_LOAD 150
|
||||||
#define IDM_STATE_SAVE 151
|
#define IDM_STATE_SAVE 151
|
||||||
|
@ -178,4 +179,9 @@ void refreshAll();
|
||||||
#define IDC_PROP0 908
|
#define IDC_PROP0 908
|
||||||
#define IDC_PROP1 909
|
#define IDC_PROP1 909
|
||||||
#define IDC_OAM_BOX 910
|
#define IDC_OAM_BOX 910
|
||||||
|
|
||||||
|
#define IDC_SOUNDCORECB 1000
|
||||||
|
#define IDC_SOUNDBUFFERET 1001
|
||||||
|
#define IDC_SLVOLUME 1002
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -300,6 +300,8 @@ MENU_PRINCIPAL MENU
|
||||||
MENUITEM "Save Screenshot &As", IDM_PRINTSCREEN
|
MENUITEM "Save Screenshot &As", IDM_PRINTSCREEN
|
||||||
MENUITEM "&Quick Screenshot", IDM_QUICK_PRINTSCREEN
|
MENUITEM "&Quick Screenshot", IDM_QUICK_PRINTSCREEN
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
|
MENUITEM "Sound Settings", IDM_SOUNDSETTINGS
|
||||||
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "&Quit", IDM_QUIT
|
MENUITEM "&Quit", IDM_QUIT
|
||||||
}
|
}
|
||||||
POPUP "&Emulation"
|
POPUP "&Emulation"
|
||||||
|
@ -601,3 +603,21 @@ BEGIN
|
||||||
// CONTROL "Edit", IDC_OAM_BOX,"OAMViewBox",WS_TABSTOP,100,50,45,42,WS_EX_CLIENTEDGE
|
// CONTROL "Edit", IDC_OAM_BOX,"OAMViewBox",WS_TABSTOP,100,50,45,42,WS_EX_CLIENTEDGE
|
||||||
PUSHBUTTON "&Close",IDC_FERMER,50,134,50,14
|
PUSHBUTTON "&Close",IDC_FERMER,50,134,50,14
|
||||||
END
|
END
|
||||||
|
|
||||||
|
SOUNDSETTINGSDLG DIALOG DISCARDABLE 0, 0, 174, 96
|
||||||
|
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
|
||||||
|
CAPTION "Sound Settings"
|
||||||
|
FONT 8, "MS Sans Serif"
|
||||||
|
BEGIN
|
||||||
|
GROUPBOX "Sound Core Settings", -1, 3, 2, 168, 28, WS_CHILD | WS_VISIBLE
|
||||||
|
LTEXT "Sound Core", -1, 10, 14, 40, 10
|
||||||
|
COMBOBOX IDC_SOUNDCORECB, 54, 13, 110, 33, CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||||
|
GROUPBOX "Other Settings", -1, 3, 31, 168, 43, WS_CHILD | WS_VISIBLE
|
||||||
|
LTEXT "Buffer Size", -1, 10, 42, 60, 10
|
||||||
|
EDITTEXT IDC_SOUNDBUFFERET, 136, 41, 28, 13
|
||||||
|
LTEXT "Volume", -1, 10, 57, 30, 10
|
||||||
|
CONTROL "", IDC_SLVOLUME, "msctls_trackbar32", WS_VISIBLE | WS_CHILD, 40, 57, 128, 10
|
||||||
|
DEFPUSHBUTTON "&OK",IDOK,82,78,40,14
|
||||||
|
PUSHBUTTON "&Cancel",IDCANCEL,127,78,40,14
|
||||||
|
END
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue