?? gui.cpp
字號:
40); //, RMCopyAscii(m_repeatModeStr, REPEAT_RANDOM_STR); break; case CURACAO_MESSAGE_REPEAT_TRACK: m_pnav->DisplayEvent(REPEATTRACK_EVENT, TRUE, TIMER_EVENT, m_eventText, REPEAT_TRACK_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); //, RMCopyAscii(m_repeatModeStr, REPEAT_TRACK_STR); break; case CURACAO_MESSAGE_REPEAT_DISC: m_pnav->DisplayEvent(REPEATDISC_EVENT, TRUE, TIMER_EVENT, m_eventText, REPEAT_DISC_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); //, RMCopyAscii(m_repeatModeStr, REPEAT_DISC_STR); break; case CURACAO_MESSAGE_REPEAT_CHAPTER: m_pnav->DisplayEvent(REPEATCHAPTER_EVENT, TRUE, TIMER_EVENT, m_eventText, REPEAT_CHAPTER_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); //, RMCopyAscii(m_repeatModeStr, REPEAT_CHAPTER_STR); break; case CURACAO_MESSAGE_REPEAT_TITLE: m_pnav->DisplayEvent(REPEATTITLE_EVENT, TRUE, TIMER_EVENT, m_eventText, REPEAT_TITLE_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); //, RMCopyAscii(m_repeatModeStr, REPEAT_TITLE_STR); break; case CURACAO_MESSAGE_REPEAT_OFF: m_pnav->DisplayEvent(REPEATCLEARED_EVENT, TRUE, TIMER_EVENT, m_eventText, REPEAT_OFF_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); //, RMCopyAscii(m_repeatModeStr, REPEAT_OFF_STR); break; case CURACAO_MESSAGE_REPEAT_A_SET: m_pnav->DisplayEvent(ASET_EVENT, TRUE, TIMER_EVENT, m_eventText, REPEAT_A_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); //, RMCopyAscii(m_repeatModeStr, REPEAT_A_STR); break; case CURACAO_MESSAGE_REPEAT_B_SET: m_pnav->DisplayEvent(BSET_EVENT, TRUE, TIMER_EVENT, m_eventText, REPEAT_AB_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); //, RMCopyAscii(m_repeatModeStr, REPEAT_AB_STR); break; case CURACAO_MESSAGE_REPEAT_AB_CLEARED: m_pnav->DisplayEvent(ABCLEARED_EVENT, TRUE, TIMER_EVENT, m_eventText, REPEAT_OFF_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); //, RMCopyAscii(m_repeatModeStr, REPEAT_OFF_STR); break; case CURACAO_MESSAGE_DVD_STOPPED: m_settings.bookmarkCRC = 0; m_protectType = RMUnprotected; status = m_context->player->GetBookmark((RMuint8 *) (((RMuint32) m_settings.bookmark + 3) & 0xFFFFFFFC), BOOKMARK_SIZE); if (RMSUCCEEDED(status) && m_context->player) { m_settings.bookmarkCRC = m_context->player->GetDiscID();#ifdef GUI_REFID_2 m_pnav->UpdateMenuState("DiscResumeMenuItem", TRUE, FALSE);#endif } m_settings.validBookmark = (m_settings.bookmarkCRC != 0); // if the player resolution was downsized to play the DVD restore previous resolution if (m_previousComponentOut != m_videoOut && m_previousComponentOut != 0) { SetTVOut(m_previousComponentOut); m_previousComponentOut = 0; } break; case CURACAO_MESSAGE_PLAYBACK_STARTED: { RMuint32 discId = *((RMuint32*) val); if (m_settings.validBookmark && discId == m_settings.bookmarkCRC) { *((RMuint32 *) val) = (RMuint32) - 1; // resume, don't do firstplay if (m_context->player) { status = m_context->player->ResumeBookmark((RMuint8 *) (((RMuint32) m_settings.bookmark + 3) & 0xFFFFFFFC)); if (RMSUCCEEDED(status)) m_pnav->DisplayEvent(RESUME_EVENT, TRUE, TIMER_EVENT, m_eventText, RESUME_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); m_settings.validBookmark = FALSE; } else { // resume as soon as media player is up m_resumeDvd = TRUE; } } break; } case CURACAO_MESSAGE_DVD_MENU_STATE: { RMuint8 menuOn = m_menuOn; m_menuOn = *((RMbool*) val); if (m_menuOn && m_menuOn != menuOn) { if (m_zoomOn) { RMDBGLOG((GUIDBG, "ZOOMING OFF\n")); ZoomVideo(FALSE); } } break; } case CURACAO_MESSAGE_AUDIOSTREAM_CHANGE: { RMuint32 stream = *((RMuint32*) val); if (m_pnav->WMVHDOn()) { RMMemset(txt, 0, sizeof(txt)); if (RMFAILED(m_context->player->GetAudioStreamID(stream, txt))) sprintf(txt, "%ld", stream); m_pnav->SetMediaAudioStream(m_MediaList.id[m_MediaList.numCurrentItem], stream); m_pnav->DisplayEvent(AUDIOCHANGE_EVENT, TRUE, TIMER_EVENT, TRUE, txt, DISPLAY_TEXT_ON_EVENT_ARG3, 8, 130, 40); } else { sprintf(txt, "%ld", stream); m_pnav->DisplayEvent(AUDIOCHANGE_EVENT, TRUE, TIMER_EVENT, TRUE, txt, DISPLAY_TEXT_ON_EVENT_ARG3, 8, 130, 40); } break; } case CURACAO_MESSAGE_SUBTITLESTREAM_CHANGE: { RMuint32 stream = *((RMuint32*) val); if (stream == 0) RMCopyAscii(txt, OFF_STR); else sprintf(txt, "%ld", stream); m_pnav->DisplayEvent(SUBTITLECHANGE_EVENT, TRUE, TIMER_EVENT, TRUE, txt, DISPLAY_TEXT_ON_EVENT_ARG2, 8, 90, 40); break; } case CURACAO_MESSAGE_ISO_READ: // clear playlist, iso list was reset ClearIsoPlayList(); break; case CURACAO_MESSAGE_POPUP_DISMISSED: PopupDismissedNotification(*((RMuint32*) val)); break; case CURACAO_MESSAGE_VIDEOOUT_AUTO_CHANGE: {#ifdef GUI_REFID_3 ApplyVideoOutChange();#else // m_pnav->DisplayEvent(GENERIC_EVENT, TRUE, TIMER_EVENT, TRUE, DVIHDMI_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); RMbool useSaved = (val != NULL && *(RMbool *) (val)); if (!useSaved) { ApplyVideoOutChange(); } else { // if auto detect fails (hence useSaved), can't fallback to auto detect again if (m_videoOut != SET_HDMI_AUTO_ON_COMMAND) { SetTVOut(m_videoOut); } else { SetTVOut(SET_TV_NTSC_CSVIDEO_COMMAND); } }#endif break; } default: // printf("message not implemented yet\n"); break; } return RM_OK;}///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////RMstatus RMcuracaoGui::HandlePlay(){ RMstatus status = RM_UNKNOWN_KEY; // if on Setup... if (m_pnav->ActivePageId() == m_pnav->SetupPageId() && m_pnav->SetupPageId() != 0) HandleSetup(); if (ISPOPUP(m_pnav->SelectedObjectId())) return RM_ERROR;#ifdef WITH_WMVHD_SUPPORT if (IsWMVHD()) { if (!m_pnav->WMVHDOn()) { // m_pnav->DisplayEvent(WAIT_EVENT, TRUE, TIMER_EVENT, m_eventText, WAIT_STR, DISPLAY_TEXT_ON_EVENT_ARG3, 8, 180, 40); status = m_pnav->CheckWMVHDRequirements(m_settings.dvdRegion); if (RMFAILED(status)) { m_wmvHDRegionError = TRUE; return RM_OK; } // requirements checked out, release current // navigation and continue with WMVHD init status = InitializeWMVHD(); if (RMFAILED(status)) { ReInitialize((RMnonAscii *) GUI_XML); ShowPage(m_pnav->MediaLibraryPageId()); } else { } return RM_OK; } else return RM_UNKNOWN_KEY; }#endif if (m_isoPlayList.active == FALSE) { // if(m_playMode == STATE_STOP || m_playMode == STATE_CLOSE){ // status = PlayFiles(NULL, 0); // } } else { if (m_playMode == STATE_PAUSE) { if (m_isoPlayList.filetype == FILETYPE_PICTURE) { status = SetTimer(TIMER_SLIDESHOW); if (RMSUCCEEDED(status)) { m_playMode = STATE_PLAY; // m_pnav->DisplayEvent(PLAY_EVENT, TRUE, TIMER_NONE, m_eventText, PLAY_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); SetfipPlayMode(); } } } } return status;}RMstatus RMcuracaoGui::HandlePause(){ RMstatus status = RM_UNKNOWN_KEY; if (ISPOPUP(m_pnav->SelectedObjectId())) return RM_ERROR; if (m_isoPlayList.active == TRUE) { if (m_playMode == STATE_PLAY) { if (m_isoPlayList.filetype == FILETYPE_PICTURE) { KillTimer(TIMER_SLIDESHOW); m_playMode = STATE_PAUSE; // m_pnav->DisplayEvent(PAUSE_EVENT, TRUE, TIMER_NONE, m_eventText, PAUSE_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); SetfipPlayMode(); } } } return status;}RMstatus RMcuracaoGui::HandleStop(){ if (!m_bTV) { if (m_isoPlayList.active == TRUE) { /* if(m_playMode == STATE_CLOSE) { m_pnav->DisplayEvent(WAIT_EVENT, TRUE, TIMER_EVENT, m_eventText, WAIT_STR, DISPLAY_TEXT_ON_EVENT_ARG3, 8, 180, 40); return RM_OK; } else */ if (m_playMode != STATE_STOP) { return StopFiles(TRUE); } } else if (m_pnav->WMVHDOn()) { if (m_playMode != STATE_CLOSE && m_playMode != STATE_STOP) return StopFiles(TRUE); } } else { if (m_playMode != STATE_STOP) { m_bTV = FALSE; return StopFiles(TRUE); } } return RM_OK;}RMstatus RMcuracaoGui::HandleNext(){ RMstatus status = RM_UNKNOWN_KEY; // typeCommandInfo cmdInfo; // // if(ISPOPUP(m_pnav->SelectedObjectId())) // return RM_ERROR; // // if(m_pnav->WMVHDOn()){ // if(m_MediaList.active == TRUE){ // if(m_pnav->CanSkipMedia(m_MediaList.id[m_MediaList.numCurrentItem])){ //// m_pnav->DisplayEvent(NEXT_EVENT, TRUE, TIMER_EVENT, m_eventText, NEXT_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); // return PlayNextMediaFile(TRUE); // } // else if(!m_pnav->IsPictureMedia(m_MediaList.id[m_MediaList.numCurrentItem])) // m_pnav->DisplayEvent(INVALIDOP_EVENT, TRUE, TIMER_EVENT, m_eventText, INVALIDOP_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); // } // } // // if(m_isoPlayList.active == TRUE){ // if(m_playMode != STATE_STOP){ // if(m_isoPlayList.filetype == FILETYPE_PICTURE){ // return PlayNextFile(TRUE); // } // else // { // RMuint32 hasChapters; // m_context->player->GetInfo(CURACAO_MESSAGE_FILE_HAS_CHAPTERS, (void*)(&hasChapters)); // if(hasChapters){ // return RM_UNKNOWN_KEY; // pass next to file player // } // else{ // m_isoPlayList.previous = FALSE; // if(m_isoPlayList.repeat == REPEAT_TRACK) // HandleRepeat(FALSE); // m_userSkipped = TRUE; // StopAVFile(); // } // } // } // return RM_OK; // } // // // see if current page handles next event otherwise pass it to selected object //// status = m_pnav->GetCommandInfo(m_pnav->ActivePageId(), NEXT_EVENT, &cmdInfo); // if(RMFAILED(status)){ // status = m_pnav->GetCommandInfo(m_pnav->SelectedObjectId(), NEXT_EVENT, &cmdInfo); // if(RMFAILED(status)) // return RM_ERROR; // } // return CommandHandler(&cmdInfo); if (m_bTV) { m_pnav->m_tvList.badchannel = -1; m_bMissingChannel = FALSE; m_userSkipped = TRUE; m_pnav->m_tvList.up = TRUE; m_pnav->m_tvList.previous = m_pnav->m_tvList.current + 1; if(m_pnav->m_tvList.previous >= m_pnav->m_tvList.nbItems) m_pnav->m_tvList.previous = 0; printf("next track HANDLE next\n"); StopAVFile(); // PlayNextFile(TRUE); return RM_OK; } return status;}RMstatus RMcuracaoGui::HandlePrevious(){ RMstatus status = RM_UNKNOWN_KEY; // typeCommandInfo cmdInfo; // // if(ISPOPUP(m_pnav->SelectedObjectId())) // return RM_ERROR; // // if(m_pnav->WMVHDOn()){ // if(m_MediaList.active == TRUE){ // if(m_pnav->CanSkipMedia(m_MediaList.id[m_MediaList.numCurrentItem])){ //// m_pnav->DisplayEvent(PREVIOUS_EVENT, TRUE, TIMER_EVENT, m_eventText, PREVIOUS_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); // return PlayPreviousMediaFile(); // } // else if(!m_pnav->IsPictureMedia(m_MediaList.id[m_MediaList.numCurrentItem])) // m_pnav->DisplayEvent(INVALIDOP_EVENT, TRUE, TIMER_EVENT, m_eventText, INVALIDOP_STR, DISPLAY_TEXT_ON_EVENT_ARG, 8, 180, 40); // } // } // // if(m_isoPlayList.active == TRUE){ // if(m_playMode != STATE_STOP){ // if(m_isoPlayList.filetype == FILETYPE_PICTURE){ // return PlayPreviousFile(TRUE); // } // else // { // RMuint32 hasChapters; // m_context->player->GetInfo(CURACAO_MESSAGE_FILE_HAS_CHAPTERS, (void*)(&hasChapters)); // if(hasChapters){ // return RM_UNKNOWN_KEY; // pass previous to file player // } // else{ // m_isoPlayList.previous = TRUE; // if(m_isoPlayList.repeat == REPEAT_TRACK) // HandleRepeat(FALSE); // m_userSkipped = TRUE; // StopAVFile(); // } // } // } // return RM_OK; // } // // // see if current page handles previous event otherwise pass it to selected object //// status = m_pnav->GetCommandInfo(m_pnav->ActivePageId(), PREVIOUS_EVENT, &cmdInfo); // if(RMFAILED(status)){ // status = m_pnav->GetCommandInfo(m_pnav->SelectedObjectId(), PREVIOUS_EVENT, &cmdInfo); // if(RMFAILED(status)) // return RM_ERROR; // } // // return CommandHandler(&cmdInfo); if (m_bTV) { m_pnav->m_tvList.badchannel = -1; m_bMissingChannel = FALSE; m_userSkipped = TRUE; m_pnav->m_tvList.up = FALSE; if(m_pnav->m_tvList.current == 0) m_pnav->m_tvList.previous = m_pnav->m_tvList.nbItems - 1; else m_pnav->m_tvList.previous = m_pnav->m_tvList.current - 1; StopAVFile(); // PlayNextFile(TRUE); return RM_OK; } return status;}RMstatus RMcuracaoGui::HandleEject(RMbool displayEvent){ return RM_OK;}RMstatus RMcuracaoGui::HandleSetup(){ RMstatus status = RM_ERROR; typeCommandInfo cmdInfo; if (ISPOPUP(m_pnav->SelectedObjectId())) { if (m_pnav->PopupSelectedObjectId() != 0) { status = m_pnav->GetCommandInfo(m_pnav->PopupSelectedObjectId(), SETUP_EVENT, &cmdInfo); if (RMSUCCEEDED(status)) return CommandHandler(&cmdInfo); } status = m_pnav->GetCommandInfo(m_pnav->SelectedObjectId(), SETUP_EVENT, &cmdInfo); if (RMSUCCEEDED(status)) return CommandHandler(&cmdInfo); } if (m_playMode == STATE_STOP || m_playMode == STATE_CLOSE) { // if inside setup and a popup is active, just dismiss popup if (ISPOPUP(m_pnav->SelectedObjectId()) && (m_pnav->ActivePageId() == m_pnav->SetupPageId() && m_pnav->SetupPageId() != 0)) return ShowPopup(m_pnav->SelectedObjectId(), FALSE);#ifndef GUI_REFID_2 // if setup going down and an iso disc is in, reset iso and load medialibrary page if (m_pnav->WMVHDOn() == FALSE) { if (m_pnav->ActivePageId() == m_pnav->SetupPageId() && m_pnav->SetupPageId() != 0) if (m_pnav->MediaLibraryPageId()) { m_pnav->ResetIsoReading(); return ShowPage(m_pnav->MediaLibraryPageId()); } }#endif status = m_pnav->GetCommandInfo(m_pnav->ActivePageId(), SETUP_EVENT, &cmdInfo); if (RMSUCCEEDED(status)) { CommandHandler(&cmdInfo); } } else { if (m_isoPlayList.active == TRUE && m_isoPlayList.filetype == FILETYPE_PICTURE) return RM_ERROR; if (m_pnav->SelectedObjectId() != m_pnav->BCSSliderId()) { m_pnav->SetBCSSliderId(BRIGHTNESS_CONTROL); status = m_pnav->DisplaySlider(m_pnav->BCSSliderId(), m_settings.brightness); } else { switch (m_pnav->BCSSliderId()) { case BRIGHTNESS_CONTROL: m_pnav->SetBCSSliderId(CONTRAST_CONTROL); status = m_pnav->DisplaySlider(m_pnav->BCSSliderId(), m_settings.contrast); break; case CONTRAST_CONTROL: m_pnav->SetBCSSliderId(SATURATION_CONTROL); status = m_pnav->DisplaySlider(m_pnav->BCSSliderId(), m_settings.saturation); break; case SATURATION_CONTROL: m_pnav->SetBCSSliderId(BRIGHTNESS_CONTROL); status = m_pnav->DisplaySlider(m_pnav->BCSSliderId(), m_settings.brightness); break; default: status = RM_ERROR; } } } return status;}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -