diff options
author | Robbbert <Robbbert@users.noreply.github.com> | 2019-07-13 22:00:34 +1000 |
---|---|---|
committer | Robbbert <Robbbert@users.noreply.github.com> | 2019-07-13 22:00:34 +1000 |
commit | 5d0a3f2f40eafc9af6bd89bb0065246ae50157b0 (patch) | |
tree | 1536e792198345b532b467422ee1f174e6ed4b05 /src/osd/modules/debugger | |
parent | 32c11865b7e0cc0ac91d41bfd6965723e1855931 (diff) |
(nw) updated debug media menu to latest version
Diffstat (limited to 'src/osd/modules/debugger')
-rw-r--r-- | src/osd/modules/debugger/win/consolewininfo.cpp | 45 | ||||
-rw-r--r-- | src/osd/modules/debugger/win/consolewininfo.h | 2 |
2 files changed, 34 insertions, 13 deletions
diff --git a/src/osd/modules/debugger/win/consolewininfo.cpp b/src/osd/modules/debugger/win/consolewininfo.cpp index 978449aad03..a9811f5fc93 100644 --- a/src/osd/modules/debugger/win/consolewininfo.cpp +++ b/src/osd/modules/debugger/win/consolewininfo.cpp @@ -50,7 +50,7 @@ consolewin_info::consolewin_info(debugger_windows_interface &debugger) : osd::text::tstring tc_buf = osd::text::to_tstring(string_format("%s : %s", img.device().name(), img.exists() ? img.filename() : "[no image]")); AppendMenu(m_devices_menu, MF_ENABLED, 0, tc_buf.c_str()); } - AppendMenu(GetMenu(window()), MF_ENABLED | MF_POPUP, (UINT_PTR)m_devices_menu, TEXT("Images")); + AppendMenu(GetMenu(window()), MF_ENABLED | MF_POPUP, (UINT_PTR)m_devices_menu, TEXT("Media")); } // get the work bounds @@ -192,17 +192,27 @@ void consolewin_info::update_menu() if (img.is_creatable()) AppendMenu(devicesubmenu, MF_STRING, new_item + DEVOPTION_CREATE, TEXT("Create...")); - AppendMenu(devicesubmenu, flags_for_exists, new_item + DEVOPTION_CLOSE, TEXT("Unmount")); - if (img.device().type() == CASSETTE) + if (img.exists()) { - cassette_state const state = (cassette_state)(img.exists() ? (downcast<cassette_image_device *>(&img.device())->get_state() & CASSETTE_MASK_UISTATE) : CASSETTE_STOPPED); - AppendMenu(devicesubmenu, MF_SEPARATOR, 0, nullptr); - AppendMenu(devicesubmenu, flags_for_exists | ((state == CASSETTE_STOPPED) ? MF_CHECKED : 0), new_item + DEVOPTION_CASSETTE_STOPPAUSE, TEXT("Pause/Stop")); - AppendMenu(devicesubmenu, flags_for_exists | ((state == CASSETTE_PLAY) ? MF_CHECKED : 0), new_item + DEVOPTION_CASSETTE_PLAY, TEXT("Play")); - AppendMenu(devicesubmenu, flags_for_writing | ((state == CASSETTE_RECORD) ? MF_CHECKED : 0), new_item + DEVOPTION_CASSETTE_RECORD, TEXT("Record")); - AppendMenu(devicesubmenu, flags_for_exists, new_item + DEVOPTION_CASSETTE_REWIND, TEXT("Rewind")); - AppendMenu(devicesubmenu, flags_for_exists, new_item + DEVOPTION_CASSETTE_FASTFORWARD, TEXT("Fast Forward")); + AppendMenu(devicesubmenu, flags_for_exists, new_item + DEVOPTION_CLOSE, TEXT("Unmount")); + + if (img.device().type() == CASSETTE) + { + cassette_state const state = cassette_state(downcast<cassette_image_device *>(&img.device())->get_state() & CASSETTE_MASK_UISTATE); + AppendMenu(devicesubmenu, MF_SEPARATOR, 0, nullptr); + AppendMenu(devicesubmenu, flags_for_exists | ((state == CASSETTE_STOPPED) ? MF_CHECKED : 0), new_item + DEVOPTION_CASSETTE_STOPPAUSE, TEXT("Pause/Stop")); + AppendMenu(devicesubmenu, flags_for_exists | ((state == CASSETTE_PLAY) ? MF_CHECKED : 0), new_item + DEVOPTION_CASSETTE_PLAY, TEXT("Play")); + AppendMenu(devicesubmenu, flags_for_writing | ((state == CASSETTE_RECORD) ? MF_CHECKED : 0), new_item + DEVOPTION_CASSETTE_RECORD, TEXT("Record")); + AppendMenu(devicesubmenu, flags_for_exists, new_item + DEVOPTION_CASSETTE_REWIND, TEXT("Rewind")); + AppendMenu(devicesubmenu, flags_for_exists, new_item + DEVOPTION_CASSETTE_FASTFORWARD, TEXT("Fast Forward")); + AppendMenu(devicesubmenu, MF_SEPARATOR, 0, nullptr); + // Motor state can be overriden by the driver + cassette_state const motor_state = cassette_state(downcast<cassette_image_device *>(&img.device())->get_state() & CASSETTE_MASK_MOTOR); + AppendMenu(devicesubmenu, flags_for_exists | ((motor_state == CASSETTE_MOTOR_ENABLED) ? MF_CHECKED : 0), new_item + DEVOPTION_CASSETTE_MOTOR, TEXT("Motor")); + cassette_state const speaker_state = cassette_state(downcast<cassette_image_device *>(&img.device())->get_state() & CASSETTE_MASK_SPEAKER); + AppendMenu(devicesubmenu, flags_for_exists | ((speaker_state == CASSETTE_SPEAKER_ENABLED) ? MF_CHECKED : 0), new_item + DEVOPTION_CASSETTE_SOUND, TEXT("Audio while Loading")); + } } std::string filename; @@ -434,6 +444,7 @@ bool consolewin_info::handle_command(WPARAM wparam, LPARAM lparam) if (img->device().type() == CASSETTE) { cassette_image_device *const cassette = downcast<cassette_image_device *>(&img->device()); + bool s; switch ((LOWORD(wparam) - ID_DEVICE_OPTIONS) % DEVOPTION_MAX) { case DEVOPTION_CASSETTE_STOPPAUSE: @@ -446,11 +457,19 @@ bool consolewin_info::handle_command(WPARAM wparam, LPARAM lparam) cassette->change_state(CASSETTE_RECORD, CASSETTE_MASK_UISTATE); return true; case DEVOPTION_CASSETTE_REWIND: - cassette->seek(-60.0, SEEK_CUR); + cassette->seek(0.0, SEEK_SET); // to start return true; case DEVOPTION_CASSETTE_FASTFORWARD: - cassette->seek(+60.0, SEEK_CUR); - return true; + cassette->seek(+300.0, SEEK_CUR); // 5 minutes forward or end, whichever comes first + break; + case DEVOPTION_CASSETTE_MOTOR: + s =((cassette->get_state() & CASSETTE_MASK_MOTOR) == CASSETTE_MOTOR_DISABLED); + cassette->change_state(s ? CASSETTE_MOTOR_ENABLED : CASSETTE_MOTOR_DISABLED, CASSETTE_MASK_MOTOR); + break; + case DEVOPTION_CASSETTE_SOUND: + s =((cassette->get_state() & CASSETTE_MASK_SPEAKER) == CASSETTE_SPEAKER_MUTED); + cassette->change_state(s ? CASSETTE_SPEAKER_ENABLED : CASSETTE_SPEAKER_MUTED, CASSETTE_MASK_SPEAKER); + break; } } } diff --git a/src/osd/modules/debugger/win/consolewininfo.h b/src/osd/modules/debugger/win/consolewininfo.h index aeb07b397d6..7f8ccc13aec 100644 --- a/src/osd/modules/debugger/win/consolewininfo.h +++ b/src/osd/modules/debugger/win/consolewininfo.h @@ -39,6 +39,8 @@ private: DEVOPTION_CASSETTE_RECORD, DEVOPTION_CASSETTE_REWIND, DEVOPTION_CASSETTE_FASTFORWARD, + DEVOPTION_CASSETTE_MOTOR, + DEVOPTION_CASSETTE_SOUND, DEVOPTION_MAX }; |