Sound buffer length now configurable in wxWidgets GUI. Patch from bit.

This commit is contained in:
pcem_emulator 2017-06-18 21:03:22 +01:00
commit 0928b4fbdf
3 changed files with 1256 additions and 1189 deletions

View file

@ -28,6 +28,7 @@
<ids-range name="IDM_VID_SCALE" start="1200" />
<ids-range name="IDM_VID_SCALE_MODE" start="1300" />
<ids-range name="IDM_VID_RENDER_DRIVER" start="1400" />
<ids-range name="IDM_SND_BUF" start="2000" />
<object class="wxMenuBar" name="status_menu">
<object class="wxMenu">
<label>_Options</label>
@ -229,6 +230,28 @@
<checkable>1</checkable>
</object>
</object>
<object class="wxMenu">
<label>Sound</label>
<object class="wxMenu">
<label>_Buffer length</label>
<object class="wxMenuItem" name="IDM_SND_BUF[0]">
<label>_50 ms</label>
<radio>1</radio>
</object>
<object class="wxMenuItem" name="IDM_SND_BUF[1]">
<label>_100 ms</label>
<radio>1</radio>
</object>
<object class="wxMenuItem" name="IDM_SND_BUF[2]">
<label>_200 ms</label>
<radio>1</radio>
</object>
<object class="wxMenuItem" name="IDM_SND_BUF[3]">
<label>_400 ms</label>
<radio>1</radio>
</object>
</object>
</object>
<object class="separator"/>
<object class="wxMenuItem" name="IDM_STATUS">
<label>_Machine</label>

File diff suppressed because it is too large Load diff

View file

@ -15,6 +15,7 @@
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <math.h>
#include "ibm.h"
#include "cdrom-ioctl.h"
#include "cdrom-image.h"
@ -41,6 +42,8 @@
#define IDM_CDROM_REAL 1500
#define MIN_SND_BUF 50
uint64_t timer_freq;
@ -285,6 +288,9 @@ void wx_setupmenu()
window_remember ? WX_MB_CHECKED : WX_MB_UNCHECKED);
wx_checkmenuitem(menu, WX_ID("IDM_BPB_DISABLE"), bpb_disable ? WX_MB_CHECKED : WX_MB_UNCHECKED);
sprintf(menuitem, "IDM_SND_BUF[%d]", (int)(log(sound_buf_len/MIN_SND_BUF)/log(2)));
wx_checkmenuitem(menu, WX_ID(menuitem), WX_MB_CHECKED);
sprintf(menuitem, "IDM_VID_SCALE_MODE[%d]", video_scale_mode);
wx_checkmenuitem(menu, WX_ID(menuitem), WX_MB_CHECKED);
sprintf(menuitem, "IDM_VID_SCALE[%d]", video_scale);
@ -729,6 +735,11 @@ int wx_handle_command(void* hwnd, int wParam, int checked)
video_focus_dim = checked;
saveconfig(NULL);
}
else if (ID_RANGE("IDM_SND_BUF[start]", "IDM_SND_BUF[end]"))
{
sound_buf_len = MIN_SND_BUF*1<<(wParam - wx_xrcid("IDM_SND_BUF[start]"));
saveconfig(NULL);
}
else if (ID_IS("IDM_CDROM_DISABLED"))
{
if (cdrom_enabled)