diff --git a/src/include/86box/unix_osd.h b/src/include/86box/unix_osd.h index 90c319fbe..b774cbea1 100644 --- a/src/include/86box/unix_osd.h +++ b/src/include/86box/unix_osd.h @@ -10,5 +10,9 @@ extern int osd_open(SDL_Event event); extern int osd_close(SDL_Event event); extern int osd_handle(SDL_Event event); +extern void osd_ui_sb_update_icon_state(int tag, int state); +extern void osd_ui_sb_update_icon(int tag, int active); +extern void osd_ui_sb_update_icon_write(int tag, int active); + #endif /*_UNIX_OSD_H*/ diff --git a/src/unix/unix.c b/src/unix/unix.c index 0eefea211..0d4f0189f 100644 --- a/src/unix/unix.c +++ b/src/unix/unix.c @@ -476,19 +476,19 @@ plat_remove(char *path) void ui_sb_update_icon_state(UNUSED(int tag), UNUSED(int state)) { - /* No-op. */ + osd_ui_sb_update_icon_state(tag, state); } void ui_sb_update_icon(UNUSED(int tag), UNUSED(int active)) { - /* No-op. */ + osd_ui_sb_update_icon(tag, active); } void ui_sb_update_icon_write(UNUSED(int tag), UNUSED(int active)) { - /* No-op. */ + osd_ui_sb_update_icon_write(tag, active); } void diff --git a/src/unix/unix_cdrom.c b/src/unix/unix_cdrom.c index 09aaa5092..76c5f1501 100644 --- a/src/unix/unix_cdrom.c +++ b/src/unix/unix_cdrom.c @@ -140,6 +140,9 @@ plat_cdrom_ui_update(uint8_t id, UNUSED(uint8_t reload)) void cdrom_mount(uint8_t id, char *fn) { + int ret = cdrom_load( &(cdrom[id]), fn, 0); + + /* strcpy(cdrom[id].prev_image_path, cdrom[id].image_path); if (cdrom[id].ops && cdrom[id].ops->close) cdrom[id].ops->close(cdrom[id].local); @@ -148,13 +151,17 @@ cdrom_mount(uint8_t id, char *fn) if ((fn != NULL) && (strlen(fn) >= 1) && (fn[strlen(fn) - 1] == '\\')) fn[strlen(fn) - 1] = '/'; image_open(&(cdrom[id]), fn); - /* Signal media change to the emulated machine. */ + // Signal media change to the emulated machine. if (cdrom[id].insert) cdrom[id].insert(cdrom[id].priv); + if (cdrom[id].image_path[0] == 0x00) ui_sb_update_icon_state(SB_CDROM | id, 0); else ui_sb_update_icon_state(SB_CDROM | id, 1); + */ + + ui_sb_update_icon_state(SB_CDROM | id, ret == 0 ? 1 : 0); #if 0 media_menu_update_cdrom(id); #endif diff --git a/src/unix/unix_osd.c b/src/unix/unix_osd.c index c7c5af02b..42517c866 100644 --- a/src/unix/unix_osd.c +++ b/src/unix/unix_osd.c @@ -441,3 +441,17 @@ int osd_handle(SDL_Event event) // Keep it open return 1; } + +void osd_ui_sb_update_icon_state(UNUSED(int tag), UNUSED(int state)) +{ +} + +void +osd_ui_sb_update_icon(UNUSED(int tag), UNUSED(int active)) +{ +} + +void +osd_ui_sb_update_icon_write(UNUSED(int tag), UNUSED(int active)) +{ +}