Add status bar for magneto-optical.
This commit is contained in:
@@ -72,6 +72,7 @@
|
|||||||
#define SB_DISK 0x10
|
#define SB_DISK 0x10
|
||||||
#define SB_CDROM 0x20
|
#define SB_CDROM 0x20
|
||||||
#define SB_ZIP 0x30
|
#define SB_ZIP 0x30
|
||||||
|
#define SB_MO 0x40
|
||||||
#define SB_NETWORK 0x50
|
#define SB_NETWORK 0x50
|
||||||
#define SB_SOUND 0x60
|
#define SB_SOUND 0x60
|
||||||
#define SB_TEXT 0x70
|
#define SB_TEXT 0x70
|
||||||
@@ -141,6 +142,10 @@ 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_eject(uint8_t id);
|
||||||
extern void ui_zip_reload(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,
|
extern void ui_disk_mount(uint8_t drive, int part, int8_t wp,
|
||||||
const wchar_t *fn);
|
const wchar_t *fn);
|
||||||
extern void ui_disk_unload(uint8_t id);
|
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_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 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 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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -58,6 +58,7 @@
|
|||||||
#include "../devices/scsi/scsi_device.h"
|
#include "../devices/scsi/scsi_device.h"
|
||||||
#include "../devices/scsi/scsi_disk.h"
|
#include "../devices/scsi/scsi_disk.h"
|
||||||
#include "../devices/disk/zip.h"
|
#include "../devices/disk/zip.h"
|
||||||
|
#include "../devices/disk/mo.h"
|
||||||
#include "../devices/cdrom/cdrom.h"
|
#include "../devices/cdrom/cdrom.h"
|
||||||
#include "ui.h"
|
#include "ui.h"
|
||||||
|
|
||||||
@@ -190,7 +191,8 @@ ui_zip_reload(uint8_t id)
|
|||||||
if (wcslen(zip_drives[id].image_path) == 0) {
|
if (wcslen(zip_drives[id].image_path) == 0) {
|
||||||
ui_sb_menu_enable_item(SB_ZIP | id, IDM_ZIP_EJECT | id, 0);
|
ui_sb_menu_enable_item(SB_ZIP | id, IDM_ZIP_EJECT | id, 0);
|
||||||
ui_sb_icon_state(SB_ZIP | id, 1);
|
ui_sb_icon_state(SB_ZIP | id, 1);
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
ui_sb_menu_enable_item(SB_ZIP | id, IDM_ZIP_EJECT | id, 1);
|
ui_sb_menu_enable_item(SB_ZIP | id, IDM_ZIP_EJECT | id, 1);
|
||||||
ui_sb_icon_state(SB_ZIP | id, 0);
|
ui_sb_icon_state(SB_ZIP | id, 0);
|
||||||
}
|
}
|
||||||
@@ -202,6 +204,74 @@ ui_zip_reload(uint8_t id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
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();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
ui_disk_mount(uint8_t drive, int part, int8_t wp, const wchar_t *fn)
|
ui_disk_mount(uint8_t drive, int part, int8_t wp, const wchar_t *fn)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -186,6 +186,11 @@
|
|||||||
#define IDM_ZIP_EJECT (IDM_SBAR + 0x1200)
|
#define IDM_ZIP_EJECT (IDM_SBAR + 0x1200)
|
||||||
#define IDM_ZIP_RELOAD (IDM_SBAR + 0x1300)
|
#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_NEW (IDM_SBAR + 0x1800)
|
||||||
#define IDM_DISK_IMAGE_EXIST (IDM_SBAR + 0x1900)
|
#define IDM_DISK_IMAGE_EXIST (IDM_SBAR + 0x1900)
|
||||||
#define IDM_DISK_EJECT (IDM_SBAR + 0x1a00)
|
#define IDM_DISK_EJECT (IDM_SBAR + 0x1a00)
|
||||||
|
|||||||
Reference in New Issue
Block a user