📄 gui.cpp.svn-base
字号:
status = m_pnav->GetVideoOutCommandList(&videoOutCommandList, TV_NTSC_COMMAND); else if (m_settings.tvStandard == TV_PAL_COMMAND) status = m_pnav->GetVideoOutCommandList(&videoOutCommandList, TV_PAL_COMMAND); else { printf("CANNOT CHANGE VIDEO OUT -- DONT'T KNOW TV STANDARD\n"); return RM_ERROR; } if (RMFAILED(status)) { return RM_ERROR; } do { for (RMuint8 i = 0; i < videoOutCommandList.count; i++) { if (videoOutCommandList.cmd[i] == videoOut) { RMDBGLOG((ENABLE, "Current output is %s\n", videoOutCommandList.cmdtxt[i])); next = i; next += 1; if (next == videoOutCommandList.count) next = 0; nextcmd = videoOutCommandList.cmd[next]; RMDBGLOG((ENABLE, "New output is %s\n", videoOutCommandList.cmdtxt[next])); break; } } if (nextcmd == 0) { return RM_ERROR; } status = SetTVOut(nextcmd); videoOut = nextcmd; } while (RMFAILED(status)); // Don't keep Video Mode that failed m_pnav->DisplayEvent(VIDEOOUT_EVENT, TRUE, TIMER_EVENT, TRUE, videoOutCommandList.cmdtxt[next], DISPLAY_TEXT_ON_EVENT_ARG, 8, 240, 40); return RM_OK;}// going on stand-byRMstatus RMcuracaoGui::HandlePower(){ m_context->needToExit = TRUE; // kill all timers KillTimer(TIMER_NONE, TRUE); RMstatus status = HandleStop(); if (status != RM_OK) { } // make sure there's no popup left open if (ISPOPUP(m_pnav->SelectedObjectId())) ShowPopup(m_pnav->SelectedObjectId(), FALSE); // reload main gui if on wmvhd if (m_pnav->WMVHDOn()) ReInitialize((RMnonAscii *) GUI_XML); // Initialize((RMnonAscii *) GUI_XML); // reload main page if not current one if (m_pnav->ActivePageId() != m_pnav->MainPageId()) ShowPage(m_pnav->MainPageId()); return RM_OK;}RMstatus RMcuracaoGui::HandleZoom(){ RMstatus status; if ((m_playMode == STATE_CLOSE || m_playMode == STATE_STOP) || ISPOPUP(m_pnav->SelectedObjectId())) { return RM_ERROR; } if (m_isoPlayList.active == TRUE && m_isoPlayList.filetype == FILETYPE_PICTURE) return RM_ERROR; status = ZoomVideo(); if (RMSUCCEEDED(status)) { RMascii txt[10]; if (m_zoomStep == 0) RMCopyAscii(txt, OFF_STR); else sprintf(txt, "%02u", m_zoomStep); // m_pnav->DisplayEvent(ZOOM_EVENT, TRUE, TIMER_EVENT, TRUE, txt, DISPLAY_TEXT_ON_EVENT_ARG2, 8, 100, 40); } return status;}RMstatus RMcuracaoGui::HandleShuffle(RMbool toggle){ if (toggle == FALSE) m_shuffleOn = FALSE; else m_shuffleOn ^= 1; RMascii txt[10]; if (m_shuffleOn) RMCopyAscii(txt, ON_STR); else RMCopyAscii(txt, OFF_STR); m_pnav->DisplayEvent(SHUFFLE_EVENT, TRUE, TIMER_EVENT, TRUE, txt, DISPLAY_TEXT_ON_EVENT_ARG2, 8, 240, 40); return RM_OK;}RMstatus RMcuracaoGui::HandleMenu(){ if (m_pnav->WMVHDOn()) { if (m_playMode != STATE_CLOSE && m_playMode != STATE_STOP) { if (m_MediaList.active == TRUE) { RMASSERT(m_MediaList.numCurrentItem < m_MediaList.numItems); if (m_pnav->CanSkipMedia(m_MediaList.id[m_MediaList.numCurrentItem])) { // save resume pos m_MediaResumeInfo.time = m_fileInfo.time; m_MediaResumeInfo.id = m_MediaList.id[m_MediaList.numCurrentItem]; StopFiles(FALSE); RestoreOsd(TRUE); // go to main page } } } return RM_OK; } return RM_UNKNOWN_KEY;}RMstatus RMcuracaoGui::HandleTrickMode(RMremoteKey key){ RMstatus status = RM_UNKNOWN_KEY; if (ISPOPUP(m_pnav->SelectedObjectId())) return RM_ERROR; if (m_pnav->WMVHDOn()) { if (m_MediaList.active == TRUE) { RMASSERT(m_MediaList.numCurrentItem < m_MediaList.numItems); if (m_pnav->CanSkipMedia(m_MediaList.id[m_MediaList.numCurrentItem]) == FALSE) { return RM_ERROR; } } } return status;}// not supported if iso and not WMVHDRMstatus RMcuracaoGui::HandleLanguage(){ RMstatus status = RM_OK; typeCommandInfo cmdInfo; status = m_pnav->GetCommandInfo(m_pnav->SelectedObjectId(), SUB_EVENT, &cmdInfo); if (RMFAILED(status)) { return status; } return CommandHandler(&cmdInfo);}RMstatus RMcuracaoGui::HandlePBC(){ return RM_UNKNOWN_KEY;}RMstatus RMcuracaoGui::HandleTimerTimeout(RMguiTimerType timer){ RMstatus status = RM_OK; if (!m_initialized) { RMDBGLOG((GUIDBG, "GUI not initialized !!\n")); return RM_ERROR; } KillTimer(timer); switch (timer) { case TIMER_SLIDESHOW: RMDBGLOG((GUIDBG, "HandleTimerTimeout, timer:(SLIDESHOW)\n")); status = PlayNextFile(); break; case TIMER_PICTUREERRORMESSAGE: RMDBGLOG((GUIDBG, "HandleTimerTimeout, timer:(PICTUREERRORMESSAGE)\n")); ShowPopup(m_pnav->SelectedObjectId(), FALSE); status = PlayNextFile(); break; case TIMER_MEDIA: RMDBGLOG((GUIDBG, "HandleTimerTimeout, timer:(MEDIA)\n")); m_pnav->ResetDisplay(FALSE); status = PlayNextMediaFile(); break; case TIMER_SLIDER: RMDBGLOG((GUIDBG, "HandleTimerTimeout, timer:(SLIDER)\n")); // if(m_pnav->SelectedObjectId() == PROGRESS_CONTROL) m_infoOn = 0; status = m_pnav->RemoveSlider(m_pnav->SelectedObjectId()); RestoreNonTimedEvent(); break; case TIMER_EVENT: RMDBGLOG((GUIDBG, "HandleTimerTimeout, timer:(EVENT)\n")); if (!m_isoPlayList.active || m_isoPlayList.filetype != FILETYPE_PICTURE) status = m_pnav->RemoveEventBitmap(GENERIC_EVENT); RestoreNonTimedEvent(); break; case TIMER_ERRORMESSAGE: RMDBGLOG((GUIDBG, "HandleTimerTimeout, timer:(ERRORMESSAGE)\n")); status = ShowPopup(m_pnav->SelectedObjectId(), FALSE); break; case TIMER_VIDEOOUTCHANGE: RMDBGLOG((GUIDBG, "HandleTimerTimeout, timer:(VIDEOOUTCHANGE)\n")); status = RestorePreviousResolution(); break; case TIMER_SAVESETTINGS: RMDBGLOG((GUIDBG, "HandleTimerTimeout, timer:(SAVESETTINGS)\n")); status = SavePlayerSettings(); break; case TIMER_PLAYER_NUMERIC_INPUT: RMDBGLOG((GUIDBG, "HandleTimerTimeout, timer:(PLAYER_NUMERIC_INPUT)\n")); if (m_bTV) { RMint8 _temp = atoi(m_numericInput); if (_temp == 0 || _temp > m_pnav->m_tvList.nbItems) break; _temp -= 2; if (_temp < 0) { _temp = m_pnav->m_tvList.nbItems + _temp; } printf("temp is %d\n", _temp); //if(_temp <= m_pnav->m_tvList.nbItems - 2) { m_pnav->m_tvList.firstvisible = _temp; m_pnav->m_tvList.current = _temp; // m_pnav->m_tvList.firstvisible = _temp + 1; m_userSkipped = TRUE; m_pnav->m_tvList.up = TRUE; // StopAVFile(); m_context->changeChannel = TRUE; } //PlayNextFile(TRUE); } ResetNumericInput(); //SendNumericInput(); break; case TIMER_REMOVEPOPUP: RMDBGLOG((GUIDBG, "HandleTimerTimeout, timer:(REMOVEPOPUP)\n")); status = m_pnav->RemoveTimedPopup(); break; case TIMER_GENERIC: RMDBGLOG((GUIDBG, "HandleTimerTimeout, timer:(GENERIC)\n")); status = RM_OK; break; case TIMER_WAIT_ANIMATION: // RMDBGLOG((GUIDBG, "HandleTimerTimeout, timer:(TIMER_WAIT_ANIMATION)\n")); status = m_pnav->StartAnimation(); break; default: status = RM_ERROR; break; } return status;}////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RMstatus RMcuracaoGui::CommandHandler(typeCommandInfo *command){ RMstatus status = RM_OK; RMuint32 objectId;#ifdef GUI_REFID_2 RMuint32 cmdId;#endif // printf("Command handler: %ld\n", command->id); switch (command->id) {#ifdef GUI_REFID_2 case SHOW_BITMAP_IN_GROUP: { MDShowBitmapInGroup* pMD = static_cast<MDShowBitmapInGroup*>(command->pMetaData); m_pnav->handleShowPictureCommand(pMD->m_szBitmapName, pMD->m_szGroupName); } break; case SET_LANGUAGE: HandleSetLanguage(command); if(m_settings.quickSetupStatus> 0) { m_settings.quickSetupStatus--; } break; case SET_VIDEO_OUTPUT: // printf("SET_VIDEO_OUTPUT: %s, linkId: %ld\n", command->value, command->linkId); if(command->validLink == FALSE) return RM_ERROR; cmdId = 0; if(RMCompareAscii(command->value, "VIDEO_COMPOSITE")) cmdId = (m_settings.tvStandard == TV_NTSC_COMMAND ? SET_NTSCSD_MODE_COMMAND : SET_PALSD_MODE_COMMAND); else if(RMCompareAscii(command->value, "VIDEO_HDMI")) cmdId = (m_settings.tvStandard == TV_NTSC_COMMAND ? SET_HDMI59_MODE_COMMAND : SET_HDMI50_MODE_COMMAND); else if(RMCompareAscii(command->value, "VIDEO_SCART")) cmdId = (m_settings.tvStandard == TV_NTSC_COMMAND ? SET_NTSCSCARTRGB_MODE_COMMAND : SET_PALSCARTRGB_MODE_COMMAND); else if(RMCompareAscii(command->value, "VIDEO_COMPONENT")) cmdId = (m_settings.tvStandard == TV_NTSC_COMMAND ? SET_HDCOMPONENT60_MODE_COMMAND : SET_HDCOMPONENT50_MODE_COMMAND); if(cmdId != 0) { RMuint32 videoOutput = GetActiveVideoOutput(m_settings.activeVideoOutput);#ifdef GUI_REFID_3 ShowResolutionChangeMessage();#endif m_videoOut = GetActiveVideoOutput(cmdId, TRUE); m_videoConnector = m_settings.activeVideoOutput; if(RMSUCCEEDED(SetTVOut(m_videoOut))) { m_settings.activeVideoOutput = cmdId; m_pnav->SetMenuItemText(m_settings.activeVideoOutput); if(videoOutput != cmdId) { if(RMSUCCEEDED(m_pnav->GetObjectIdByName("ConfirmResolutionChangePopup", &objectId))) { ConfirmResolutionChange(objectId, videoOutput, 0); //check if the resolution changed to continue otherwise stay here if(videoOutput == m_videoOut) break; } } } } if(m_settings.quickSetupStatus> 0) { ShowPage(command->linkId); m_settings.quickSetupStatus--; } break; case SET_DISPLAY_FORMAT: // printf("SET_DISPLAY_FORMAT: %s, linkId: %ld\n", command->value, command->linkId); if(command->validLink == FALSE) return RM_ERROR; cmdId = 0; if(RMCompareAscii(command->value, "TV_4_3")) { cmdId = TV_4_3LETTERBOX_COMMAND; } else if(RMCompareAscii(command->value, "TV_16_9")) { cmdId = TV_16_9_COMMAND; } if(cmdId != 0) { if(RMSUCCEEDED(SetTVType(cmdId))) { m_settings.tvType = cmdId; m_pnav->SetMenuItemText(cmdId); } } if(m_settings.quickSetupStatus> 0) { ShowPage(command->linkId); m_settings.quickSetupStatus--; } break; case SET_AUDIO_SETUP: // printf("SET_AUDIO_SETUP: %s, linkId: %ld\n", command->value, command->linkId); if(command->validLink == FALSE) return RM_ERROR; cmdId = 0; if(RMCompareAscii(command->value, "AUDIO_STEREO")) cmdId = SET_ANALOG_DPCM_COMMAND; else if(RMCompareAscii(command->value, "AUDIO_SURROUND")) cmdId = SET_ENCODED_DIGITAL_COMMAND; if(cmdId!= 0) { if(RMSUCCEEDED(SetAudioOut(cmdId))) { m_settings.audioOut = cmdId; m_pnav->SetMenuItemText(m_settings.audioOut); } } if(command->linkId & POPUP_IDMASK) { ShowPage(m_pnav->MainPageId()); return m_pnav->ShowMessage(command->linkId, TIMER_NONE); } if(m_settings.quickSetupStatus> 0) { ShowPage(command->linkId); m_settings.quickSetupStatus--; } break; case STOP_QUICK_SETUP: if(m_settings.quickSetupStatus> 0) { m_settings.quickSetupStatus = 0; } SavePlayerSettings(); // do not set mode to IDLE if there's a disc in the tray SetPlayerMode(m_isDiscDetected ? PLAYER_MODE_DISC : PLAYER_MODE_IDLE); ShowPage(m_pnav->MainPageId()); break; case START_QUICK_SETUP: // save current quick setup params m_quickSetupParams.activeVideoOutput = m_settings.activeVideoOutput; m_quickSetupParams.audioOut = m_settings.audioOut; m_quickSetupParams.tvType = m_settings.tvType; m_quickSetupParams.videoOutput = GetActiveVideoOutput(m_settings.activeVideoOutput); m_quickSetupParams.menuLanguage = m_settings.menuLanguage; // printf("setting quick setup language to %d\n", m_settings.menuLanguage); m_settings.quickSetupStatus = NUMBER_OF_QUICK_SETUP_PAGES; SetPlayerMode(PLAYER_MODE_QUICK_SETUP); ShowPage(m_pnav->QuickSetupPageId()); break; case RESET_PLAYER_DEFAULTS: SetDefaultPlayerSettings(); ShowPopup("DefaultSuccess"); break; case APPLY_NETWORK_CONFIG: status = m_pnav->VerifyNetworkConfig("NetworkSettingsPopup", &m_settings); if(RMFAILED(status)) ShowPopup("NetworkConfigFail"); else { ApplyNetworkConfig(); ShowPopup("NetworkConfigSuccess"); } break; case DISABLE_DHCP: case ENABLE_DHCP: if(m_pnav->SelectedObjectId() & POPUP_IDMASK) ShowPopup(m_pnav->SelectedObjectId(), FALSE); m_pnav->SetMenuItemText(command->id); if(debug)printf("Net. config before: 0x0%lx\n", m_settings.networkConfig); SetDHCP(command->id); if(debug)printf("Net. config after: 0x0%lx\n", m_settings.networkConfig); break; case SHOW_PAGE_COMMAND: if(command->validLink == FALSE) return RM_ERROR; ShowPage(command->linkId); break; case SHOW_HELP_MESSAGE: if(command->validLink == FALSE) return RM_ERROR; if(m_pnav->SelectedObjectId() & POPUP_IDMASK) m_popupOnHold = m_pnav->SelectedObjectId(); else fprintf(stderr, "No popup is active, hold value not changed\n"); m_pnav->ShowMessage(command->linkId, TIMER_NONE); break; case RESUME_MESSAGE: status = ShowPopup(m_pnav->SelectedObjectId(), FALSE); if(m_popupOnHold != 0) m_pnav->ShowMessage(m_popupOnHold, TIMER_NONE); else fprintf(stderr, "No hold value found... :(\n"); break; case SET_SCREENSAVER_TIMOUT: RMasciiToUInt32(command->value, &m_screenSaverSpeed); m_settings.screenSaverDelay = m_screenSaverSpeed; m_pnav->SetMenuItemTextByValue(SET_SCREENSAVER_TIMOUT, m_screenSaverSpeed); if((m_screenSaverSpeed <= 0) || (m_screenSaverSpeed> 10000)) m_screenSaverSpeed = 0; fprintf(stderr, "Screen Saver timeout updated to %ld seconds\n", m_screenSaverSpeed); status = ShowPopup(m_pnav->SelectedObjectId(), FALSE); break; case TRIGGER_ADVANCED_FEATURE: status = m_pnav->VerifyAdvancedFeature("AdvancedFeaturesPopup"); if(RMFAILED(status)) { if(m_pnav->SelectedObjectId() & POPUP_IDMASK) m_popupOnHold = m_pnav->SelectedObjectId(); ShowPopup("AdvancedFeatureFailPopup"); }//else ShowPopup("AdvancedFeatureSuccedPopup"); break; case SET_AUDIO_DOWNMIX_COMMAND: case SET_AUDIO_FIVE_ONE_COMMAND: m_settings.audioMixMo
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -