win: Move remaining mount helper functions

We might want to consider renaming win_cdrom.c to something more fitting :P
This commit is contained in:
David Hrdlička
2020-04-26 16:56:37 +02:00
parent 70503973eb
commit aa5014a3ce
3 changed files with 28 additions and 35 deletions

View File

@@ -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);

View File

@@ -28,6 +28,8 @@
#include <stdlib.h>
#include <wchar.h>
#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)
{

View File

@@ -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)
{