📄 gui.cpp.svn-base
字号:
// secret menu stuff#ifndef GUI_REFID_2 CheckForSecretCode(key);#endif return status;}RMstatus RMcuracaoGui::HandleActivation(){ RMstatus status = RM_OK; typeCommandInfo cmdInfo; KillTimer(TIMER_WAIT_ANIMATION, FALSE); printf("activate\n"); if (m_bTV) { if (m_bTVMenuOn) { m_pnav->DisplayOSDList(FALSE); if (m_pnav->m_tvList.previous != m_pnav->m_tvList.current) { if (m_pnav->m_tvList.current == 0) m_pnav->m_tvList.current = m_pnav->m_tvList.nbItems - 1; else m_pnav->m_tvList.current--; HandleNext(); } m_bTVMenuOn = FALSE; } else { if (m_infoOn) { m_infoOn = 0; status = m_pnav->RemoveSlider(m_pnav->SelectedObjectId()); } m_pnav->DisplayOSDList(TRUE); m_bTVMenuOn = TRUE; m_pnav->m_tvList.previous = m_pnav->m_tvList.current; if (m_pnav->m_tvList.current == 0) m_pnav->m_tvList.rotate = TRUE; else m_pnav->m_tvList.rotate = FALSE; } } else {#ifndef __NUMSEL if(m_pnav->OsdOn() == FALSE && !ISPOPUP(m_pnav->SelectedObjectId())) {#else // for cdda with osd on to accept activation; // secret menu keys can never use HW_SELECT/_ENTER anyway if (m_pnav->ActivePageId() == m_pnav->MainPageId() && !ISPOPUP(m_pnav->SelectedObjectId())) {#endif if (m_numericInputCount > 0 && m_context->player) return SendNumericInput(); else return RM_UNKNOWN_KEY; } if (ISPOPUP(m_pnav->SelectedObjectId())) { if (m_pnav->PopupSelectedObjectId() != 0) { status = m_pnav->GetCommandInfo(m_pnav->PopupSelectedObjectId(), ACTIVATE_EVENT, &cmdInfo); if (RMSUCCEEDED(status)) { return CommandHandler(&cmdInfo); } } } status = m_pnav->GetCommandInfo(m_pnav->SelectedObjectId(), ACTIVATE_EVENT, &cmdInfo); if (RMFAILED(status)) { // if activation command is not present, check for default activation for some objects status = m_pnav->DefaultActivateCurrentObject(); return status; } return CommandHandler(&cmdInfo); } return RM_OK;}RMstatus RMcuracaoGui::HandleVolume(RMremoteKey key){ RMstatus status = RM_OK; typeCommandInfo cmdInfo; RMuint32 objectId; if (IsTv()) { m_pnav->DisplayOSDList(FALSE); m_bTVMenuOn = FALSE; m_pnav->m_tvList.current = m_pnav->m_tvList.previous; if (m_pnav->m_tvList.current == 0) m_pnav->m_tvList.firstvisible = m_pnav->m_tvList.nbItems - 1; else m_pnav->m_tvList.firstvisible = m_pnav->m_tvList.current - 1; } if (ISPOPUP(m_pnav->SelectedObjectId())) { status = m_pnav->GetCommandInfo(m_pnav->SelectedObjectId(), (key == RM_HW_VOL_PLUS) ? (RMascii*) VOLUME_UP_EVENT : (RMascii*) VOLUME_DOWN_EVENT, &cmdInfo); if (RMFAILED(status)) return RM_ERROR; return CommandHandler(&cmdInfo); } if (m_pnav->SelectedObjectId() == VOLUME_CONTROL || m_pnav->SelectedObjectId() != m_pnav->BCSSliderId()) { objectId = VOLUME_CONTROL; } else { objectId = m_pnav->BCSSliderId(); } status = m_pnav->GetCommandInfo(objectId, (key == RM_HW_VOL_PLUS) ? (RMascii*) VOLUME_UP_EVENT : (RMascii*) VOLUME_DOWN_EVENT, &cmdInfo); if (RMFAILED(status)) { return RM_ERROR; } status = CommandHandler(&cmdInfo); // save settings (if changed) after a timeout amount of time from the last level change if (RMSUCCEEDED(status)) SetTimer(TIMER_SAVESETTINGS); return status;}RMstatus RMcuracaoGui::HandleReturn(){ RMstatus status = RM_OK; typeCommandInfo cmdInfo; if (m_bTV) { if (m_bTVMenuOn) { m_pnav->DisplayOSDList(FALSE); m_bTVMenuOn = FALSE; m_pnav->m_tvList.current = m_pnav->m_tvList.previous; if (m_pnav->m_tvList.current == 0) m_pnav->m_tvList.firstvisible = m_pnav->m_tvList.nbItems - 1; else m_pnav->m_tvList.firstvisible = m_pnav->m_tvList.current - 1; } else { HandleStop(); } } else { if ((m_playMode != STATE_STOP) && (m_playMode != STATE_CLOSE)) return HandleStop(); // check if popup if (ISPOPUP(m_pnav->SelectedObjectId())) { status = m_pnav->GetCommandInfo(m_pnav->SelectedObjectId(), RETURN_EVENT, &cmdInfo); if (RMSUCCEEDED(status)) return CommandHandler(&cmdInfo); else { // default to removal return ShowPopup(m_pnav->SelectedObjectId(), FALSE); } } // no popup handling Return, try other alternatives if (m_isoPlayList.active == TRUE && m_isoPlayList.filetype == FILETYPE_PICTURE) return StopFiles(TRUE); else if (m_playMode != STATE_STOP && m_playMode != STATE_CLOSE) return RM_UNKNOWN_KEY; // see if current page handles the key otherwise pass it to selected object status = m_pnav->GetCommandInfo(m_pnav->ActivePageId(), RETURN_EVENT, &cmdInfo); if (RMFAILED(status)) { status = m_pnav->GetCommandInfo(m_pnav->SelectedObjectId(), RETURN_EVENT, &cmdInfo); if (RMFAILED(status)) return RM_ERROR; } return CommandHandler(&cmdInfo); } return RM_OK;}RMstatus RMcuracaoGui::HandleMute(){ RMbool mute; RMstatus status; mute = m_muteOn ^ 1; if (mute) { status = SetVolume(0); if (m_infoOn) { m_infoOn = 0; status = m_pnav->RemoveSlider(m_pnav->SelectedObjectId()); } } else { status = SetVolume(m_settings.volume); } if (RMFAILED(status) && m_playMode != STATE_CLOSE) return RM_ERROR; m_muteOn = mute; if (m_muteOn) { status = m_pnav->DisplayEvent(MUTE_EVENT, m_muteOn, TIMER_NONE, m_eventText, MUTE_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); } else { status = m_pnav->RemoveEventBitmap(); RestoreNonTimedEvent(); } return status;}RMstatus RMcuracaoGui::ResetMute(){ if (m_muteOn) { return HandleMute(); } return RM_ERROR;}RMstatus RMcuracaoGui::HandleNumericInput(RMremoteKey key){ RMascii input; RMstatus status; switch (key) { case RM_HW_KEY_0: input = '0'; break; case RM_HW_KEY_1: input = '1'; break; case RM_HW_KEY_2: input = '2'; break; case RM_HW_KEY_3: input = '3'; break; case RM_HW_KEY_4: input = '4'; break; case RM_HW_KEY_5: input = '5'; break; case RM_HW_KEY_6: input = '6'; break; case RM_HW_KEY_7: input = '7'; break; case RM_HW_KEY_8: input = '8'; break; case RM_HW_KEY_9: input = '9'; break; default: return RM_ERROR; } // handle popup case -- looking for strings only!!!!!!!!!!!!!!!!!!!!!!!!!! status = m_pnav->CharacterInput(input); if (RMSUCCEEDED(status)) return status; if (m_bTV) { if (m_numericInputCount < 2) { m_numericInput[m_numericInputCount] = input; m_numericInputCount++;#ifdef __NUMSEL if (m_numericInputCount < 2) { if (m_infoOn) { m_infoOn = 0; status = m_pnav->RemoveSlider(m_pnav->SelectedObjectId()); } m_numericInput[m_numericInputCount] = '_'; m_numericInput[m_numericInputCount + 1] = '\0'; m_pnav->DisplayEvent(GENERIC_EVENT, TRUE, TIMER_EVENT, TRUE, m_numericInput, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40, TRUE, PLAYER_NUMERICINPUT_TIMEOUT); SetTimer(TIMER_PLAYER_NUMERIC_INPUT); } else { m_numericInput[m_numericInputCount] = '\0'; // don't clear on TIMER_PLAYER_NUMERIC_INPUT timeout because player's state event/other bitmaps may be present m_pnav->DisplayEvent(GENERIC_EVENT, TRUE, TIMER_EVENT, TRUE, m_numericInput, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40, TRUE, 10);#endif SetTimer(TIMER_PLAYER_NUMERIC_INPUT, 10); } printf("gore\n"); return RM_OK; } else {#ifndef __NUMSEL ResetNumericInput();#else m_numericInput[0] = input; m_numericInput[1] = '_'; m_numericInput[2] = '\0'; m_numericInputCount = 1; m_pnav->DisplayEvent(GENERIC_EVENT, TRUE, TIMER_EVENT, TRUE, m_numericInput, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40, TRUE, PLAYER_NUMERICINPUT_TIMEOUT); SetTimer(TIMER_PLAYER_NUMERIC_INPUT); printf("dolu\n"); return RM_OK; // so gui interpretcommand won't return RM_UNKNOWN_KEY and pass the single numeric key to player#endif } } return RM_ERROR;}RMstatus RMcuracaoGui::HandleInfo(){ RMstatus status = RM_OK; typeCommandInfo cmdInfo; if (((m_playMode == STATE_CLOSE || m_playMode == STATE_STOP) || ISPOPUP(m_pnav->SelectedObjectId())) && m_infoOn == FALSE) { return RM_ERROR; } if (m_pnav->WMVHDOn()) { status = m_pnav->GetCommandInfo(m_pnav->GlobalEventId(), WMVHDINFO_EVENT, &cmdInfo); } else if (m_isoPlayList.filetype == FILETYPE_PICTURE) return RM_ERROR; status = m_pnav->GetCommandInfo(m_pnav->GlobalEventId(), FILEINFO_EVENT, &cmdInfo); if (RMFAILED(status)) { return RM_ERROR; } return CommandHandler(&cmdInfo);}RMstatus RMcuracaoGui::HandleEvent(RMascii *event){ typeCommandInfo cmdInfo; RMstatus status = RM_ERROR; status = m_pnav->GetCommandInfo(m_pnav->ActivePageId(), event, &cmdInfo); if (RMSUCCEEDED(status)) { status = CommandHandler(&cmdInfo); } return status;}RMstatus RMcuracaoGui::HandleClear(){ typeCommandInfo cmdInfo; RMstatus status = RM_ERROR; status = m_pnav->GetCommandInfo(m_pnav->SelectedObjectId(), CLEAR_EVENT, &cmdInfo); if (RMSUCCEEDED(status)) { return CommandHandler(&cmdInfo); } if (RMSUCCEEDED(m_pnav->HandleDefaultClear())) return RM_OK; status = m_pnav->GetCommandInfo(m_pnav->GlobalEventId(), CLEAR_EVENT, &cmdInfo); if (RMSUCCEEDED(status)) { return CommandHandler(&cmdInfo); } return RM_ERROR;}RMstatus RMcuracaoGui::HandleTimeSearch(){ RMstatus status = RM_OK; typeCommandInfo cmdInfo; if (m_playMode == STATE_CLOSE /*|| m_playMode == STATE_STOP*/) { m_pnav->DisplayEvent(INVALIDOP_EVENT, TRUE, TIMER_EVENT, m_eventText, INVALIDOP_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); return RM_ERROR; } if (m_playMode != STATE_STOP) { if (m_isoPlayList.filetype == FILETYPE_PICTURE) return RM_ERROR; if (m_pnav->WMVHDOn()) { status = m_pnav->GetCommandInfo(m_pnav->GlobalEventId(), WMVHDTIMESEARCH_EVENT, &cmdInfo); } else status = m_pnav->GetCommandInfo(m_pnav->GlobalEventId(), FILETIMESEARCH_EVENT, &cmdInfo); } else return RM_ERROR; if (RMFAILED(status)) { m_pnav->DisplayEvent(INVALIDOP_EVENT, TRUE, TIMER_EVENT, m_eventText, INVALIDOP_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); return RM_ERROR; } return CommandHandler(&cmdInfo);}RMstatus RMcuracaoGui::HandleRepeat(RMbool doRepeat){ RMstatus status = RM_UNKNOWN_KEY;#ifdef WITH_WMVHD_SUPPORT // see first if running wmvhd if (m_pnav->WMVHDOn()) { return HandleWMVHDRepeat(doRepeat); }#endif if (doRepeat == FALSE || m_isoPlayList.repeat == REPEAT_TRACKS) { if (m_isoPlayList.repeat != REPEAT_OFF && m_isoPlayList.active) { m_pnav->DisplayEvent(REPEATCLEARED_EVENT, TRUE, TIMER_EVENT, m_eventText, REPEAT_OFF_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); } m_isoPlayList.repeat = REPEAT_OFF; RMCopyAscii(m_repeatModeStr, REPEAT_OFF_STR); } else if (m_isoPlayList.repeat == REPEAT_OFF) { if (m_isoPlayList.filetype == FILETYPE_PICTURE) { m_isoPlayList.repeat = REPEAT_TRACKS; RMCopyAscii(m_repeatModeStr, REPEAT_TRACKS_STR); m_pnav->DisplayEvent(REPEATTRACKS_EVENT, TRUE, TIMER_EVENT, m_eventText, m_repeatModeStr, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); } else { m_isoPlayList.repeat = REPEAT_TRACK; RMCopyAscii(m_repeatModeStr, REPEAT_TRACK_STR); m_pnav->DisplayEvent(REPEATTRACK_EVENT, TRUE, TIMER_EVENT, m_eventText, m_repeatModeStr, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); } } else if (m_isoPlayList.repeat == REPEAT_TRACK) { m_isoPlayList.repeat = REPEAT_TRACKS; m_isoPlayList.playSingle = FALSE; RMCopyAscii(m_repeatModeStr, REPEAT_TRACKS_STR); m_pnav->DisplayEvent(REPEATTRACKS_EVENT, TRUE, TIMER_EVENT, m_eventText, m_repeatModeStr, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); } else return RM_ERROR; return status;}// circle through all video out settings in the setup menuRMstatus RMcuracaoGui::HandleVideoOut(){ RMstatus status; RMuint8 next = 0; RMuint32 nextcmd = 0; // RMuint32 id; RMuint32 videoOut = m_videoOut; typeVideoOutCommands videoOutCommandList; // do not change if in the setup. // this is to be consistent with changing with the // menu for which a confirmation dialog is shown if (m_pnav->ActivePageId() == m_pnav->SetupPageId() && !m_pnav->WMVHDOn()) return RM_OK; if (m_settings.tvStandard == TV_NTSC_COMMAND)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -