From 0d0d479280c77b3b1554e96bc7eb48bea4d05ffe Mon Sep 17 00:00:00 2001 From: OBattler Date: Sun, 14 May 2017 18:10:46 +0200 Subject: [PATCH] Attempt to fix the status bar icons bug. --- src/ICONS/network.ico | Bin 0 -> 1150 bytes src/ICONS/other_peripherals.ico | Bin 1150 -> 1150 bytes src/cdrom-image.cc | 186 ++------------------------------ src/win.c | 8 +- 4 files changed, 16 insertions(+), 178 deletions(-) create mode 100644 src/ICONS/network.ico diff --git a/src/ICONS/network.ico b/src/ICONS/network.ico new file mode 100644 index 0000000000000000000000000000000000000000..b078387d39de419d0da0d3fb2c782e5da19eb1a0 GIT binary patch literal 1150 zcmd6l-)mA~9LC?My9h=X(PfvxAZ%+nDycR`nof_KCx1+H&R?h0ETuWel5%OYcCm{_ zEgiGz%K1ClTp`TX59u}t0_h)!F8c$X-gAatv>PLWIDFoR^L(F&_vM_IkbU&&>LPSK zMz{ln93g}pr%;PJyFL{{=!X%dtajAquwm0KAUoBGBY1 zEsyt$(OfIf_hW^JKO|F3v)4AzR6L&e#>Aaq5*#D}6~wMf5WA)5_sDR@rx1K5;rvPG zO`e@MnR=`^3pQ?o>WLldXB0S|rI3=#E-hejcg*NTQhwc2AY%z%WW$Gtf(9y2p zg%9e88ET~ziwm=e-49}?mWAD-hs>>pA$1dDG&A+`FdqF3t{j4EGu(zzq1|A(=1P`_X{2`g-ied literal 0 HcmV?d00001 diff --git a/src/ICONS/other_peripherals.ico b/src/ICONS/other_peripherals.ico index b078387d39de419d0da0d3fb2c782e5da19eb1a0..11150631800ab77275347f61a02a5b7123b19ff2 100644 GIT binary patch literal 1150 zcmd5)T}V@57(PW;-B=OYRYg}q7Eyv=P$*41R1j7K1-mGMq@oBa%hEBIv;Uad(cG{5 z(Iwh+r?t(_=K9rCj)~@$mWrk34|8kgnmavxb9NbYSKr6;zP#`EJv`6%@lwk|?aH^i})X(kkq-vt?ZQDzr;ww4F09+S@A8_IT|3vL?B2OL zW$ywKk~6kR3JQ)sEGr8>P$-L5Rm{H#1gTm#* zea?s5&wNNbRm$I#%f%ea{;XmuqV~o{NQ^8@{2+M00Q=ZHWW95c_kKsKLk($n2!$_( zkjHjH{UL-y1zKJ%lZibJ2dY(SIILD&e`H6!_bd1r0gmw~uD=gM+VdUn{PSQxhf(8h zgQVmZD!q$*sZ{*Dxfy!32F*4bD!6udrhmfW8wF#w;BH?Ccf50Oj{QJMPY7yn0LrdW zXczTmg#VJ`VAN{C+3ire+F_d@{P74nzxeTTavm=x=FviG#y1OPYd;uw7izuJI4sff zvcf{~E4Le_Y8^PI6IF!o3jyw)0a)9*@n$rL>Su4DZ|T6>$p~sKRus!i@TBV__T;O0 z>D8;^*B%cHM4xT4qKx==O#`k;0ZyVB`vco(1WhAhScd0N|0x7>e*iTf0-!G|`NAt# z#4+DamW57lLaDhC#Z`Jdurx!iG2PLWIDFoR^L(F&_vM_IkbU&&>LPSK zMz{ln93g}pr%;PJyFL{{=!X%dtajAquwm0KAUoBGBY1 zEsyt$(OfIf_hW^JKO|F3v)4AzR6L&e#>Aaq5*#D}6~wMf5WA)5_sDR@rx1K5;rvPG zO`e@MnR=`^3pQ?o>WLldXB0S|rI3=#E-hejcg*NTQhwc2AY%z%WW$Gtf(9y2p zg%9e88ET~ziwm=e-49}?mWAD-hs>>pA$1dDG&A+`FdqF3t{j4EGu(zzq1|A(=1P`_X{2`g-ied diff --git a/src/cdrom-image.cc b/src/cdrom-image.cc index 1959a8328..f1f59a0bc 100644 --- a/src/cdrom-image.cc +++ b/src/cdrom-image.cc @@ -743,67 +743,17 @@ static uint32_t image_size(uint8_t id) static int image_readtoc(uint8_t id, unsigned char *b, unsigned char starttrack, int msf, int maxlen, int single) { - if (!cdimg[id]) return 0; int len=4; int c,d; uint32_t temp; - uint8_t *q; + int first_track; int last_track; int number; unsigned char attr; TMSF tmsf; - int lb; - if (cdrom_image[id].image_is_iso) - { - if (starttrack > 1 && starttrack != 0xaa) - return -1; - q = b + 2; - *q++ = 1; /* first session */ - *q++ = 1; /* last session */ - if (starttrack <= 1) { - *q++ = 0; /* reserved */ - *q++ = 0x14; /* ADR, control */ - *q++ = 1; /* track number */ - *q++ = 0; /* reserved */ - if (msf) { - *q++ = 0; /* reserved */ - lba_to_msf(q, 0); - q += 3; - } else { - /* sector 0 */ - *q++ = 0; - *q++ = 0; - *q++ = 0; - *q++ = 0; - } - } - /* lead out track */ - *q++ = 0; /* reserved */ - *q++ = 0x16; /* ADR, control */ - *q++ = 0xaa; /* track number */ - *q++ = 0; /* reserved */ - lb = image_size(id) - 1; - if (msf) { - *q++ = 0; /* reserved */ - lba_to_msf(q, lb); - q += 3; - } else { - *q++ = lb >> 24; - *q++ = lb >> 16; - *q++ = lb >> 8; - *q++ = lb; - } - len = q - b; - if (len > maxlen) - { - len = maxlen; - } - b[0] = (uint8_t)(((len-2) >> 8) & 0xff); - b[1] = (uint8_t)((len-2) & 0xff); - return len; - } + if (!cdimg[id]) return 0; cdimg[id]->GetAudioTracks(first_track, last_track, tmsf); @@ -865,34 +815,13 @@ static int image_readtoc(uint8_t id, unsigned char *b, unsigned char starttrack, static int image_readtoc_session(uint8_t id, unsigned char *b, int msf, int maxlen) { - if (!cdimg[id]) return 0; int len = 4; + int number; TMSF tmsf; unsigned char attr; - uint8_t *q; - if (cdrom_image[id].image_is_iso) - { - q = b + 2; - *q++ = 1; /* first session */ - *q++ = 1; /* last session */ - - *q++ = 1; /* session number */ - *q++ = 0x14; /* data track */ - *q++ = 0; /* track number */ - *q++ = 0xa0; /* lead-in */ - *q++ = 0; /* min */ - *q++ = 0; /* sec */ - *q++ = 0; /* frame */ - *q++ = 0; - - if (maxlen < 12) - { - return maxlen; - } - return 12; - } + if (!cdimg[id]) return 0; cdimg[id]->GetAudioTrackInfo(1, number, tmsf, attr); @@ -928,8 +857,6 @@ static int image_readtoc_session(uint8_t id, unsigned char *b, int msf, int maxl static int image_readtoc_raw(uint8_t id, unsigned char *b, int msf, int maxlen) { - if (!cdimg[id]) return 0; - int track; int len = 4; @@ -938,93 +865,9 @@ static int image_readtoc_raw(uint8_t id, unsigned char *b, int msf, int maxlen) int number; unsigned char attr; TMSF tmsf; - uint8_t *q; int lb; - if (cdrom_image[id].image_is_iso) - { - q = b + 2; - *q++ = 1; /* first session */ - *q++ = 1; /* last session */ - - *q++ = 1; /* session number */ - *q++ = 0x14; /* data track */ - *q++ = 0; /* track number */ - *q++ = 0xa0; /* lead-in */ - *q++ = 0; /* min */ - *q++ = 0; /* sec */ - *q++ = 0; /* frame */ - *q++ = 0; - *q++ = 1; /* first track */ - *q++ = 0x00; /* disk type */ - *q++ = 0x00; - - *q++ = 1; /* session number */ - *q++ = 0x14; /* data track */ - *q++ = 0; /* track number */ - *q++ = 0xa1; - *q++ = 0; /* min */ - *q++ = 0; /* sec */ - *q++ = 0; /* frame */ - *q++ = 0; - *q++ = 1; /* last track */ - *q++ = 0x00; - *q++ = 0x00; - - *q++ = 1; /* session number */ - *q++ = 0x14; /* data track */ - *q++ = 0; /* track number */ - *q++ = 0xa2; /* lead-out */ - *q++ = 0; /* min */ - *q++ = 0; /* sec */ - *q++ = 0; /* frame */ - lb = image_size(id) >> 11; - /* this is raw, must be msf */ - if (msf) - { - *q++ = 0; /* reserved */ - lba_to_msf(q, lb); - q += 3; - } - else - { - *q++ = (lb >> 24) & 0xff; - *q++ = (lb >> 16) & 0xff; - *q++ = (lb >> 8) & 0xff; - *q++ = lb & 0xff; - } - - *q++ = 1; /* session number */ - *q++ = 0x14; /* ADR, control */ - *q++ = 0; /* track number */ - *q++ = 1; /* point */ - *q++ = 0; /* min */ - *q++ = 0; /* sec */ - *q++ = 0; /* frame */ - /* same here */ - if (msf) - { - *q++ = 0; /* reserved */ - lba_to_msf(q, 0); - q += 3; - } - else - { - *q++ = 0; - *q++ = 0; - *q++ = 0; - *q++ = 0; - } - - len = q - b; - if (len > maxlen) - { - len = maxlen; - } - b[0] = (uint8_t)(((len-2) >> 8) & 0xff); - b[1] = (uint8_t)((len-2) & 0xff); - return len; - } + if (!cdimg[id]) return 0; cdimg[id]->GetAudioTracks(first_track, last_track, tmsf); @@ -1048,21 +891,10 @@ static int image_readtoc_raw(uint8_t id, unsigned char *b, int msf, int maxlen) b[len++]=0; b[len++]=0; b[len++]=0; - if (msf) - { - b[len++]=0; - b[len++] = tmsf.min; - b[len++] = tmsf.sec; - b[len++] = tmsf.fr; - } - else - { - uint32_t temp = MSFtoLBA(tmsf.min, tmsf.sec, tmsf.fr); - b[len++] = temp >> 24; - b[len++] = temp >> 16; - b[len++] = temp >> 8; - b[len++] = temp; - } + b[len++]=0; + b[len++] = tmsf.min; + b[len++] = tmsf.sec; + b[len++] = tmsf.fr; } return len; } diff --git a/src/win.c b/src/win.c index 4d7bc0631..2ac9fdd84 100644 --- a/src/win.c +++ b/src/win.c @@ -920,8 +920,14 @@ void update_status_bar_panes(HWND hwnds) c_ide_dma = count_hard_disks(3); c_scsi = count_hard_disks(4); + for (i = 0; i < sb_parts; i++) + { + SendMessage(hwnds, SB_SETICON, i, (LPARAM) NULL); + } + sb_parts = 0; - memset(sb_part_meanings, 0, 40); + memset(iStatusWidths, 0, 48); + memset(sb_part_meanings, 0, 48); for (i = 0; i < 4; i++) { if (fdd_get_type(i) != 0)