diff --git a/src/cdrom/cdrom.c b/src/cdrom/cdrom.c index 52ea97972..e5f6ba259 100644 --- a/src/cdrom/cdrom.c +++ b/src/cdrom/cdrom.c @@ -3224,6 +3224,22 @@ cdrom_is_empty(const uint8_t id) return ret; } +int +cdrom_is_playing(const uint8_t id) +{ + const cdrom_t *dev = &cdrom[id]; + + return (dev->cd_status == CD_STATUS_PLAYING); +} + +int +cdrom_is_paused(const uint8_t id) +{ + const cdrom_t *dev = &cdrom[id]; + + return (dev->cd_status == CD_STATUS_PAUSED); +} + /* The mechanics of ejecting a CD-ROM from a drive. */ void cdrom_eject(const uint8_t id) diff --git a/src/include/86box/cdrom.h b/src/include/86box/cdrom.h index 487676023..fb157ba66 100644 --- a/src/include/86box/cdrom.h +++ b/src/include/86box/cdrom.h @@ -481,6 +481,8 @@ extern void cdrom_close(void); extern void cdrom_insert(const uint8_t id); extern void cdrom_exit(const uint8_t id); extern int cdrom_is_empty(const uint8_t id); +extern int cdrom_is_playing(const uint8_t id); +extern int cdrom_is_paused(const uint8_t id); extern void cdrom_eject(const uint8_t id); extern void cdrom_reload(const uint8_t id); diff --git a/src/qt/icons/pause.ico b/src/qt/icons/pause.ico index a6456910d..3f7079fd7 100644 Binary files a/src/qt/icons/pause.ico and b/src/qt/icons/pause.ico differ diff --git a/src/qt/icons/run.ico b/src/qt/icons/run.ico index b4bd9bf92..890914672 100644 Binary files a/src/qt/icons/run.ico and b/src/qt/icons/run.ico differ diff --git a/src/qt/qt_machinestatus.cpp b/src/qt/qt_machinestatus.cpp index 82ef63159..bbcee95cc 100644 --- a/src/qt/qt_machinestatus.cpp +++ b/src/qt/qt_machinestatus.cpp @@ -534,11 +534,10 @@ MachineStatus::refreshIcons() d->fdd[i].setWriteActive(machine_status.fdd[i].write_active); } for (size_t i = 0; i < CDROM_NUM; ++i) { - auto status = cdrom_get_current_status(&cdrom[i]); d->cdrom[i].setActive(machine_status.cdrom[i].active); d->cdrom[i].setWriteActive(machine_status.cdrom[i].write_active); - d->cdrom[i].setPlay(status == 0x11); - d->cdrom[i].setPause((!cdrom[i].is_chinon) ? (status == 0x12) : (status == 0x15)); + d->cdrom[i].setPlay(cdrom_is_playing(i)); + d->cdrom[i].setPause(cdrom_is_paused(i)); if (machine_status.cdrom[i].active) { ui_sb_update_icon(SB_CDROM | i, 0); }