From aa5014a3cedd7620ed8426c4424bf80f07f1146f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Hrdli=C4=8Dka?= Date: Sun, 26 Apr 2020 16:56:37 +0200 Subject: [PATCH] win: Move remaining mount helper functions We might want to consider renaming win_cdrom.c to something more fitting :P --- src/include/86box/plat.h | 3 +++ src/win/win_cdrom.c | 25 +++++++++++++++++++++++++ src/win/win_media_menu.c | 35 ----------------------------------- 3 files changed, 28 insertions(+), 35 deletions(-) diff --git a/src/include/86box/plat.h b/src/include/86box/plat.h index 8a892bf7b..32af72c32 100644 --- a/src/include/86box/plat.h +++ b/src/include/86box/plat.h @@ -119,6 +119,9 @@ extern void do_stop(void); /* Platform-specific device support. */ +extern void floppy_mount(uint8_t id, wchar_t *fn, uint8_t wp); +extern void floppy_eject(uint8_t id); +extern void cdrom_mount(uint8_t id, wchar_t *fn); extern void plat_cdrom_ui_update(uint8_t id, uint8_t reload); extern void zip_eject(uint8_t id); extern void zip_mount(uint8_t id, wchar_t *fn, uint8_t wp); diff --git a/src/win/win_cdrom.c b/src/win/win_cdrom.c index 40bc44611..f470c0a57 100644 --- a/src/win/win_cdrom.c +++ b/src/win/win_cdrom.c @@ -28,6 +28,8 @@ #include #include #include <86box/config.h> +#include <86box/timer.h> +#include <86box/fdd.h> #include <86box/hdd.h> #include <86box/scsi_device.h> #include <86box/cdrom.h> @@ -39,6 +41,29 @@ #include <86box/win.h> +void +floppy_mount(uint8_t id, wchar_t *fn, uint8_t wp) +{ + fdd_close(id); + ui_writeprot[id] = wp; + fdd_load(id, fn); + ui_sb_update_icon_state(SB_FLOPPY | id, wcslen(floppyfns[id]) ? 0 : 1); + media_menu_update_floppy(id); + ui_sb_update_tip(SB_FLOPPY | id); + config_save(); +} + +void +floppy_eject(uint8_t id) +{ + fdd_close(id); + ui_sb_update_icon_state(SB_FLOPPY | id, 1); + media_menu_update_floppy(id); + ui_sb_update_tip(SB_FLOPPY | id); + config_save(); +} + + void plat_cdrom_ui_update(uint8_t id, uint8_t reload) { diff --git a/src/win/win_media_menu.c b/src/win/win_media_menu.c index 02fee1497..99b150f8f 100644 --- a/src/win/win_media_menu.c +++ b/src/win/win_media_menu.c @@ -265,41 +265,6 @@ media_menu_init() media_menu_reset(); } -static void -fdd_mount(uint8_t id, wchar_t *fn, uint8_t wp) -{ - fdd_close(id); - ui_writeprot[id] = wp; - fdd_load(id, fn); - - config_save(); -} - -static void -fdd_eject(uint8_t id) -{ - fdd_close(id); - config_save(); -} - -static void -cdrom_mount(uint8_t id, wchar_t *fn) -{ - cdrom[id].prev_host_drive = cdrom[id].host_drive; - wcscpy(cdrom[id].prev_image_path, cdrom[id].image_path); - if (cdrom[id].ops && cdrom[id].ops->exit) - cdrom[id].ops->exit(&(cdrom[id])); - cdrom[id].ops = NULL; - memset(cdrom[id].image_path, 0, sizeof(cdrom[id].image_path)); - cdrom_image_open(&(cdrom[id]), fn); - /* Signal media change to the emulated machine. */ - if (cdrom[id].insert) - cdrom[id].insert(cdrom[id].priv); - cdrom[id].host_drive = (wcslen(cdrom[id].image_path) == 0) ? 0 : 200; - - config_save(); -} - int media_menu_proc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) {