From dfd36f6e89e71efdbfdca3e68a9ae25d0e521c88 Mon Sep 17 00:00:00 2001 From: OBattler Date: Thu, 25 Dec 2025 15:45:34 +0100 Subject: [PATCH] The remaining sizes for the indicator and proper functions for determining the playing and paused statuses of a CD-ROM drive. --- src/cdrom/cdrom.c | 16 ++++++++++++++++ src/include/86box/cdrom.h | 2 ++ src/qt/icons/pause.ico | Bin 43350 -> 44526 bytes src/qt/icons/run.ico | Bin 43350 -> 44526 bytes src/qt/qt_machinestatus.cpp | 5 ++--- 5 files changed, 20 insertions(+), 3 deletions(-) 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 a6456910d90ba5b53cb4ff103a2162b628e93934..3f7079fd758e31647ccd9387c5399574d65fc6c5 100644 GIT binary patch literal 44526 zcmeHQy^b735H4fnGu88vp*U!}x~2;vaSFf8WQl(^4%ua(al< zHR$;4xQ<0H6lmAuXFqm?+UwrWLtnwt&$wHI)L!<>HoVGy+5V5t8}cUN8~S-2gMQ^2 zMf9IO={ij<`Q@X!+XLl1m+}>#*_krU<2ZNM=jVD3_8f3LAAP_w#@9o>OTU(P8UcISTAt*K>SmV5VxEB57V0TBlZxM?b2W3otC_2rlYIT2nA;1f-{GFm{gV4d?19DCnl*FzyiM-UrClovbDv+G zlV>fjSLNUB{1{|--FnK;P8JGYe%&-BFfE$zP0&XYd0cG`KbIX~W4?Ouyly#5}wWBm`_ zXO+HV<%r!M-EC@F%lohm*DY5(Ke#9lE|&}5yVP*m`g*ixkN)eKuQQ7ii_N+QBc-%44;IU!ax8Y6rhSE05I< zet}jVs~!9Ttvpsc_yt;dtak7VwDMT(;1_7+vD(2e(8^=AgI}PP$7%<^Kr4^c4t{}F z9;+Sv0xYGA^_|xIH)!k3mbxX||C_TWG~ z5 z4-Uj5(SzHAL&k-+2e$_Y;*sdV?ZF}ALfeDeg9GtM^x*d3ka3~y!R^6;cqDpodvM6O z(DvZ=;6OYQJ-9tMWL#)_aC>kd9*G{@9vm_*v^}^zI1rCS4{i?*85i0f+#Vc=N1_M! zo&!BC^gPS=PKZ_~j)?(oP=cK#5&;Al^I+V|t%HJeC<%-XlF8DWElm(xM ztU)F9Fl`Mt<_^Y-7n=Pxo?|(CV|&f@8XwG8{j3U~SpkdhHQW%crH_`}89x-LW9nbm z1|uysYRR4PLxDP`{&j6I(o&R;CeBP}&*$(`{-fjXxCb!{-x zQlpmK89x-LW9nbm1|uysYRR4PLxDP`{&j6I(o&Y5E54^i{C{VyDER)5 z1y{IPHPsReY*sm1eFkvu)|}^c5!udWiOUib+m(CN?C%=jJ7N;8zO*_-#uVu**RN9` zGAEI~bgQ5Ke=hRu)!MucrZ06}$@S;`FYo{P`d7QJ%=KIEHQGB<)#v$-%t@rL%)d^7$ecv_(yczve`HP~eP#Z23Pk24 z(wA=adHy4F66q`RuTvm0Cy~B%tIzWvnUhFgnSY%EkvWOJJ=W)%z#)z z0>ba$WMFv5!@!`R0O79y>MIjtV9?Nj>X%|*kW*)1Fff41s{+k;WMFV`fbca~ofsJO z(kCv_1v+Ha|NjhCJO2Z%hXA_rf%Xrm118^IEj&q>XLA~x2Fv7os|6+}XfGJ)O SB)9okwuS>v1u%sPc^Ux0Y@t>F diff --git a/src/qt/icons/run.ico b/src/qt/icons/run.ico index b4bd9bf922c2418dd92b34ef1c42ac991859bc01..8909146728201ff61694e5bde5e121f46ad9ceb2 100644 GIT binary patch delta 2124 zcmZ8hO=w(I6h80GG?NTN<|V|CD)t6R%xh9~z#;{qFLoh{3zx2>I~84|8&_T2NX2#| zrQC(?W}!&;1GZ4ah~P4U3pXMRbkUV%#HGmf`_4V5q7S}&_xye5+;fNg@^k(8*E)(+ zGL+?I^0vHQiF_?0!(p-Kupa}XQL(?MMNWGnO;ham`y%fyiEL~X`##R6sNLEs_N^6> zPuE1Yw~Kujb*s;aw5`?eJ}vUifyiWH3A-ZaUK2SyEOvWEn6o& zDScKC)0cydH0_Pji&cEN!^i^wlRo))rjIdn!zD2$z-#imU!}GBsq}aCe0rsB)9rRM zef!dLDO9U>ejBE7g--j+=+LC2{jGGh-=x3#ZQ9#q>Uw(i%w~FUX76&Ba~=adK#0y@ zKE~k6oB%r%?B&S>*J?~~78AUXu3wozc9h<3Ch1;tDTTF5>1bt=zFTQix8A1D*Ds`_ zuh@E&-rU(i>x0P@vbTX7z%dblVBi@(#+Wk&W~Wu#zdX$%H-V3V;|O%X7{IF@V`mDU z>0=Bz%w^3q&n_-~u=Lh6FJLd=Umy+yU<~vCA+7<9foJ#_V-9ms!&+)UYxeu-{K{2~ z2uDUBBLN7&0O$cibif!G0F{Af`WQnFb6LY$Xi$rq(4Kv?dA^B1VGln5CqxGXU;tEr zL?8fTpa%#MfdCAEo`Glj7|SJ>HLQgOwWvvL_Q<6tdRKXNZm&J7V_=`cQOMsLpTuIb zlzz%6LsD6sJF~~eJ!2%W4x~d_`Xul}<40utmM^@we;EH% zXU+@fSPqL|%%1ob+62t)(&l!RwHs{h4laocE?46cj5QH{O$1XZqCg)?nVGcNlT0Zx zrIb5kNU04eWk?l{#=&@CTp3F&dD2JJ=W)%z#)z z0>ba$WMFv5!@!`R0O79y>MIjtV9?Nj>X%|*kW*)1Fff41s{+k;WMFV`fbca~ofsJO z(kCv7ovh2wH@TmQV{$%|#AIn!fywik_$E(GQ=44O7(ICdo5JQaHVu}^7X%$PpX174 zo17pWu(?f8gL9Hj!e%~c4S`8I4V$-VYe-Hu$Ui?xr*N~Jn}!OA4a6HaAIsKofO3G6 FNdWgaI9dPz 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); }