Add status bar for magneto-optical.
This commit is contained in:
@@ -72,6 +72,7 @@
|
||||
#define SB_DISK 0x10
|
||||
#define SB_CDROM 0x20
|
||||
#define SB_ZIP 0x30
|
||||
#define SB_MO 0x40
|
||||
#define SB_NETWORK 0x50
|
||||
#define SB_SOUND 0x60
|
||||
#define SB_TEXT 0x70
|
||||
@@ -138,9 +139,13 @@ extern void ui_floppy_mount(uint8_t drive, int part, int8_t wp,
|
||||
extern void ui_cdrom_eject(uint8_t id);
|
||||
extern void ui_cdrom_reload(uint8_t id);
|
||||
extern void ui_zip_mount(uint8_t drive, int part, int8_t wp,
|
||||
const wchar_t *fn);
|
||||
const wchar_t* fn);
|
||||
extern void ui_zip_eject(uint8_t id);
|
||||
extern void ui_zip_reload(uint8_t id);
|
||||
extern void ui_mo_mount(uint8_t drive, int part, int8_t wp,
|
||||
const wchar_t* fn);
|
||||
extern void ui_mo_eject(uint8_t id);
|
||||
extern void ui_mo_reload(uint8_t id);
|
||||
extern void ui_disk_mount(uint8_t drive, int part, int8_t wp,
|
||||
const wchar_t *fn);
|
||||
extern void ui_disk_unload(uint8_t id);
|
||||
@@ -211,6 +216,7 @@ extern void plat_endblit(void);
|
||||
extern int floppy_create_86f(const wchar_t *, int8_t sz, int8_t rpm_mode);
|
||||
extern int floppy_create_image(const wchar_t *, int8_t sz, int8_t is_fdi);
|
||||
extern int zip_create_image(const wchar_t *, int8_t sz, int8_t is_zdi);
|
||||
extern int mo_create_image(const wchar_t*, int8_t sz);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
#include "../devices/scsi/scsi_device.h"
|
||||
#include "../devices/scsi/scsi_disk.h"
|
||||
#include "../devices/disk/zip.h"
|
||||
#include "../devices/disk/mo.h"
|
||||
#include "../devices/cdrom/cdrom.h"
|
||||
#include "ui.h"
|
||||
|
||||
@@ -136,9 +137,9 @@ ui_cdrom_reload(uint8_t id)
|
||||
|
||||
|
||||
void
|
||||
ui_zip_mount(uint8_t id, int part, int8_t wp, const wchar_t *fn)
|
||||
ui_zip_mount(uint8_t id, int part, int8_t wp, const wchar_t* fn)
|
||||
{
|
||||
zip_t *dev = (zip_t *)zip_drives[id].priv;
|
||||
zip_t* dev = (zip_t*)zip_drives[id].priv;
|
||||
int len;
|
||||
|
||||
zip_disk_close(dev);
|
||||
@@ -162,18 +163,18 @@ ui_zip_mount(uint8_t id, int part, int8_t wp, const wchar_t *fn)
|
||||
void
|
||||
ui_zip_eject(uint8_t id)
|
||||
{
|
||||
zip_t *dev = (zip_t *)zip_drives[id].priv;
|
||||
zip_t* dev = (zip_t*)zip_drives[id].priv;
|
||||
|
||||
zip_disk_close(dev);
|
||||
|
||||
if (zip_drives[id].bus_type) {
|
||||
/* Signal disk change to the emulated machine. */
|
||||
zip_insert(dev);
|
||||
/* Signal disk change to the emulated machine. */
|
||||
zip_insert(dev);
|
||||
}
|
||||
|
||||
ui_sb_icon_state(SB_ZIP | id, 1);
|
||||
ui_sb_menu_enable_item(SB_ZIP|id, IDM_ZIP_EJECT | id, 0);
|
||||
ui_sb_menu_enable_item(SB_ZIP|id, IDM_ZIP_RELOAD | id, 1);
|
||||
ui_sb_menu_enable_item(SB_ZIP | id, IDM_ZIP_EJECT | id, 0);
|
||||
ui_sb_menu_enable_item(SB_ZIP | id, IDM_ZIP_RELOAD | id, 1);
|
||||
ui_sb_tip_update(SB_ZIP | id);
|
||||
|
||||
config_save();
|
||||
@@ -183,20 +184,89 @@ ui_zip_eject(uint8_t id)
|
||||
void
|
||||
ui_zip_reload(uint8_t id)
|
||||
{
|
||||
zip_t *dev = (zip_t *)zip_drives[id].priv;
|
||||
zip_t* dev = (zip_t*)zip_drives[id].priv;
|
||||
|
||||
zip_disk_reload(dev);
|
||||
|
||||
if (wcslen(zip_drives[id].image_path) == 0) {
|
||||
ui_sb_menu_enable_item(SB_ZIP|id, IDM_ZIP_EJECT | id, 0);
|
||||
ui_sb_icon_state(SB_ZIP|id, 1);
|
||||
} else {
|
||||
ui_sb_menu_enable_item(SB_ZIP|id, IDM_ZIP_EJECT | id, 1);
|
||||
ui_sb_icon_state(SB_ZIP|id, 0);
|
||||
ui_sb_menu_enable_item(SB_ZIP | id, IDM_ZIP_EJECT | id, 0);
|
||||
ui_sb_icon_state(SB_ZIP | id, 1);
|
||||
}
|
||||
else {
|
||||
ui_sb_menu_enable_item(SB_ZIP | id, IDM_ZIP_EJECT | id, 1);
|
||||
ui_sb_icon_state(SB_ZIP | id, 0);
|
||||
}
|
||||
|
||||
ui_sb_menu_enable_item(SB_ZIP|id, IDM_ZIP_RELOAD | id, 0);
|
||||
ui_sb_tip_update(SB_ZIP|id);
|
||||
ui_sb_menu_enable_item(SB_ZIP | id, IDM_ZIP_RELOAD | id, 0);
|
||||
ui_sb_tip_update(SB_ZIP | id);
|
||||
|
||||
config_save();
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ui_mo_mount(uint8_t id, int part, int8_t wp, const wchar_t* fn)
|
||||
{
|
||||
mo_t* dev = (mo_t*)mo_drives[id].priv;
|
||||
int len;
|
||||
|
||||
mo_disk_close(dev);
|
||||
|
||||
mo_drives[id].ui_writeprot = wp;
|
||||
mo_load(dev, fn);
|
||||
mo_insert(dev);
|
||||
|
||||
len = (int)wcslen(mo_drives[id].image_path);
|
||||
ui_sb_icon_state(SB_MO | id, len ? 0 : 1);
|
||||
|
||||
sb_menu_enable_item(part, IDM_MO_EJECT | id, len ? 1 : 0);
|
||||
sb_menu_enable_item(part, IDM_MO_RELOAD | id, len ? 0 : 1);
|
||||
|
||||
ui_sb_tip_update(SB_MO | id);
|
||||
|
||||
config_save();
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ui_mo_eject(uint8_t id)
|
||||
{
|
||||
mo_t* dev = (mo_t*)mo_drives[id].priv;
|
||||
|
||||
mo_disk_close(dev);
|
||||
|
||||
if (mo_drives[id].bus_type) {
|
||||
/* Signal disk change to the emulated machine. */
|
||||
mo_insert(dev);
|
||||
}
|
||||
|
||||
ui_sb_icon_state(SB_MO | id, 1);
|
||||
ui_sb_menu_enable_item(SB_MO | id, IDM_MO_EJECT | id, 0);
|
||||
ui_sb_menu_enable_item(SB_MO | id, IDM_MO_RELOAD | id, 1);
|
||||
ui_sb_tip_update(SB_MO | id);
|
||||
|
||||
config_save();
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ui_mo_reload(uint8_t id)
|
||||
{
|
||||
mo_t* dev = (mo_t*)mo_drives[id].priv;
|
||||
|
||||
mo_disk_reload(dev);
|
||||
|
||||
if (wcslen(mo_drives[id].image_path) == 0) {
|
||||
ui_sb_menu_enable_item(SB_MO | id, IDM_MO_EJECT | id, 0);
|
||||
ui_sb_icon_state(SB_MO | id, 1);
|
||||
}
|
||||
else {
|
||||
ui_sb_menu_enable_item(SB_MO | id, IDM_MO_EJECT | id, 1);
|
||||
ui_sb_icon_state(SB_MO | id, 0);
|
||||
}
|
||||
|
||||
ui_sb_menu_enable_item(SB_MO | id, IDM_MO_RELOAD | id, 0);
|
||||
ui_sb_tip_update(SB_MO | id);
|
||||
|
||||
config_save();
|
||||
}
|
||||
|
||||
@@ -186,6 +186,11 @@
|
||||
#define IDM_ZIP_EJECT (IDM_SBAR + 0x1200)
|
||||
#define IDM_ZIP_RELOAD (IDM_SBAR + 0x1300)
|
||||
|
||||
#define IDM_MO_IMAGE_NEW (IDM_SBAR + 0x1400)
|
||||
#define IDM_MO_IMAGE_EXIST (IDM_SBAR + 0x1500)
|
||||
#define IDM_MO_EJECT (IDM_SBAR + 0x1600)
|
||||
#define IDM_MO_RELOAD (IDM_SBAR + 0x1700)
|
||||
|
||||
#define IDM_DISK_IMAGE_NEW (IDM_SBAR + 0x1800)
|
||||
#define IDM_DISK_IMAGE_EXIST (IDM_SBAR + 0x1900)
|
||||
#define IDM_DISK_EJECT (IDM_SBAR + 0x1a00)
|
||||
|
||||
Reference in New Issue
Block a user