• R/O
  • HTTP
  • SSH
  • HTTPS

common_source_project-fm7: Commit

Common Source Code Project for Qt (a.k.a for FM-7).


Commit MetaInfo

Revisione4bd170370208d08e492747df856e618a4f8a7ec (tree)
Zeit2023-02-06 19:10:00
AutorK.Ohta <whatisthis.sowhat@gmai...>
CommiterK.Ohta

Log Message

[UI][Qt][EMU][WIP] Improve OSD calling around Virtual floppy disk menus.

Ändern Zusammenfassung

Diff

--- a/source/src/emu.cpp
+++ b/source/src/emu.cpp
@@ -2368,16 +2368,16 @@ void EMU::update_media()
23682368 #ifdef USE_FLOPPY_DISK
23692369 for(int drv = 0; drv < USE_FLOPPY_DISK; drv++) {
23702370 if(floppy_disk_status[drv].wait_count != 0 && --floppy_disk_status[drv].wait_count == 0) {
2371- vm->open_floppy_disk(drv, floppy_disk_status[drv].path, floppy_disk_status[drv].bank & 0x7f);
2371+ vm->open_floppy_disk(drv, floppy_disk_status[drv].path, floppy_disk_status[drv].bank & EMU_MEDIA_TYPE::EMU_SLOT_MASK);
23722372 #if USE_FLOPPY_DISK > 1
23732373 out_message(_T("FD%d: %s"), drv + BASE_FLOPPY_DISK_NUM, floppy_disk_status[drv].path);
23742374 #else
23752375 out_message(_T("FD: %s"), floppy_disk_status[drv].path);
23762376 #endif
2377- osd->string_message_from_emu(EMU_MEDIA_TYPE::FLOPPY_DISK | (floppy_disk_status[drv].bank & 0xff),
2378- drv,
2379- EMU_MESSAGE_TYPE::MEDIA_MOUNTED,
2380- floppy_disk_status[drv].path);
2377+ osdcall_string(EMU_MEDIA_TYPE::FLOPPY_DISK | (floppy_disk_status[drv].bank & EMU_MEDIA_TYPE::EMU_SLOT_MASK),
2378+ drv,
2379+ EMU_MESSAGE_TYPE::MEDIA_MOUNTED,
2380+ floppy_disk_status[drv].path);
23812381 }
23822382 }
23832383 #endif
@@ -2390,6 +2390,10 @@ void EMU::update_media()
23902390 #else
23912391 out_message(_T("QD: %s"), quick_disk_status[drv].path);
23922392 #endif
2393+ osdcall_string(EMU_MEDIA_TYPE::QUICK_DISK,
2394+ drv,
2395+ EMU_MESSAGE_TYPE::MEDIA_MOUNTED,
2396+ (_TCHAR *)quick_disk_status[drv].path);
23932397 }
23942398 }
23952399 #endif
@@ -2402,6 +2406,10 @@ void EMU::update_media()
24022406 #else
24032407 out_message(_T("HD: %s"), hard_disk_status[drv].path);
24042408 #endif
2409+ osdcall_string(EMU_MEDIA_TYPE::HARD_DISK,
2410+ drv,
2411+ EMU_MESSAGE_TYPE::MEDIA_MOUNTED,
2412+ (_TCHAR *)hard_disk_status[drv].path);
24052413 }
24062414 }
24072415 #endif
@@ -2418,6 +2426,10 @@ void EMU::update_media()
24182426 #else
24192427 out_message(_T("CMT: %s"), tape_status[drv].path);
24202428 #endif
2429+ osdcall_string(EMU_MEDIA_TYPE::TAPE,
2430+ drv,
2431+ EMU_MESSAGE_TYPE::MEDIA_MOUNTED,
2432+ (_TCHAR *)tape_status[drv].path);
24212433 }
24222434 }
24232435 #endif
@@ -2430,6 +2442,10 @@ void EMU::update_media()
24302442 #else
24312443 out_message(_T("CD: %s"), compact_disc_status[drv].path);
24322444 #endif
2445+ osdcall_string(EMU_MEDIA_TYPE::COMPACT_DISC,
2446+ drv,
2447+ EMU_MESSAGE_TYPE::MEDIA_MOUNTED,
2448+ (_TCHAR *)compact_disc_status[drv].path);
24332449 }
24342450 }
24352451 #endif
@@ -2442,18 +2458,26 @@ void EMU::update_media()
24422458 #else
24432459 out_message(_T("LD: %s"), laser_disc_status[drv].path);
24442460 #endif
2461+ osdcall_string(EMU_MEDIA_TYPE::LASER_DISC,
2462+ drv,
2463+ EMU_MESSAGE_TYPE::MEDIA_MOUNTED,
2464+ (_TCHAR *)laser_disc_status[drv].path);
24452465 }
24462466 }
24472467 #endif
24482468 #ifdef USE_BUBBLE
24492469 for(int drv = 0; drv < USE_BUBBLE; drv++) {
24502470 if(bubble_casette_status[drv].wait_count != 0 && --bubble_casette_status[drv].wait_count == 0) {
2451- vm->open_bubble_casette(drv, bubble_casette_status[drv].path, bubble_casette_status[drv].bank);
2471+ vm->open_bubble_casette(drv, bubble_casette_status[drv].path, bubble_casette_status[drv].bank & EMU_MEDIA_TYPE::EMU_SLOT_MASK);
24522472 #if USE_BUBBLE > 1
24532473 out_message(_T("Bubble%d: %s"), drv + BASE_BUBBLE_NUM, bubble_casette_status[drv].path);
24542474 #else
24552475 out_message(_T("Bubble: %s"), bubble_casette_status[drv].path);
24562476 #endif
2477+ osdcall_string(EMU_MEDIA_TYPE::BUBBLE_CASETTE | (bubble_casette_status[drv].bank & EMU_MEDIA_TYPE::EMU_SLOT_MASK),
2478+ drv,
2479+ EMU_MESSAGE_TYPE::MEDIA_MOUNTED,
2480+ (_TCHAR *)bubble_casette_status[drv].path);
24572481 }
24582482 }
24592483 #endif
@@ -2476,11 +2500,11 @@ void EMU::restore_media()
24762500 #ifdef USE_FLOPPY_DISK
24772501 for(int drv = 0; drv < USE_FLOPPY_DISK; drv++) {
24782502 if(floppy_disk_status[drv].path[0] != _T('\0')) {
2479- vm->open_floppy_disk(drv, floppy_disk_status[drv].path, floppy_disk_status[drv].bank & 0x7f);
2480- osd->string_message_from_emu(EMU_MEDIA_TYPE::FLOPPY_DISK | (floppy_disk_status[drv].bank & 0xff),
2481- drv,
2482- EMU_MESSAGE_TYPE::MEDIA_MOUNTED,
2483- floppy_disk_status[drv].path);
2503+ vm->open_floppy_disk(drv, floppy_disk_status[drv].path, floppy_disk_status[drv].bank & EMU_MEDIA_TYPE::EMU_SLOT_MASK);
2504+ osdcall_string(EMU_MEDIA_TYPE::FLOPPY_DISK | (floppy_disk_status[drv].bank & EMU_MEDIA_TYPE::EMU_SLOT_MASK),
2505+ drv,
2506+ EMU_MESSAGE_TYPE::MEDIA_MOUNTED,
2507+ floppy_disk_status[drv].path);
24842508 }
24852509 }
24862510 #endif
@@ -2544,6 +2568,10 @@ void EMU::open_cart(int drv, const _TCHAR* file_path)
25442568 }
25452569 my_tcscpy_s(cart_status[drv].path, _MAX_PATH, file_path);
25462570 out_message(_T("Cart%d: %s"), drv + 1, file_path);
2571+ osdcall_string(EMU_MEDIA_TYPE::CARTRIDGE,
2572+ drv,
2573+ EMU_MESSAGE_TYPE::MEDIA_MOUNTED,
2574+ (_TCHAR *)file_path);
25472575 #if !defined(_USE_QT)
25482576 // restart recording
25492577 bool s = osd->now_record_sound;
@@ -2567,6 +2595,10 @@ void EMU::close_cart(int drv)
25672595 #else
25682596 out_message(_T("Cart: Ejected"));
25692597 #endif
2598+ osdcall_int(EMU_MEDIA_TYPE::CARTRIDGE,
2599+ drv,
2600+ EMU_MESSAGE_TYPE::MEDIA_REMOVED,
2601+ 0);
25702602 #if !defined(_USE_QT)
25712603 // stop recording
25722604 stop_record_video();
@@ -2648,7 +2680,7 @@ void EMU::open_floppy_disk(int drv, const _TCHAR* file_path, int bank)
26482680 d88_file[drv].bank_num++;
26492681 }
26502682 my_tcscpy_s(d88_file[drv].path, _MAX_PATH, file_path);
2651- d88_file[drv].cur_bank = bank & 0x7f;
2683+ d88_file[drv].cur_bank = bank & EMU_MEDIA_TYPE::EMU_SLOT_MASK;
26522684 } catch(...) {
26532685 d88_file[drv].bank_num = 0;
26542686 }
@@ -2666,17 +2698,21 @@ void EMU::open_floppy_disk(int drv, const _TCHAR* file_path, int bank)
26662698 #else
26672699 out_message(_T("FD: Ejected"));
26682700 #endif
2669- } else if(floppy_disk_status[drv].wait_count == 0) {
2670- vm->open_floppy_disk(drv, file_path, bank & 0x7f);
2701+ osdcall_int(EMU_MEDIA_TYPE::FLOPPY_DISK,
2702+ drv,
2703+ EMU_MESSAGE_TYPE::MEDIA_REMOVED,
2704+ 0);
2705+ } else if(floppy_disk_status[drv].wait_count == 0) {
2706+ vm->open_floppy_disk(drv, file_path, bank & EMU_MEDIA_TYPE::EMU_SLOT_MASK);
26712707 #if USE_FLOPPY_DISK > 1
26722708 out_message(_T("FD%d: %s"), drv + BASE_FLOPPY_DISK_NUM, file_path);
26732709 #else
26742710 out_message(_T("FD: %s"), file_path);
26752711 #endif
2676- osd->string_message_from_emu(EMU_MEDIA_TYPE::FLOPPY_DISK | (bank & 0xff),
2677- drv,
2678- EMU_MESSAGE_TYPE::MEDIA_MOUNTED,
2679- (_TCHAR *)file_path);
2712+ osdcall_string(EMU_MEDIA_TYPE::FLOPPY_DISK | (bank & EMU_MEDIA_TYPE::MULTIPLE_SLOT_MASK),
2713+ drv,
2714+ EMU_MESSAGE_TYPE::MEDIA_MOUNTED,
2715+ (_TCHAR *)file_path);
26802716 }
26812717 my_tcscpy_s(floppy_disk_status[drv].path, _MAX_PATH, file_path);
26822718 floppy_disk_status[drv].bank = bank;
@@ -2697,6 +2733,10 @@ void EMU::close_floppy_disk(int drv)
26972733 #else
26982734 out_message(_T("FD: Ejected"));
26992735 #endif
2736+ osdcall_int(EMU_MEDIA_TYPE::FLOPPY_DISK,
2737+ drv,
2738+ EMU_MESSAGE_TYPE::MEDIA_REMOVED,
2739+ 0);
27002740 }
27012741 }
27022742
@@ -2759,6 +2799,10 @@ void EMU::open_quick_disk(int drv, const _TCHAR* file_path)
27592799 #else
27602800 out_message(_T("QD: Ejected"));
27612801 #endif
2802+ osdcall_int(EMU_MEDIA_TYPE::QUICK_DISK,
2803+ drv,
2804+ EMU_MESSAGE_TYPE::MEDIA_REMOVED,
2805+ 0);
27622806 } else if(quick_disk_status[drv].wait_count == 0) {
27632807 vm->open_quick_disk(drv, file_path);
27642808 #if USE_QUICK_DISK > 1
@@ -2766,6 +2810,10 @@ void EMU::open_quick_disk(int drv, const _TCHAR* file_path)
27662810 #else
27672811 out_message(_T("QD: %s"), file_path);
27682812 #endif
2813+ osdcall_string(EMU_MEDIA_TYPE::QUICK_DISK,
2814+ drv,
2815+ EMU_MESSAGE_TYPE::MEDIA_MOUNTED,
2816+ (_TCHAR*)file_path);
27692817 }
27702818 my_tcscpy_s(quick_disk_status[drv].path, _MAX_PATH, file_path);
27712819 }
@@ -2781,6 +2829,10 @@ void EMU::close_quick_disk(int drv)
27812829 #else
27822830 out_message(_T("QD: Ejected"));
27832831 #endif
2832+ osdcall_int(EMU_MEDIA_TYPE::QUICK_DISK,
2833+ drv,
2834+ EMU_MESSAGE_TYPE::MEDIA_REMOVED,
2835+ 0);
27842836 }
27852837 }
27862838
@@ -2907,6 +2959,10 @@ void EMU::open_hard_disk(int drv, const _TCHAR* file_path)
29072959 #else
29082960 out_message(_T("HD: Unmounted"));
29092961 #endif
2962+ osdcall_int((EMU_MEDIA_TYPE::HARD_DISK,
2963+ drv,
2964+ EMU_MESSAGE_TYPE::MEDIA_REMOVED,
2965+ 0);
29102966 } else if(hard_disk_status[drv].wait_count == 0) {
29112967 vm->open_hard_disk(drv, file_path);
29122968 #if USE_HARD_DISK > 1
@@ -2914,6 +2970,10 @@ void EMU::open_hard_disk(int drv, const _TCHAR* file_path)
29142970 #else
29152971 out_message(_T("HD: %s"), file_path);
29162972 #endif
2973+ osdcall_string(EMU_MEDIA_TYPE::HARD_DISK,
2974+ drv,
2975+ EMU_MESSAGE_TYPE::MEDIA_MOUNTED,
2976+ (_TCHAR*)file_path);
29172977 }
29182978 my_tcscpy_s(hard_disk_status[drv].path, _MAX_PATH, file_path);
29192979 my_tcscpy_s(config.last_hard_disk_path[drv], _MAX_PATH, file_path);
@@ -2930,6 +2990,10 @@ void EMU::close_hard_disk(int drv)
29302990 #else
29312991 out_message(_T("HD: Unmounted"));
29322992 #endif
2993+ osdcall_int((EMU_MEDIA_TYPE::HARD_DISK,
2994+ drv,
2995+ EMU_MESSAGE_TYPE::MEDIA_REMOVED,
2996+ 0);
29332997 config.last_hard_disk_path[drv][0] = '\0';
29342998 }
29352999 }
@@ -2963,6 +3027,10 @@ void EMU::play_tape(int drv, const _TCHAR* file_path)
29633027 #else
29643028 out_message(_T("CMT: Ejected"));
29653029 #endif
3030+ osdcall_int(EMU_MEDIA_TYPE::TAPE,
3031+ drv,
3032+ EMU_MESSAGE_TYPE::MEDIA_REMOVED,
3033+ 0);
29663034 } else if(tape_status[drv].wait_count == 0) {
29673035 vm->play_tape(drv, file_path);
29683036 #if USE_TAPE > 1
@@ -2970,6 +3038,10 @@ void EMU::play_tape(int drv, const _TCHAR* file_path)
29703038 #else
29713039 out_message(_T("CMT: %s"), file_path);
29723040 #endif
3041+ osdcall_string(EMU_MEDIA_TYPE::TAPE,
3042+ drv,
3043+ EMU_MESSAGE_TYPE::MEDIA_MOUNTED,
3044+ (_TCHAR*)file_path);
29733045 }
29743046 my_tcscpy_s(tape_status[drv].path, _MAX_PATH, file_path);
29753047 tape_status[drv].play = true;
@@ -2988,6 +3060,10 @@ void EMU::rec_tape(int drv, const _TCHAR* file_path)
29883060 #else
29893061 out_message(_T("CMT: Ejected"));
29903062 #endif
3063+ osdcall_int(EMU_MEDIA_TYPE::TAPE,
3064+ drv,
3065+ EMU_MESSAGE_TYPE::MEDIA_REMOVED,
3066+ 0);
29913067 } else if(tape_status[drv].wait_count == 0) {
29923068 vm->rec_tape(drv, file_path);
29933069 #if USE_TAPE > 1
@@ -2995,6 +3071,10 @@ void EMU::rec_tape(int drv, const _TCHAR* file_path)
29953071 #else
29963072 out_message(_T("CMT: %s"), file_path);
29973073 #endif
3074+ osdcall_string(EMU_MEDIA_TYPE::TAPE,
3075+ drv,
3076+ EMU_MESSAGE_TYPE::MEDIA_MOUNTED,
3077+ (_TCHAR*)file_path);
29983078 }
29993079 my_tcscpy_s(tape_status[drv].path, _MAX_PATH, file_path);
30003080 tape_status[drv].play = false;
@@ -3011,6 +3091,10 @@ void EMU::close_tape(int drv)
30113091 #else
30123092 out_message(_T("CMT: Ejected"));
30133093 #endif
3094+ osdcall_int(EMU_MEDIA_TYPE::TAPE,
3095+ drv,
3096+ EMU_MESSAGE_TYPE::MEDIA_REMOVED,
3097+ 0);
30143098 }
30153099 }
30163100
@@ -3115,6 +3199,10 @@ void EMU::open_compact_disc(int drv, const _TCHAR* file_path)
31153199 #else
31163200 out_message(_T("CD: Ejected"));
31173201 #endif
3202+ osdcall_int(EMU_MEDIA_TYPE::COMPACT_DISC,
3203+ drv,
3204+ EMU_MESSAGE_TYPE::MEDIA_REMOVED,
3205+ 0);
31183206 } else if(compact_disc_status[drv].wait_count == 0) {
31193207 vm->open_compact_disc(drv, file_path);
31203208 #if USE_COMPACT_DISC > 1
@@ -3122,6 +3210,10 @@ void EMU::open_compact_disc(int drv, const _TCHAR* file_path)
31223210 #else
31233211 out_message(_T("CD: %s"), file_path);
31243212 #endif
3213+ osdcall_string(EMU_MEDIA_TYPE::COMPACT_DISC,
3214+ drv,
3215+ EMU_MESSAGE_TYPE::MEDIA_MOUNTED,
3216+ (_TCHAR*)file_path);
31253217 }
31263218 my_tcscpy_s(compact_disc_status[drv].path, _MAX_PATH, file_path);
31273219 }
@@ -3137,6 +3229,10 @@ void EMU::close_compact_disc(int drv)
31373229 #else
31383230 out_message(_T("CD: Ejected"));
31393231 #endif
3232+ osdcall_int(EMU_MEDIA_TYPE::COMPACT_DISC,
3233+ drv,
3234+ EMU_MESSAGE_TYPE::MEDIA_REMOVED,
3235+ 0);
31403236 }
31413237 }
31423238
@@ -3168,6 +3264,10 @@ void EMU::open_laser_disc(int drv, const _TCHAR* file_path)
31683264 #else
31693265 out_message(_T("LD: Ejected"));
31703266 #endif
3267+ osdcall_int(EMU_MEDIA_TYPE::LASER_DISC,
3268+ drv,
3269+ EMU_MESSAGE_TYPE::MEDIA_REMOVED,
3270+ 0);
31713271 } else if(laser_disc_status[drv].wait_count == 0) {
31723272 vm->open_laser_disc(drv, file_path);
31733273 #if USE_LASER_DISC > 1
@@ -3175,6 +3275,10 @@ void EMU::open_laser_disc(int drv, const _TCHAR* file_path)
31753275 #else
31763276 out_message(_T("LD: %s"), file_path);
31773277 #endif
3278+ osdcall_string(EMU_MEDIA_TYPE::LASER_DISC,
3279+ drv,
3280+ EMU_MESSAGE_TYPE::MEDIA_MOUNTED,
3281+ (_TCHAR*)file_path);
31783282 }
31793283 my_tcscpy_s(laser_disc_status[drv].path, _MAX_PATH, file_path);
31803284 }
@@ -3190,6 +3294,10 @@ void EMU::close_laser_disc(int drv)
31903294 #else
31913295 out_message(_T("LD: Ejected"));
31923296 #endif
3297+ osdcall_int(EMU_MEDIA_TYPE::LASER_DISC,
3298+ drv,
3299+ EMU_MESSAGE_TYPE::MEDIA_REMOVED,
3300+ 0);
31933301 }
31943302 }
31953303
@@ -3253,6 +3361,10 @@ void EMU::open_bubble_casette(int drv, const _TCHAR* file_path, int bank)
32533361 #else
32543362 out_message(_T("Bubble: Ejected"));
32553363 #endif
3364+ osdcall_int(EMU_MEDIA_TYPE::BUBBLE_CASETTE,
3365+ drv,
3366+ EMU_MESSAGE_TYPE::MEDIA_REMOVED,
3367+ 0);
32563368 } else if(bubble_casette_status[drv].wait_count == 0) {
32573369 vm->open_bubble_casette(drv, file_path, bank);
32583370 #if USE_BUBBLE > 1
@@ -3260,6 +3372,10 @@ void EMU::open_bubble_casette(int drv, const _TCHAR* file_path, int bank)
32603372 #else
32613373 out_message(_T("Bubble: %s"), file_path);
32623374 #endif
3375+ osdcall_string(EMU_MEDIA_TYPE::BUBBLE_CASETTE | (bank & EMU_MEDIA_TYPE::MULIPLE_SLOT_MASK),
3376+ drv,
3377+ EMU_MESSAGE_TYPE::MEDIA_MOUNTED,
3378+ (_TCHAR*)file_path);
32633379 }
32643380 my_tcscpy_s(bubble_casette_status[drv].path, _MAX_PATH, file_path);
32653381 bubble_casette_status[drv].bank = bank;
@@ -3276,6 +3392,10 @@ void EMU::close_bubble_casette(int drv)
32763392 #else
32773393 out_message(_T("Bubble: Ejected"));
32783394 #endif
3395+ osdcall_int(EMU_MEDIA_TYPE::BUBBLE_CASETTE,
3396+ drv,
3397+ EMU_MESSAGE_TYPE::MEDIA_REMOVED,
3398+ 0);
32793399 }
32803400 }
32813401
--- a/source/src/osdcall_types.h
+++ b/source/src/osdcall_types.h
@@ -25,11 +25,19 @@ namespace EMU_MEDIA_TYPE {
2525 QUICK_DISK = 8 << 16,
2626 TAPE = 9 << 16,
2727
28- AUDIO = (1 << 18) + (30 << 16),
29- VIDEO = (2 << 18) + (30 << 16),
30- ANY_MEDIA = (7 << 18) + (30 << 16),
28+ AUDIO = (28 << 16),
29+ VIDEO = (29 << 16),
30+ ANY_MEDIA = (127 << 16),
31+ UI_MEDIA_MASK = (127 << 16),
32+ UI_MESSAGE_MASK = ((0xffffffff) << 32),
33+
34+ EMU_SLOT_MASK = 0x7f,
35+ MULTIPLE_SLOT_MASK = 0xff,
36+
3137 END = UINT64_MAX
3238 };
39+ const type_t MULTIPLE_SLOT_DETECT_MASK = ((~EMU_SLOT_MASK) & MULTIPLE_SLOT_MASK);
40+
3341 }
3442
3543
--- a/source/src/qt/common/emu_thread_slots.cpp
+++ b/source/src/qt/common/emu_thread_slots.cpp
@@ -501,15 +501,19 @@ void EmuThreadClassBase::do_stop_auto_key(void)
501501 void EmuThreadClassBase::do_write_protect_disk(int drv, bool flag)
502502 {
503503 //QMutexLocker _locker(&uiMutex);
504- if(using_flags->is_use_fd()) {
504+ std::shared_ptr<USING_FLAGS> p = using_flags;
505+ if(p.get() == nullptr) return;
506+ if((p->get_max_drive() > drv) && (p->is_use_fd())) {
505507 p_emu->is_floppy_disk_protected(drv, flag);
506508 }
507509 }
508510
509-void EmuThreadClassBase::do_close_disk(int drv)
511+void EmuThreadClassBase::do_close_floppy_disk(int drv)
510512 {
511513 //QMutexLocker _locker(&uiMutex);
512- if(using_flags->is_use_fd()) {
514+ std::shared_ptr<USING_FLAGS> p = using_flags;
515+ if(p.get() == nullptr) return;
516+ if((p->get_max_drive() > drv) && (p->is_use_fd())) {
513517 p_emu->close_floppy_disk(drv);
514518 //fd_open_wait_count[drv] = (int)(get_emu_frame_rate() * 1.0);
515519 emit sig_change_virtual_media(CSP_DockDisks_Domain_FD, drv, QString::fromUtf8(""));
@@ -518,13 +522,15 @@ void EmuThreadClassBase::do_close_disk(int drv)
518522 }
519523 }
520524
521-void EmuThreadClassBase::do_open_disk(int drv, QString path, int bank)
525+void EmuThreadClassBase::do_open_floppy_disk(int drv, QString path, int bank)
522526 {
523527 if(path.isEmpty()) return;
524528 if(path.isNull()) return;
525529
526- if(using_flags.get() == nullptr) return;
530+ std::shared_ptr<USING_FLAGS> p = using_flags;
531+ if(p.get() == nullptr) return;
527532 if(!(using_flags->is_use_fd())) return;
533+ if(!((p->get_max_drive() > drv) && (p->is_use_fd()))) return;
528534
529535 const _TCHAR *file_path = (const _TCHAR *)(path.toLocal8Bit().constData());
530536 if(!(FILEIO::IsFileExisting(file_path))) return; // File not found.
@@ -537,56 +543,6 @@ void EmuThreadClassBase::do_open_disk(int drv, QString path, int bank)
537543 }
538544
539545 // Signal from EMU:: -> OSD:: -> EMU_THREAD (-> GUI)
540-void EmuThreadClassBase::done_open_floppy_disk(int drive, QString path)
541-{
542- if((using_flags.get() == nullptr) || (p_config == nullptr)) return;
543-
544- if(!(using_flags->is_use_fd())) return;
545- if((drive < 0) || (drive >= using_flags->get_max_drive())) return;
546-
547- QStringList list;
548- _TCHAR path_shadow[_MAX_PATH] = {0};
549- strncpy(path_shadow, path.toLocal8Bit().constData(), _MAX_PATH - 1);
550- UPDATE_HISTORY(path_shadow, p_config->recent_floppy_disk_path[drive], list);
551-
552- const _TCHAR* __dir = get_parent_dir((const _TCHAR *)path_shadow);
553- strncpy(p_config->initial_floppy_disk_dir, __dir, _MAX_PATH - 1);
554-
555- emit sig_ui_update_floppy_list(drive, list);
556- emit sig_ui_clear_d88(drive);
557-
558- bool _f = check_file_extension(path_shadow, ".d88");
559- _f |= check_file_extension(path_shadow, ".d77");
560- QString relpath = QString::fromUtf8("");
561- if(strlen(&(__dir[0])) > 1) {
562- relpath = QString::fromLocal8Bit(&(__dir[1]));
563- }
564-
565- if(_f) {
566- if(p_emu != nullptr) {
567- int slot = p_emu->d88_file[drive].cur_bank;
568- for(int i = 0; i < p_emu->d88_file[drive].bank_num; i++) {
569- if(i >= 64) break;
570- _TCHAR tmpname[128] = {0};
571- my_strcpy_s(tmpname, 127, p_emu->d88_file[drive].disk_name[i]);
572- QString tmps = QString::fromLocal8Bit(tmpname);
573- emit sig_ui_update_d88(drive, i, tmps);
574- if(i == slot) {
575- emit sig_ui_select_d88(drive, i);
576- relpath = tmps;
577- }
578- }
579- }
580- }
581- emit sig_change_virtual_media(CSP_DockDisks_Domain_FD, drive, relpath);
582-}
583-
584-void EmuThreadClassBase::done_close_floppy_disk(int drive)
585-{
586- emit sig_ui_close_floppy_disk(drive);
587- emit sig_change_virtual_media(CSP_DockDisks_Domain_FD, drive, QString::fromUtf8(""));
588-}
589-
590546 void EmuThreadClassBase::done_select_d88(int drive, int slot)
591547 {
592548 if(p_emu == nullptr) return;
--- a/source/src/qt/common/qt_utils.cpp
+++ b/source/src/qt/common/qt_utils.cpp
@@ -160,9 +160,9 @@ void Ui_MainWindow::LaunchEmuThread(EmuThreadClassBase *m)
160160 }
161161 }
162162 #if defined(USE_FLOPPY_DISK)
163- connect(this, SIGNAL(sig_write_protect_disk(int, bool)), hRunEmu, SLOT(do_write_protect_disk(int, bool)));
164- connect(this, SIGNAL(sig_open_disk(int, QString, int)), hRunEmu, SLOT(do_open_disk(int, QString, int)));
165- connect(this, SIGNAL(sig_close_disk(int)), hRunEmu, SLOT(do_close_disk(int)));
163+ connect(this, SIGNAL(sig_write_protect_floppy_disk(int, bool)), hRunEmu, SLOT(do_write_protect_disk(int, bool)));
164+ connect(this, SIGNAL(sig_open_floppy_disk(int, QString, int)), hRunEmu, SLOT(do_open_floppy_disk(int, QString, int)));
165+ connect(this, SIGNAL(sig_close_floppy_disk(int)), hRunEmu, SLOT(do_close_floppy_disk(int)));
166166 connect(hRunEmu, SIGNAL(sig_update_recent_disk(int)), this, SLOT(do_update_recent_disk(int)));
167167 //connect(hRunEmu, SIGNAL(sig_change_osd_fd(int, QString)), this, SLOT(do_change_osd_fd(int, QString)));
168168 connect(p_osd, SIGNAL(sig_ui_floppy_insert_history(int, QString, quint64)),
@@ -382,7 +382,7 @@ void Ui_MainWindow::do_create_d88_media(int drv, quint8 media_type, QString name
382382 if(drv < USE_FLOPPY_DISK) {
383383 const _TCHAR* path = (const _TCHAR *)(name.toLocal8Bit().data());
384384 if(emu->create_blank_floppy_disk(path, media_type)) {
385- emit sig_open_disk(drv, name, 0);
385+ emit sig_open_floppy_disk(drv, name, 0);
386386 }
387387 }
388388 #endif
--- a/source/src/qt/common/util_fd2.cpp
+++ b/source/src/qt/common/util_fd2.cpp
@@ -11,17 +11,15 @@
1111 //#if defined(USE_FLOPPY_DISK)
1212
1313 #ifndef UPDATE_D88_LIST
14-#define UPDATE_D88_LIST(__d, lst) { \
15- lst.clear(); \
16- QString __tmps; \
17- for(int iii = 0; iii < 64; iii++) { \
18- __tmps = QString::fromUtf8(""); \
19- if(iii < hRunEmu->get_d88_file_bank_num(__d)) { \
20- __tmps = hRunEmu->get_d88_file_disk_name(__d, iii); \
21- } \
22- lst << __tmps; \
23- } \
24-}
14+#define UPDATE_D88_LIST(__d, lst) { \
15+ QString __tmps; \
16+ int ___bn = hRunEmu->get_d88_file_bank_num(__d); \
17+ for(int iii = 0; iii < ((___bn < 64) ? ___bn : 64); iii++) { \
18+ __tmps = hRunEmu->get_d88_file_disk_name(__d, iii); \
19+ lst << __tmps; \
20+ } \
21+ }
22+
2523 #endif
2624
2725
@@ -35,8 +33,8 @@ int Ui_MainWindowBase::set_d88_slot(int drive, int num)
3533 menu_fds[drive]->do_select_inner_media(num);
3634
3735 if(hRunEmu->get_d88_file_cur_bank(drive) != num) {
38- emit sig_close_disk(drive);
39- emit sig_open_disk(drive, path, num);
36+ emit sig_close_floppy_disk(drive);
37+ emit sig_open_floppy_disk(drive, path, num & EMU_MEDIA_TYPE::EMU_SLOT_MASK);
4038 if(hRunEmu->is_floppy_disk_protected(drive)) {
4139 menu_fds[drive]->do_set_write_protect(true);
4240 } else {
@@ -88,7 +86,7 @@ void Ui_MainWindowBase::do_ui_floppy_insert_history(int drv, QString fname, quin
8886 strncpy(path_shadow, fname.toLocal8Bit().constData(), _MAX_PATH - 1);
8987 if(!(FILEIO::IsFileExisting(path_shadow))) return;
9088
91- if((bank & 0x80) == 0) {
89+ if((bank & EMU_MEDIA_TYPE::MULTIPLE_SLOT_DETECT_MASK) == 0) {
9290 UPDATE_HISTORY(path_shadow, p_config->recent_floppy_disk_path[drv], listFDs[drv]);
9391 strcpy(p_config->initial_floppy_disk_dir, get_parent_dir((const _TCHAR *)path_shadow));
9492 // Update List
@@ -96,13 +94,12 @@ void Ui_MainWindowBase::do_ui_floppy_insert_history(int drv, QString fname, quin
9694 menu_fds[drv]->do_set_initialize_directory(p_config->initial_floppy_disk_dir);
9795 }
9896 do_update_floppy_history(drv, listFDs[drv]);
99-
97+
98+ listD88[drv].clear();
10099 if(check_file_extension(path_shadow, ".d88") || check_file_extension(path_shadow, ".d77")) {
101100 UPDATE_D88_LIST(drv, listD88[drv]);
102- menu_fds[drv]->do_update_inner_media(listD88[drv], bank & 0x7f);
103- } else {
104- menu_fds[drv]->do_clear_inner_media();
105101 }
102+ menu_fds[drv]->do_update_inner_media(listD88[drv], bank & EMU_MEDIA_TYPE::EMU_SLOT_MASK);
106103 }
107104
108105 void Ui_MainWindowBase::_open_disk(int drv, const QString fname)
@@ -114,24 +111,23 @@ void Ui_MainWindowBase::_open_disk(int drv, const QString fname)
114111 if(!(FILEIO::IsFileExisting(fname.toLocal8Bit().constData()))) return; // File not found.
115112 // drv = drv & 7;
116113 strncpy(path_shadow, fname.toLocal8Bit().constData(), PATH_MAX - 1);
117- emit sig_close_disk(drv);
118- emit sig_open_disk(drv, fname, 0);
114+ emit sig_close_floppy_disk(drv);
115+ emit sig_open_floppy_disk(drv, fname, 0);
119116
120117 if(using_flags->get_max_drive() > (drv + 1)) {
121118 if(check_file_extension(path_shadow, ".d88") || check_file_extension(path_shadow, ".d77")) {
122119 if(((drv & 1) == 0) && (drv + 1 < using_flags->get_max_drive()) && (1 < hRunEmu->get_d88_file_bank_num(drv))) {
123120 int drv2 = drv + 1;
124- emit sig_close_disk(drv2);
125- emit sig_open_disk(drv2, fname, 1 + 128);
121+ emit sig_close_floppy_disk(drv2);
122+ emit sig_open_floppy_disk(drv2, fname, 1 | EMU_MEDIA_TYPE::MULTIPLE_SLOT_DETECT_MASK);
126123 }
127124 }
128125 }
129126 }
130127
131-
132128 void Ui_MainWindowBase::do_update_d88_list(int drv, int bank)
133129 {
134- UPDATE_D88_LIST(drv, listD88[drv]);
135- menu_fds[drv]->do_update_inner_media(listD88[drv], bank);
130+// UPDATE_D88_LIST(drv, listD88[drv]);
131+ menu_fds[drv]->do_update_inner_media(listD88[drv], bank & EMU_MEDIA_TYPE::EMU_SLOT_MASK);
136132 }
137133 //#endif
--- a/source/src/qt/gui/emu_thread_tmpl.cpp
+++ b/source/src/qt/gui/emu_thread_tmpl.cpp
@@ -500,12 +500,17 @@ void EmuThreadClassBase::print_framerate(int frames)
500500
501501 int EmuThreadClassBase::get_d88_file_cur_bank(int drive)
502502 {
503- if(using_flags.get() == nullptr) return -1;
504- if(!(using_flags->is_use_fd())) return -1;
503+ std::shared_ptr<USING_FLAGS> p = using_flags;
504+ if(p.get() == nullptr) return -1;
505+ if(!(p->is_use_fd())) return -1;
505506
506- if(drive < using_flags->get_max_drive()) {
507+ if((drive < p->get_max_drive()) && (p_emu != nullptr)) {
507508 QMutexLocker _locker(&uiMutex);
508- return p_emu->d88_file[drive].cur_bank;
509+ int bank_num = p_emu->d88_file[drive].bank_num;
510+ int cur_bank = p_emu->d88_file[drive].cur_bank;
511+ if((bank_num > 0) && (cur_bank < bank_num)) {
512+ return cur_bank;
513+ }
509514 }
510515
511516 return -1;
@@ -854,88 +859,6 @@ bool EmuThreadClassBase::now_debugging()
854859 }
855860 }
856861
857-VirtualFilesList* EmuThreadClassBase::getBinaryFilesList(int drv)
858-{
859- QList<VirtualFilesList*> *p = &vBinaryFilesList;
860- return getVirtualMediaListPtr(drv, p);
861-}
862-
863-VirtualFilesList* EmuThreadClassBase::getBubbleFilesList(int drv)
864-{
865- QList<VirtualFilesList*> *p = &vBubbleFilesList;
866- return getVirtualMediaListPtr(drv, p);
867-}
868-
869-VirtualBanksList* EmuThreadClassBase::getB77BanksList(int drv)
870-{
871- QList<VirtualBanksList*> *p = &vB77BanksList;
872- return getVirtualMediaListPtr(drv, p);
873-}
874-
875-VirtualFilesList* EmuThreadClassBase::getCartFilesList(int drv)
876-{
877- QList<VirtualFilesList*> *p = &vCartFilesList;
878- return getVirtualMediaListPtr(drv, p);
879-}
880-
881-VirtualFilesList* EmuThreadClassBase::getCompactDiscFilesList(int drv)
882-{
883- QList<VirtualFilesList*> *p = &vCompactDiscFilesList;
884- return getVirtualMediaListPtr(drv, p);
885-}
886-
887-VirtualFilesList* EmuThreadClassBase::getFloppyDiskFilesList(int drv)
888-{
889- QList<VirtualFilesList*> *p = &vFloppyDiskFilesList;
890- return getVirtualMediaListPtr(drv, p);
891-}
892-
893-VirtualBanksList* EmuThreadClassBase::getD88BanksList(int drv)
894-{
895- QList<VirtualBanksList*> *p = &vD88BanksList;
896- return getVirtualMediaListPtr(drv, p);
897-}
898-
899-VirtualFilesList* EmuThreadClassBase::getHardDiskFilesList(int drv)
900-{
901- QList<VirtualFilesList*> *p = &vHardDiskFilesList;
902- return getVirtualMediaListPtr(drv, p);
903-}
904-
905-VirtualFilesList* EmuThreadClassBase::getLaserDiscFilesList(int drv)
906-{
907- QList<VirtualFilesList*> *p = &vLaserDiscFilesList;
908- return getVirtualMediaListPtr(drv, p);
909-}
910-
911-VirtualFilesList* EmuThreadClassBase::getQuickDiskFilesList(int drv)
912-{
913- QList<VirtualFilesList*> *p = &vQuickDiskFilesList;
914- return getVirtualMediaListPtr(drv, p);
915-}
916-
917-VirtualFilesList* EmuThreadClassBase::getTapeFilesList(int drv)
918-{
919- QList<VirtualFilesList*> *p = &vTapeFilesList;
920- return getVirtualMediaListPtr(drv, p);
921-}
922-
923-void EmuThreadClassBase::appendVirualFilesList(
924- QList<VirtualFilesList*> *lst,
925- const _TCHAR* listptr,
926- unsigned int pathlen,
927- unsigned int list_size,
928- Menu_MetaClass *target)
929-{
930- if(lst == nullptr) return;
931- if(target == nullptr) return;
932- VirtualFilesList* ptr = new VirtualFilesList((_TCHAR *)listptr, pathlen, list_size, this);
933- if(ptr == nullptr) return;
934-
935- lst->append(ptr);
936-
937- connect(ptr, SIGNAL(sig_replace_ui_list(QStringList)), target, SLOT(do_update_histories(QStringList)));
938-}
939862
940863 #if defined(Q_OS_LINUX)
941864 //#undef _GNU_SOURCE
--- a/source/src/qt/gui/emu_thread_tmpl.h
+++ b/source/src/qt/gui/emu_thread_tmpl.h
@@ -160,22 +160,6 @@ protected:
160160 QStringList vMovieQueue;
161161
162162 // Standard 8 files.
163- QList<VirtualFilesList *> vBinaryFilesList;
164-
165- QList<VirtualFilesList *> vBubbleFilesList;
166- QList<VirtualBanksList *> vB77BanksList; // 16
167-
168- QList<VirtualFilesList *> vCartFilesList;
169- QList<VirtualFilesList *> vCompactDiscFilesList;
170-
171- QList<VirtualFilesList *> vFloppyDiskFilesList; // 16
172- QList<VirtualBanksList *> vD88BanksList; // 64
173-
174- QList<VirtualFilesList *> vHardDiskFilesList;
175- QList<VirtualFilesList *> vLaserDiscFilesList;
176- QList<VirtualFilesList *> vQuickDiskFilesList;
177- QList<VirtualFilesList *> vTapeFilesList;
178-
179163 void calc_volume_from_balance(int num, int balance);
180164 void calc_volume_from_level(int num, int level);
181165 int parse_command_queue(QStringList _l, int _begin);
@@ -268,37 +252,7 @@ public:
268252 void set_floppy_disk_protected(int drive, bool flag);
269253 QString get_d88_file_path(int drive);
270254
271- VirtualFilesList* getBinaryFilesList(int drv = 0);
272-
273- VirtualFilesList* getBubbleFilesList(int drv = 0);
274- VirtualBanksList* getB77BanksList(int drv = 0);
275-
276- VirtualFilesList* getCartFilesList(int drv = 0);
277- VirtualFilesList* getCompactDiscFilesList(int drv = 0);
278-
279- VirtualFilesList* getFloppyDiskFilesList(int drv = 0);
280- VirtualBanksList* getD88BanksList(int drv = 0);
281-
282- VirtualFilesList* getHardDiskFilesList(int drv = 0);
283- VirtualFilesList* getLaserDiscFilesList(int drv = 0);
284- VirtualFilesList* getQuickDiskFilesList(int drv = 0);
285- VirtualFilesList* getTapeFilesList(int drv = 0);
286-
287- template <class X>
288- X* getVirtualMediaListPtr(int drv, QList<X*> *lst)
289- {
290- if(lst == nullptr) return nullptr;
291- if(lst->isEmpty()) return nullptr;
292- if(lst->count() <= drv) return nullptr;
293- return lst->at(drv);
294- }
295-
296- void appendVirualFilesList(
297- QList<VirtualFilesList*> *lst,
298- const _TCHAR* listptr,
299- unsigned int pathlen,
300- unsigned int list_size,
301- Menu_MetaClass *target);
255+
302256 public slots:
303257 void doExit(void);
304258
@@ -330,10 +284,12 @@ public slots:
330284 void moved_mouse(double x, double y, double globalx, double globaly);
331285
332286 void do_write_protect_disk(int drv, bool flag);
333- void do_close_disk(int);
334- void do_open_disk(int, QString, int);
287+ void do_close_floppy_disk(int);
288+ void do_open_floppy_disk(int, QString, int);
289+
335290 void do_close_hard_disk(int);
336291 void do_open_hard_disk(int, QString);
292+
337293 void do_play_tape(int drv, QString name);
338294 void do_rec_tape(int drv, QString name);
339295 void do_close_tape(int drv);
@@ -343,28 +299,33 @@ public slots:
343299 void do_cmt_push_fast_rewind(int drv);
344300 void do_cmt_push_apss_forward(int drv);
345301 void do_cmt_push_apss_rewind(int drv);
302+
346303 void do_write_protect_quickdisk(int drv, bool flag);
347304 void do_close_quickdisk(int drv);
348305 void do_open_quickdisk(int drv, QString path);
306+
349307 void do_close_cart(int drv);
350308 void do_open_cart(int drv, QString path);
309+
351310 void do_close_laser_disc(int drv);
352311 void do_open_laser_disc(int drv, QString path);
312+
353313 void do_eject_cdrom(int drv);
354314 void do_open_cdrom(int drv, QString path);
315+
355316 void do_load_binary(int drv, QString path);
356317 void do_save_binary(int drv, QString path);
318+
357319 void do_write_protect_bubble_casette(int drv, bool flag);
358320 void do_close_bubble_casette(int);
359321 void do_open_bubble_casette(int, QString, int);
322+
360323 void do_start_auto_key(QString text);
361324 void do_stop_auto_key(void);
362325 void set_romakana(bool flag);
363326 void do_close_debugger(void);
364327
365328 // Signal from EMU:: -> OSD:: -> EMU_THREAD (-> GUI (menu_foo[bar]))
366- void done_open_floppy_disk(int drive, QString path);
367- void done_close_floppy_disk(int drive);
368329 void done_select_d88(int drive, int slot);
369330
370331 void done_open_tape(int drive, QString path);
--- a/source/src/qt/gui/mainwidget_base.h
+++ b/source/src/qt/gui/mainwidget_base.h
@@ -974,9 +974,9 @@ signals:
974974 int sig_screen_multiply(double);
975975 int sig_update_master_volume(int);
976976
977- int sig_write_protect_disk(int drv, bool flag);
978- int sig_open_disk(int, QString, int);
979- int sig_close_disk(int);
977+ int sig_write_protect_floppy_disk(int drv, bool flag);
978+ int sig_open_floppy_disk(int, QString, int);
979+ int sig_close_floppy_disk(int);
980980 int sig_open_hard_disk(int, QString);
981981 int sig_close_hard_disk(int);
982982 int sig_play_tape(int ,QString);
--- a/source/src/qt/gui/menu_metaclass.cpp
+++ b/source/src/qt/gui/menu_metaclass.cpp
@@ -44,7 +44,7 @@ Menu_MetaClass::Menu_MetaClass(QMenuBar *root_entry, QString desc, std::shared_p
4444 setObjectName(object_desc);
4545
4646 for(ii = 0; ii < using_flags->get_max_d88_banks(); ii++) {
47- action_select_media_list[ii] = NULL;
47+ action_select_media_list[ii] = nullptr;
4848 }
4949 use_write_protect = true;
5050 use_d88_menus = false;
@@ -189,7 +189,7 @@ void Menu_MetaClass::do_add_media_extension(QString ext, QString description)
189189 void Menu_MetaClass::do_select_inner_media(int num)
190190 {
191191 if(use_d88_menus && (num < using_flags->get_max_d88_banks())) {
192- if(action_select_media_list[num] != NULL) {
192+ if(action_select_media_list[num] != nullptr) {
193193 action_select_media_list[num]->setChecked(true);
194194 }
195195 }
@@ -307,7 +307,7 @@ void Menu_MetaClass::do_update_histories(QStringList lst)
307307 void Menu_MetaClass::do_clear_inner_media(void)
308308 {
309309 int ii;
310- inner_media_list.clear();
310+ //inner_media_list.clear();
311311 if(use_d88_menus) {
312312 for(ii = 0; ii < using_flags->get_max_d88_banks(); ii++) {
313313 if(action_select_media_list[ii] != nullptr) {
@@ -322,8 +322,32 @@ void Menu_MetaClass::do_clear_inner_media(void)
322322 void Menu_MetaClass::do_update_inner_media(QStringList lst, int num)
323323 {
324324 QString tmps;
325- inner_media_list.clear();
326- emit sig_update_inner_fd(media_drive, inner_media_list, action_select_media_list, lst , num, use_d88_menus);
325+ if(num < 0) return;
326+
327+ if(use_d88_menus) {
328+ //inner_media_list.clear();
329+ do_clear_inner_media();
330+ int _n = using_flags->get_max_d88_banks();
331+ if(_n <= 0) return;
332+ int count = 0;
333+ for(auto _l = lst.begin(); _l != lst.end(); ++_l) {
334+ if(count >= _n) break;
335+ //inner_media_list.push_back((*_l));
336+ if(action_select_media_list[count] != nullptr) {
337+ action_select_media_list[count]->setText((*_l));
338+ action_select_media_list[count]->setChecked((count == num) ? true : false);
339+ action_select_media_list[count]->setVisible(true);
340+ }
341+ count++;
342+ }
343+ if((num >= count) || (num < 0)) {
344+ if(action_select_media_list[0] != nullptr) {
345+ action_select_media_list[0]->setChecked(true);
346+ }
347+ }
348+ }
349+
350+ //emit sig_update_inner_fd(media_drive, inner_media_list, action_select_media_list, lst , num, use_d88_menus);
327351 }
328352
329353 void Menu_MetaClass::do_update_inner_media_bubble(QStringList lst, int num)
--- a/source/src/qt/gui/util_fd.cpp
+++ b/source/src/qt/gui/util_fd.cpp
@@ -24,14 +24,14 @@
2424 int Ui_MainWindowBase::write_protect_fd(int drv, bool flag)
2525 {
2626 if((drv < 0) || (drv >= using_flags->get_max_drive())) return -1;
27- emit sig_write_protect_disk(drv, flag);
27+ emit sig_write_protect_floppy_disk(drv, flag);
2828 return 0;
2929 }
3030
3131
3232 void Ui_MainWindowBase::eject_fd(int drv)
3333 {
34- emit sig_close_disk(drv);
34+ emit sig_close_floppy_disk(drv);
3535 menu_fds[drv]->do_clear_inner_media();
3636 }
3737
--- a/source/src/qt/osd_base.cpp
+++ b/source/src/qt/osd_base.cpp
@@ -677,8 +677,15 @@ void OSD_BASE::string_message_from_emu(EMU_MEDIA_TYPE::type_t media_type, int dr
677677 // case EMU_MEDIA_TYPE::BINARY:
678678 // }
679679 QString tmps;
680- uint64_t _type = media_type & (31 << 16);
680+ uint64_t _type = media_type & EMU_MEDIA_TYPE::UI_MEDIA_MASK;
681681 uint64_t _slot = media_type & 255;
682+ bool is_ui_message = ((media_type & EMU_MEDIA_TYPE::UI_MESSAGE_MASK) != 0) ? true : false;
683+ if(is_ui_message) {
684+ // Below are update message to UI.
685+ return; // ToDo: Implement
686+ }
687+
688+ // Below are update status to UI.
682689 switch(_type) {
683690 case EMU_MEDIA_TYPE::FLOPPY_DISK :
684691 if(message != nullptr) {
@@ -695,6 +702,13 @@ void OSD_BASE::string_message_from_emu(EMU_MEDIA_TYPE::type_t media_type, int dr
695702
696703 void OSD_BASE::int_message_from_emu(EMU_MEDIA_TYPE::type_t media_type, int drive, EMU_MESSAGE_TYPE::type_t message_type, int64_t data)
697704 {
705+ uint64_t _type = media_type & EMU_MEDIA_TYPE::UI_MEDIA_MASK;
706+ uint64_t _slot = media_type & 255;
707+ bool is_ui_message = ((media_type & EMU_MEDIA_TYPE::UI_MESSAGE_MASK) != 0) ? true : false;
708+ if(is_ui_message) {
709+ // Below are update message to UI.
710+ return; // ToDo: Implement
711+ }
698712 // switch(media_type) {
699713 // case EMU_MEDIA_TYPE::BINARY:
700714 // }
Show on old repository browser