The WinPcap test function now opens and closes the WinPcap DLL handle as needed;
Loading a configuration file from within the emulator now correctly resets the menus and re-checks all items.
This commit is contained in:
@@ -274,6 +274,20 @@ network_pcap_close(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
network_pcap_stop(void)
|
||||||
|
{
|
||||||
|
/* OK, now shut down WinPcap itself. */
|
||||||
|
f_pcap_close(pcap);
|
||||||
|
|
||||||
|
/* Unload the DLL if possible. */
|
||||||
|
if (pcap_handle != NULL) {
|
||||||
|
dynld_close(pcap_handle);
|
||||||
|
pcap_handle = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Test WinPcap - 1 = success, 0 = failure. */
|
/* Test WinPcap - 1 = success, 0 = failure. */
|
||||||
int
|
int
|
||||||
network_pcap_test(void)
|
network_pcap_test(void)
|
||||||
@@ -286,7 +300,7 @@ network_pcap_test(void)
|
|||||||
/* Did we already load the DLL? */
|
/* Did we already load the DLL? */
|
||||||
if (pcap_handle == NULL)
|
if (pcap_handle == NULL)
|
||||||
{
|
{
|
||||||
return 0;
|
pcap_handle = dynld_module("wpcap.dll", pcap_imports);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 1
|
#if 1
|
||||||
@@ -313,6 +327,13 @@ network_pcap_test(void)
|
|||||||
dev = network_pcap;
|
dev = network_pcap;
|
||||||
if ((dev[0] == '\0') || !strcmp(dev, "none")) {
|
if ((dev[0] == '\0') || !strcmp(dev, "none")) {
|
||||||
pclog(" No network device configured!\n");
|
pclog(" No network device configured!\n");
|
||||||
|
|
||||||
|
/* Unload the DLL if possible. */
|
||||||
|
if (pcap_handle != NULL) {
|
||||||
|
dynld_close(pcap_handle);
|
||||||
|
pcap_handle = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
pclog(" Network interface: '%s'\n", dev);
|
pclog(" Network interface: '%s'\n", dev);
|
||||||
@@ -327,6 +348,13 @@ network_pcap_test(void)
|
|||||||
temp); /* error buffer */
|
temp); /* error buffer */
|
||||||
if (pcap == NULL) {
|
if (pcap == NULL) {
|
||||||
pclog(" Unable to open device: %s!\n", temp);
|
pclog(" Unable to open device: %s!\n", temp);
|
||||||
|
|
||||||
|
/* Unload the DLL if possible. */
|
||||||
|
if (pcap_handle != NULL) {
|
||||||
|
dynld_close(pcap_handle);
|
||||||
|
pcap_handle = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -338,16 +366,17 @@ network_pcap_test(void)
|
|||||||
if (f_pcap_compile(pcap, &fp, filter_exp, 0, 0xffffffff) != -1) {
|
if (f_pcap_compile(pcap, &fp, filter_exp, 0, 0xffffffff) != -1) {
|
||||||
if (f_pcap_setfilter(pcap, &fp) == -1) {
|
if (f_pcap_setfilter(pcap, &fp) == -1) {
|
||||||
pclog(" Error installing filter (%s) !\n", filter_exp);
|
pclog(" Error installing filter (%s) !\n", filter_exp);
|
||||||
f_pcap_close(pcap);
|
network_pcap_stop();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
pclog(" Could not compile filter (%s) !\n", filter_exp);
|
pclog(" Could not compile filter (%s) !\n", filter_exp);
|
||||||
f_pcap_close(pcap);
|
network_pcap_stop();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
f_pcap_close(pcap);
|
network_pcap_stop();
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
135
src/WIN/win.c
135
src/WIN/win.c
@@ -1462,6 +1462,100 @@ void win_menu_update(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void reset_menus(void)
|
||||||
|
{
|
||||||
|
#ifdef ENABLE_LOG_TOGGLES
|
||||||
|
# ifdef ENABLE_BUSLOGIC_LOG
|
||||||
|
CheckMenuItem(menu, IDM_LOG_BUSLOGIC, buslogic_do_log ? MF_UNCHECKED);
|
||||||
|
# endif
|
||||||
|
# ifdef ENABLE_CDROM_LOG
|
||||||
|
CheckMenuItem(menu, IDM_LOG_CDROM, cdrom_do_log ? MF_UNCHECKED);
|
||||||
|
# endif
|
||||||
|
# ifdef ENABLE_D86F_LOG
|
||||||
|
CheckMenuItem(menu, IDM_LOG_D86F, d86f_do_log ? MF_UNCHECKED);
|
||||||
|
# endif
|
||||||
|
# ifdef ENABLE_FDC_LOG
|
||||||
|
CheckMenuItem(menu, IDM_LOG_FDC, fdc_do_log ? MF_UNCHECKED);
|
||||||
|
# endif
|
||||||
|
# ifdef ENABLE_IDE_LOG
|
||||||
|
CheckMenuItem(menu, IDM_LOG_IDE, ide_do_log ? MF_UNCHECKED);
|
||||||
|
# endif
|
||||||
|
# ifdef ENABLE_SERIAL_LOG
|
||||||
|
CheckMenuItem(menu, IDM_LOG_SERIAL, serial_do_log ? MF_UNCHECKED);
|
||||||
|
# endif
|
||||||
|
# ifdef ENABLE_NIC_LOG
|
||||||
|
/*FIXME: should be network_setlog(1:0) */
|
||||||
|
CheckMenuItem(menu, IDM_LOG_NIC, nic_do_log ? MF_UNCHECKED);
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
CheckMenuItem(menu, IDM_VID_FORCE43, MF_UNCHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_OVERSCAN, MF_UNCHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_INVERT, MF_UNCHECKED);
|
||||||
|
|
||||||
|
CheckMenuItem(menu, IDM_VID_RESIZE, MF_UNCHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_DDRAW + 0, MF_CHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_DDRAW + 1, MF_CHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_FS_FULL + 0, MF_CHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_FS_FULL + 1, MF_CHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_FS_FULL + 2, MF_CHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_FS_FULL + 3, MF_CHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_REMEMBER, MF_UNCHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_SCALE_1X + 0, MF_CHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_SCALE_1X + 1, MF_CHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_SCALE_1X + 2, MF_CHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_SCALE_1X + 3, MF_CHECKED);
|
||||||
|
|
||||||
|
CheckMenuItem(menu, IDM_VID_CGACON, MF_UNCHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_GRAYCT_601 + 0, MF_CHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_GRAYCT_601 + 1, MF_CHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_GRAYCT_601 + 2, MF_CHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_GRAY_RGB + 0, MF_CHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_GRAY_RGB + 1, MF_CHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_GRAY_RGB + 2, MF_CHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_GRAY_RGB + 3, MF_CHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_GRAY_RGB + 4, MF_CHECKED);
|
||||||
|
|
||||||
|
#ifdef ENABLE_LOG_TOGGLES
|
||||||
|
# ifdef ENABLE_BUSLOGIC_LOG
|
||||||
|
CheckMenuItem(menu, IDM_LOG_BUSLOGIC, buslogic_do_log ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
# endif
|
||||||
|
# ifdef ENABLE_CDROM_LOG
|
||||||
|
CheckMenuItem(menu, IDM_LOG_CDROM, cdrom_do_log ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
# endif
|
||||||
|
# ifdef ENABLE_D86F_LOG
|
||||||
|
CheckMenuItem(menu, IDM_LOG_D86F, d86f_do_log ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
# endif
|
||||||
|
# ifdef ENABLE_FDC_LOG
|
||||||
|
CheckMenuItem(menu, IDM_LOG_FDC, fdc_do_log ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
# endif
|
||||||
|
# ifdef ENABLE_IDE_LOG
|
||||||
|
CheckMenuItem(menu, IDM_LOG_IDE, ide_do_log ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
# endif
|
||||||
|
# ifdef ENABLE_SERIAL_LOG
|
||||||
|
CheckMenuItem(menu, IDM_LOG_SERIAL, serial_do_log ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
# endif
|
||||||
|
# ifdef ENABLE_NIC_LOG
|
||||||
|
/*FIXME: should be network_setlog(1:0) */
|
||||||
|
CheckMenuItem(menu, IDM_LOG_NIC, nic_do_log ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
CheckMenuItem(menu, IDM_VID_FORCE43, force_43 ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_OVERSCAN, enable_overscan ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_INVERT, invert_display ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
|
||||||
|
if (vid_resize) CheckMenuItem(menu, IDM_VID_RESIZE, MF_CHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_DDRAW + vid_api, MF_CHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_FS_FULL + video_fullscreen_scale, MF_CHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_REMEMBER, window_remember ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_SCALE_1X + scale, MF_CHECKED);
|
||||||
|
|
||||||
|
CheckMenuItem(menu, IDM_VID_CGACON, vid_cga_contrast ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_GRAYCT_601 + video_graytype, MF_CHECKED);
|
||||||
|
CheckMenuItem(menu, IDM_VID_GRAY_RGB + video_grayscale, MF_CHECKED);
|
||||||
|
}
|
||||||
|
|
||||||
int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)
|
int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)
|
||||||
{
|
{
|
||||||
HWND hwnd; /* This is the handle for our window */
|
HWND hwnd; /* This is the handle for our window */
|
||||||
@@ -1590,44 +1684,7 @@ int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpsz
|
|||||||
if (vid_resize) SetWindowLongPtr(hwnd, GWL_STYLE, (WS_OVERLAPPEDWINDOW&~WS_MINIMIZEBOX)|WS_VISIBLE);
|
if (vid_resize) SetWindowLongPtr(hwnd, GWL_STYLE, (WS_OVERLAPPEDWINDOW&~WS_MINIMIZEBOX)|WS_VISIBLE);
|
||||||
else SetWindowLongPtr(hwnd, GWL_STYLE, (WS_OVERLAPPEDWINDOW&~WS_SIZEBOX&~WS_THICKFRAME&~WS_MAXIMIZEBOX&~WS_MINIMIZEBOX)|WS_VISIBLE);
|
else SetWindowLongPtr(hwnd, GWL_STYLE, (WS_OVERLAPPEDWINDOW&~WS_SIZEBOX&~WS_THICKFRAME&~WS_MAXIMIZEBOX&~WS_MINIMIZEBOX)|WS_VISIBLE);
|
||||||
|
|
||||||
#ifdef ENABLE_LOG_TOGGLES
|
reset_menus();
|
||||||
# ifdef ENABLE_BUSLOGIC_LOG
|
|
||||||
CheckMenuItem(menu, IDM_LOG_BUSLOGIC, buslogic_do_log ? MF_CHECKED : MF_UNCHECKED);
|
|
||||||
# endif
|
|
||||||
# ifdef ENABLE_CDROM_LOG
|
|
||||||
CheckMenuItem(menu, IDM_LOG_CDROM, cdrom_do_log ? MF_CHECKED : MF_UNCHECKED);
|
|
||||||
# endif
|
|
||||||
# ifdef ENABLE_D86F_LOG
|
|
||||||
CheckMenuItem(menu, IDM_LOG_D86F, d86f_do_log ? MF_CHECKED : MF_UNCHECKED);
|
|
||||||
# endif
|
|
||||||
# ifdef ENABLE_FDC_LOG
|
|
||||||
CheckMenuItem(menu, IDM_LOG_FDC, fdc_do_log ? MF_CHECKED : MF_UNCHECKED);
|
|
||||||
# endif
|
|
||||||
# ifdef ENABLE_IDE_LOG
|
|
||||||
CheckMenuItem(menu, IDM_LOG_IDE, ide_do_log ? MF_CHECKED : MF_UNCHECKED);
|
|
||||||
# endif
|
|
||||||
# ifdef ENABLE_SERIAL_LOG
|
|
||||||
CheckMenuItem(menu, IDM_LOG_SERIAL, serial_do_log ? MF_CHECKED : MF_UNCHECKED);
|
|
||||||
# endif
|
|
||||||
# ifdef ENABLE_NIC_LOG
|
|
||||||
/*FIXME: should be network_setlog(1:0) */
|
|
||||||
CheckMenuItem(menu, IDM_LOG_NIC, nic_do_log ? MF_CHECKED : MF_UNCHECKED);
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
CheckMenuItem(menu, IDM_VID_FORCE43, force_43 ? MF_CHECKED : MF_UNCHECKED);
|
|
||||||
CheckMenuItem(menu, IDM_VID_OVERSCAN, enable_overscan ? MF_CHECKED : MF_UNCHECKED);
|
|
||||||
CheckMenuItem(menu, IDM_VID_INVERT, invert_display ? MF_CHECKED : MF_UNCHECKED);
|
|
||||||
|
|
||||||
if (vid_resize) CheckMenuItem(menu, IDM_VID_RESIZE, MF_CHECKED);
|
|
||||||
CheckMenuItem(menu, IDM_VID_DDRAW + vid_api, MF_CHECKED);
|
|
||||||
CheckMenuItem(menu, IDM_VID_FS_FULL + video_fullscreen_scale, MF_CHECKED);
|
|
||||||
CheckMenuItem(menu, IDM_VID_REMEMBER, window_remember ? MF_CHECKED : MF_UNCHECKED);
|
|
||||||
CheckMenuItem(menu, IDM_VID_SCALE_1X + scale, MF_CHECKED);
|
|
||||||
|
|
||||||
CheckMenuItem(menu, IDM_VID_CGACON, vid_cga_contrast ? MF_CHECKED : MF_UNCHECKED);
|
|
||||||
CheckMenuItem(menu, IDM_VID_GRAYCT_601 + video_graytype, MF_CHECKED);
|
|
||||||
CheckMenuItem(menu, IDM_VID_GRAY_RGB + video_grayscale, MF_CHECKED);
|
|
||||||
|
|
||||||
d=romset;
|
d=romset;
|
||||||
for (c=0;c<ROM_MAX;c++)
|
for (c=0;c<ROM_MAX;c++)
|
||||||
@@ -2210,6 +2267,8 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM
|
|||||||
/* pclog_w(L"NVR path: %s\n", nvr_path); */
|
/* pclog_w(L"NVR path: %s\n", nvr_path); */
|
||||||
mem_resize();
|
mem_resize();
|
||||||
loadbios();
|
loadbios();
|
||||||
|
network_init();
|
||||||
|
reset_menus();
|
||||||
update_status_bar_panes(hwndStatus);
|
update_status_bar_panes(hwndStatus);
|
||||||
resetpchard_init();
|
resetpchard_init();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user