本文整理汇总了C++中CAction::GetButtonCode方法的典型用法代码示例。如果您正苦于以下问题:C++ CAction::GetButtonCode方法的具体用法?C++ CAction::GetButtonCode怎么用?C++ CAction::GetButtonCode使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CAction
的用法示例。
在下文中一共展示了CAction::GetButtonCode方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setFromCAction
void Action::setFromCAction(const CAction& action)
{
TRACE;
id = action.GetID();
buttonCode = action.GetButtonCode();
fAmount1 = action.GetAmount(0);
fAmount2 = action.GetAmount(1);
fRepeat = action.GetRepeat();
strAction = action.GetName();
}
示例2: OnAction
bool CGUIWindowFullScreen::OnAction(const CAction &action)
{
if (g_application.m_pPlayer != NULL && g_application.m_pPlayer->OnAction(action))
return true;
if (m_timeCodePosition > 0 && action.GetButtonCode())
{ // check whether we have a mapping in our virtual videotimeseek "window" and have a select action
CKey key(action.GetButtonCode());
CAction timeSeek = CButtonTranslator::GetInstance().GetAction(WINDOW_VIDEO_TIME_SEEK, key, false);
if (timeSeek.GetID() == ACTION_SELECT_ITEM)
{
SeekToTimeCodeStamp(SEEK_ABSOLUTE);
return true;
}
}
const unsigned int MsgTime = 300;
const unsigned int DisplTime = 2000;
switch (action.GetID())
{
case ACTION_SHOW_OSD:
ToggleOSD();
return true;
case ACTION_SHOW_GUI:
{
// switch back to the menu
OutputDebugString("Switching to GUI\n");
g_windowManager.PreviousWindow();
OutputDebugString("Now in GUI\n");
return true;
}
break;
case ACTION_PLAYER_PLAY:
case ACTION_PAUSE:
if (m_timeCodePosition > 0)
{
SeekToTimeCodeStamp(SEEK_ABSOLUTE);
return true;
}
break;
case ACTION_STEP_BACK:
if (!g_application.CurrentFileItem().HasPVRChannelInfoTag())
{
if (m_timeCodePosition > 0)
SeekToTimeCodeStamp(SEEK_RELATIVE, SEEK_BACKWARD);
else
g_application.m_pPlayer->Seek(false, false);
}
else
SeekTV(false, false);
return true;
case ACTION_STEP_FORWARD:
if (!g_application.CurrentFileItem().HasPVRChannelInfoTag())
{
if (m_timeCodePosition > 0)
SeekToTimeCodeStamp(SEEK_RELATIVE, SEEK_FORWARD);
else
g_application.m_pPlayer->Seek(true, false);
}
else
SeekTV(true, false);
return true;
case ACTION_BIG_STEP_BACK:
if (!g_application.CurrentFileItem().HasPVRChannelInfoTag())
{
if (m_timeCodePosition > 0)
SeekToTimeCodeStamp(SEEK_RELATIVE, SEEK_BACKWARD);
else
g_application.m_pPlayer->Seek(false, true);
}
else
SeekTV(false, true);
return true;
case ACTION_BIG_STEP_FORWARD:
if (!g_application.CurrentFileItem().HasPVRChannelInfoTag())
{
if (m_timeCodePosition > 0)
SeekToTimeCodeStamp(SEEK_RELATIVE, SEEK_FORWARD);
else
g_application.m_pPlayer->Seek(true, true);
}
else
SeekTV(true, true);
return true;
case ACTION_NEXT_SCENE:
if (g_application.m_pPlayer->SeekScene(true))
g_infoManager.SetDisplayAfterSeek();
return true;
break;
case ACTION_PREV_SCENE:
if (g_application.m_pPlayer->SeekScene(false))
//.........这里部分代码省略.........
示例3: OnAction
bool CGUIDialogGamepad::OnAction(const CAction &action)
{
if ((action.GetButtonCode() >= KEY_BUTTON_A &&
action.GetButtonCode() <= KEY_BUTTON_RIGHT_TRIGGER) ||
(action.GetButtonCode() >= KEY_BUTTON_DPAD_UP &&
action.GetButtonCode() <= KEY_BUTTON_DPAD_RIGHT) ||
(action.GetID() >= ACTION_MOVE_LEFT &&
action.GetID() <= ACTION_MOVE_DOWN) ||
action.GetID() == ACTION_PLAYER_PLAY
)
{
switch (action.GetButtonCode())
{
case KEY_BUTTON_A : m_strUserInput += "A"; break;
case KEY_BUTTON_B : m_strUserInput += "B"; break;
case KEY_BUTTON_X : m_strUserInput += "X"; break;
case KEY_BUTTON_Y : m_strUserInput += "Y"; break;
case KEY_BUTTON_BLACK : m_strUserInput += "K"; break;
case KEY_BUTTON_WHITE : m_strUserInput += "W"; break;
case KEY_BUTTON_LEFT_TRIGGER : m_strUserInput += "("; break;
case KEY_BUTTON_RIGHT_TRIGGER : m_strUserInput += ")"; break;
case KEY_BUTTON_DPAD_UP : m_strUserInput += "U"; break;
case KEY_BUTTON_DPAD_DOWN : m_strUserInput += "D"; break;
case KEY_BUTTON_DPAD_LEFT : m_strUserInput += "L"; break;
case KEY_BUTTON_DPAD_RIGHT : m_strUserInput += "R"; break;
default:
switch (action.GetID())
{
case ACTION_MOVE_LEFT: m_strUserInput += "L"; break;
case ACTION_MOVE_RIGHT: m_strUserInput += "R"; break;
case ACTION_MOVE_UP: m_strUserInput += "U"; break;
case ACTION_MOVE_DOWN: m_strUserInput += "D"; break;
case ACTION_PLAYER_PLAY: m_strUserInput += "P"; break;
default:
return true;
}
break;
}
std::string strHiddenInput(m_strUserInput);
for (int i = 0; i < (int)strHiddenInput.size(); i++)
{
strHiddenInput[i] = m_cHideInputChar;
}
SetLine(2, CVariant{std::move(strHiddenInput)});
return true;
}
else if (action.GetButtonCode() == KEY_BUTTON_BACK || action.GetID() == ACTION_PREVIOUS_MENU || action.GetID() == ACTION_NAV_BACK)
{
m_bConfirmed = false;
m_bCanceled = true;
m_strUserInput = "";
m_bHideInputChars = true;
Close();
return true;
}
else if (action.GetButtonCode() == KEY_BUTTON_START || action.GetID() == ACTION_SELECT_ITEM)
{
m_bConfirmed = false;
m_bCanceled = false;
std::string md5pword2 = XBMC::XBMC_MD5::GetMD5(m_strUserInput);
if (!StringUtils::EqualsNoCase(m_strPassword, md5pword2))
{
// incorrect password entered
m_iRetries--;
// don't clean up if the calling code wants the bad user input
if (m_bUserInputCleanup)
m_strUserInput = "";
else
m_bUserInputCleanup = true;
m_bHideInputChars = true;
Close();
return true;
}
// correct password entered
m_bConfirmed = true;
m_iRetries = 0;
m_strUserInput = "";
m_bHideInputChars = true;
Close();
return true;
}
else if (action.GetID() >= REMOTE_0 && action.GetID() <= REMOTE_9)
{
return true; // unhandled
}
else
{
return CGUIDialog::OnAction(action);
}
}
示例4: OnAction
bool CGUIWindowFullScreen::OnAction(const CAction &action)
{
if (m_timeCodePosition > 0 && action.GetButtonCode())
{ // check whether we have a mapping in our virtual videotimeseek "window" and have a select action
CKey key(action.GetButtonCode());
CAction timeSeek = CButtonTranslator::GetInstance().GetAction(WINDOW_VIDEO_TIME_SEEK, key, false);
if (timeSeek.GetID() == ACTION_SELECT_ITEM)
{
SeekToTimeCodeStamp(SEEK_ABSOLUTE);
return true;
}
}
if (CSettings::GetInstance().GetBool(CSettings::SETTING_PVRPLAYBACK_CONFIRMCHANNELSWITCH) &&
g_infoManager.IsPlayerChannelPreviewActive() &&
CButtonTranslator::GetInstance().GetGlobalAction(action.GetButtonCode()).GetID() == ACTION_SELECT_ITEM)
{
// If confirm channel switch is active, channel preview is currently shown
// and the button that caused this action matches global action "Select" (OK)
// switch to the channel currently displayed within the preview.
g_application.m_pPlayer->SwitchChannel(g_application.CurrentFileItem().GetPVRChannelInfoTag());
return true;
}
switch (action.GetID())
{
case ACTION_SHOW_OSD:
ToggleOSD();
return true;
case ACTION_TRIGGER_OSD:
TriggerOSD();
return true;
case ACTION_SHOW_GUI:
{
// switch back to the menu
g_windowManager.PreviousWindow();
return true;
}
break;
case ACTION_PLAYER_PLAY:
case ACTION_PAUSE:
if (m_timeCodePosition > 0)
{
SeekToTimeCodeStamp(SEEK_ABSOLUTE);
return true;
}
break;
case ACTION_SMALL_STEP_BACK:
case ACTION_STEP_BACK:
case ACTION_BIG_STEP_BACK:
case ACTION_CHAPTER_OR_BIG_STEP_BACK:
if (m_timeCodePosition > 0)
{
SeekToTimeCodeStamp(SEEK_RELATIVE, SEEK_BACKWARD);
return true;
}
break;
case ACTION_STEP_FORWARD:
case ACTION_BIG_STEP_FORWARD:
case ACTION_CHAPTER_OR_BIG_STEP_FORWARD:
if (m_timeCodePosition > 0)
{
SeekToTimeCodeStamp(SEEK_RELATIVE, SEEK_FORWARD);
return true;
}
break;
case ACTION_SHOW_OSD_TIME:
m_bShowCurrentTime = !m_bShowCurrentTime;
if(!m_bShowCurrentTime)
g_infoManager.SetDisplayAfterSeek(0); //Force display off
g_infoManager.SetShowTime(m_bShowCurrentTime);
return true;
break;
case ACTION_SHOW_INFO:
{
CGUIDialogFullScreenInfo* pDialog = (CGUIDialogFullScreenInfo*)g_windowManager.GetWindow(WINDOW_DIALOG_FULLSCREEN_INFO);
if (pDialog)
{
CFileItem item(g_application.CurrentFileItem());
pDialog->Open();
return true;
}
break;
}
case REMOTE_0:
case REMOTE_1:
case REMOTE_2:
case REMOTE_3:
case REMOTE_4:
case REMOTE_5:
case REMOTE_6:
case REMOTE_7:
case REMOTE_8:
//.........这里部分代码省略.........
示例5: OnAction
bool CGUIWindowFullScreen::OnAction(const CAction &action)
{
if (g_application.m_pPlayer != NULL && g_application.m_pPlayer->OnAction(action))
return true;
if (m_timeCodePosition > 0 && action.GetButtonCode())
{ // check whether we have a mapping in our virtual videotimeseek "window" and have a select action
CKey key(action.GetButtonCode());
CAction timeSeek = CButtonTranslator::GetInstance().GetAction(WINDOW_VIDEO_TIME_SEEK, key, false);
if (timeSeek.GetID() == ACTION_SELECT_ITEM)
{
SeekToTimeCodeStamp(SEEK_ABSOLUTE);
return true;
}
}
switch (action.GetID())
{
case ACTION_SHOW_OSD:
ToggleOSD();
return true;
case ACTION_SHOW_GUI:
{
// switch back to the menu
OutputDebugString("Switching to GUI\n");
g_windowManager.PreviousWindow();
OutputDebugString("Now in GUI\n");
return true;
}
break;
case ACTION_PLAYER_PLAY:
case ACTION_PAUSE:
if (m_timeCodePosition > 0)
{
SeekToTimeCodeStamp(SEEK_ABSOLUTE);
return true;
}
break;
case ACTION_STEP_BACK:
if (m_timeCodePosition > 0)
SeekToTimeCodeStamp(SEEK_RELATIVE, SEEK_BACKWARD);
else
g_application.m_pPlayer->Seek(false, false);
return true;
case ACTION_STEP_FORWARD:
if (m_timeCodePosition > 0)
SeekToTimeCodeStamp(SEEK_RELATIVE, SEEK_FORWARD);
else
g_application.m_pPlayer->Seek(true, false);
return true;
case ACTION_BIG_STEP_BACK:
if (m_timeCodePosition > 0)
SeekToTimeCodeStamp(SEEK_RELATIVE, SEEK_BACKWARD);
else
g_application.m_pPlayer->Seek(false, true);
return true;
case ACTION_BIG_STEP_FORWARD:
if (m_timeCodePosition > 0)
SeekToTimeCodeStamp(SEEK_RELATIVE, SEEK_FORWARD);
else
g_application.m_pPlayer->Seek(true, true);
return true;
case ACTION_NEXT_SCENE:
if (g_application.m_pPlayer->SeekScene(true))
g_infoManager.SetDisplayAfterSeek();
return true;
break;
case ACTION_PREV_SCENE:
if (g_application.m_pPlayer->SeekScene(false))
g_infoManager.SetDisplayAfterSeek();
return true;
break;
case ACTION_SHOW_OSD_TIME:
m_bShowCurrentTime = !m_bShowCurrentTime;
if(!m_bShowCurrentTime)
g_infoManager.SetDisplayAfterSeek(0); //Force display off
g_infoManager.SetShowTime(m_bShowCurrentTime);
return true;
break;
case ACTION_SHOW_INFO:
{
CGUIDialogFullScreenInfo* pDialog = (CGUIDialogFullScreenInfo*)g_windowManager.GetWindow(WINDOW_DIALOG_FULLSCREEN_INFO);
if (pDialog)
{
CFileItem item(g_application.CurrentFileItem());
pDialog->DoModal();
return true;
}
break;
}
//.........这里部分代码省略.........
示例6: OnAction
bool CGUIWindowFullScreen::OnAction(const CAction &action)
{
if (m_timeCodePosition > 0 && action.GetButtonCode())
{ // check whether we have a mapping in our virtual videotimeseek "window" and have a select action
CKey key(action.GetButtonCode());
CAction timeSeek = CButtonTranslator::GetInstance().GetAction(WINDOW_VIDEO_TIME_SEEK, key, false);
if (timeSeek.GetID() == ACTION_SELECT_ITEM)
{
SeekToTimeCodeStamp(SEEK_ABSOLUTE);
return true;
}
}
switch (action.GetID())
{
case ACTION_SHOW_OSD:
ToggleOSD();
return true;
case ACTION_TRIGGER_OSD:
TriggerOSD();
return true;
case ACTION_SHOW_GUI:
{
// switch back to the menu
g_windowManager.PreviousWindow();
return true;
}
break;
case ACTION_PLAYER_PLAY:
case ACTION_PAUSE:
if (m_timeCodePosition > 0)
{
SeekToTimeCodeStamp(SEEK_ABSOLUTE);
return true;
}
break;
case ACTION_STEP_BACK:
if (m_timeCodePosition > 0)
SeekToTimeCodeStamp(SEEK_RELATIVE, SEEK_BACKWARD);
else
g_application.m_pPlayer->Seek(false, false);
return true;
case ACTION_STEP_FORWARD:
if (m_timeCodePosition > 0)
SeekToTimeCodeStamp(SEEK_RELATIVE, SEEK_FORWARD);
else
g_application.m_pPlayer->Seek(true, false);
return true;
case ACTION_BIG_STEP_BACK:
case ACTION_CHAPTER_OR_BIG_STEP_BACK:
if (m_timeCodePosition > 0)
SeekToTimeCodeStamp(SEEK_RELATIVE, SEEK_BACKWARD);
else
g_application.m_pPlayer->Seek(false, true, action.GetID() == ACTION_CHAPTER_OR_BIG_STEP_BACK);
return true;
case ACTION_BIG_STEP_FORWARD:
case ACTION_CHAPTER_OR_BIG_STEP_FORWARD:
if (m_timeCodePosition > 0)
SeekToTimeCodeStamp(SEEK_RELATIVE, SEEK_FORWARD);
else
g_application.m_pPlayer->Seek(true, true, action.GetID() == ACTION_CHAPTER_OR_BIG_STEP_FORWARD);
return true;
case ACTION_NEXT_SCENE:
if (g_application.m_pPlayer->SeekScene(true))
g_infoManager.SetDisplayAfterSeek();
return true;
break;
case ACTION_PREV_SCENE:
if (g_application.m_pPlayer->SeekScene(false))
g_infoManager.SetDisplayAfterSeek();
return true;
break;
case ACTION_SHOW_OSD_TIME:
m_bShowCurrentTime = !m_bShowCurrentTime;
if(!m_bShowCurrentTime)
g_infoManager.SetDisplayAfterSeek(0); //Force display off
g_infoManager.SetShowTime(m_bShowCurrentTime);
return true;
break;
case ACTION_SHOW_INFO:
{
CGUIDialogFullScreenInfo* pDialog = (CGUIDialogFullScreenInfo*)g_windowManager.GetWindow(WINDOW_DIALOG_FULLSCREEN_INFO);
if (pDialog)
{
CFileItem item(g_application.CurrentFileItem());
pDialog->DoModal();
return true;
}
break;
//.........这里部分代码省略.........
示例7: OnAction
bool CGUIDialogGamepad::OnAction(const CAction &action)
{
if ((action.GetButtonCode() >= KEY_BUTTON_A &&
action.GetButtonCode() <= KEY_BUTTON_RIGHT_TRIGGER) ||
(action.GetButtonCode() >= KEY_BUTTON_DPAD_UP &&
action.GetButtonCode() <= KEY_BUTTON_DPAD_RIGHT))
{
switch (action.GetButtonCode())
{
case KEY_BUTTON_A : m_strUserInput += "A"; break;
case KEY_BUTTON_B : m_strUserInput += "B"; break;
case KEY_BUTTON_X : m_strUserInput += "X"; break;
case KEY_BUTTON_Y : m_strUserInput += "Y"; break;
case KEY_BUTTON_BLACK : m_strUserInput += "K"; break;
case KEY_BUTTON_WHITE : m_strUserInput += "W"; break;
case KEY_BUTTON_LEFT_TRIGGER : m_strUserInput += "("; break;
case KEY_BUTTON_RIGHT_TRIGGER : m_strUserInput += ")"; break;
case KEY_BUTTON_DPAD_UP : m_strUserInput += "U"; break;
case KEY_BUTTON_DPAD_DOWN : m_strUserInput += "D"; break;
case KEY_BUTTON_DPAD_LEFT : m_strUserInput += "L"; break;
case KEY_BUTTON_DPAD_RIGHT : m_strUserInput += "R"; break;
default : return true; break;
}
CStdString strHiddenInput(m_strUserInput);
for (int i = 0; i < (int)strHiddenInput.size(); i++)
{
strHiddenInput[i] = m_cHideInputChar;
}
SetLine(2, strHiddenInput);
return true;
}
else if (action.GetButtonCode() == KEY_BUTTON_BACK || action.GetID() == ACTION_PREVIOUS_MENU || action.GetID() == ACTION_NAV_BACK)
{
m_bConfirmed = false;
m_bCanceled = true;
m_strUserInput = "";
m_bHideInputChars = true;
Close();
return true;
}
else if (action.GetButtonCode() == KEY_BUTTON_START)
{
m_bConfirmed = false;
m_bCanceled = false;
CStdString md5pword2;
XBMC::XBMC_MD5 md5state;
md5state.append(m_strUserInput);
md5state.getDigest(md5pword2);
if (!m_strPassword.Equals(md5pword2))
{
// incorrect password entered
m_iRetries--;
// don't clean up if the calling code wants the bad user input
if (m_bUserInputCleanup)
m_strUserInput = "";
else
m_bUserInputCleanup = true;
m_bHideInputChars = true;
Close();
return true;
}
// correct password entered
m_bConfirmed = true;
m_iRetries = 0;
m_strUserInput = "";
m_bHideInputChars = true;
Close();
return true;
}
else if (action.GetID() >= REMOTE_0 && action.GetID() <= REMOTE_9)
{
return true; // unhandled
}
else
{
return CGUIDialog::OnAction(action);
}
}
示例8: OnAction
bool CGUIDialogKeyboardGeneric::OnAction(const CAction &action)
{
bool handled(true);
if (action.GetID() == ACTION_BACKSPACE)
{
Backspace();
}
else if (action.GetID() == ACTION_ENTER)
{
OnOK();
}
else if (action.GetID() == ACTION_CURSOR_LEFT)
{
MoveCursor( -1);
}
else if (action.GetID() == ACTION_CURSOR_RIGHT)
{
if (m_strEditing.empty() && (unsigned int) GetCursorPos() == m_strEdit.size() && (m_strEdit.size() == 0 || m_strEdit[m_strEdit.size() - 1] != ' '))
{ // add a space
Character(L' ');
}
else
MoveCursor(1);
}
else if (action.GetID() == ACTION_SHIFT)
{
OnShift();
}
else if (action.GetID() == ACTION_SYMBOLS)
{
OnSymbols();
}
else if (action.GetID() >= REMOTE_0 && action.GetID() <= REMOTE_9)
{
OnRemoteNumberClick(action.GetID());
}
else if (action.GetID() == ACTION_PASTE)
{
OnPasteClipboard();
}
else if ( (action.GetID() >= KEY_VKEY && action.GetID() < KEY_ASCII) ||
(action.GetButtonCode() >= KEY_VKEY && action.GetButtonCode() < KEY_ASCII) )
{ // input from the keyboard (vkey, not ascii)
if (!m_strEditing.empty())
return handled;
uint8_t b = action.GetButtonCode() ? action.GetButtonCode() & 0xFF : action.GetID() & 0xFF;
switch (b)
{
case XBMCVK_HOME:
SetCursorPos(0);
break;
case XBMCVK_END:
SetCursorPos(m_strEdit.size());
break;
case XBMCVK_LEFT:
MoveCursor( -1);
break;
case XBMCVK_RIGHT:
MoveCursor(1);
break;
case XBMCVK_RETURN:
case XBMCVK_NUMPADENTER:
OnOK();
break;
case XBMCVK_DELETE:
if (GetCursorPos() < (int)m_strEdit.size())
{
MoveCursor(1);
Backspace();
}
break;
case XBMCVK_BACK:
Backspace();
break;
case XBMCVK_ESCAPE:
Close();
break;
case XBMCVK_LSHIFT:
case XBMCVK_RSHIFT:
OnShift();
break;
case XBMCVK_CAPSLOCK:
OnCapsLock();
break;
}
}
else if (action.GetID() >= KEY_ASCII)
{ // input from the keyboard
//char ch = action.GetID() & 0xFF;
int ch = action.GetUnicode();
if( m_keyType == LOWER && m_bShift )
{
if (ch >= 'a' && ch <= 'z')
ch -= 32;
OnShift();
}
else if( m_keyType == CAPS && !m_bShift )
//.........这里部分代码省略.........
示例9: OnAction
bool CGUIWindowFullScreen::OnAction(const CAction &action)
{
if (CServiceBroker::GetSettings().GetBool(CSettings::SETTING_PVRPLAYBACK_CONFIRMCHANNELSWITCH) &&
g_infoManager.IsPlayerChannelPreviewActive() &&
(action.GetID() == ACTION_SELECT_ITEM || CButtonTranslator::GetInstance().GetGlobalAction(action.GetButtonCode()).GetID() == ACTION_SELECT_ITEM))
{
// If confirm channel switch is active, channel preview is currently shown
// and the button that caused this action matches (global) action "Select" (OK)
// switch to the channel currently displayed within the preview.
g_application.m_pPlayer->SwitchChannel(g_application.CurrentFileItem().GetPVRChannelInfoTag());
return true;
}
switch (action.GetID())
{
case ACTION_SHOW_OSD:
ToggleOSD();
return true;
case ACTION_TRIGGER_OSD:
TriggerOSD();
return true;
case ACTION_SHOW_GUI:
{
// switch back to the menu
g_windowManager.PreviousWindow();
return true;
}
break;
case ACTION_SHOW_OSD_TIME:
m_bShowCurrentTime = !m_bShowCurrentTime;
g_infoManager.SetShowTime(m_bShowCurrentTime);
return true;
break;
case ACTION_SHOW_INFO:
{
CGUIDialogFullScreenInfo* pDialog = (CGUIDialogFullScreenInfo*)g_windowManager.GetWindow(WINDOW_DIALOG_FULLSCREEN_INFO);
if (pDialog)
{
CFileItem item(g_application.CurrentFileItem());
pDialog->Open();
return true;
}
break;
}
case ACTION_ASPECT_RATIO:
{ // toggle the aspect ratio mode (only if the info is onscreen)
if (m_bShowViewModeInfo)
{
#ifdef HAS_VIDEO_PLAYBACK
g_application.m_pPlayer->SetRenderViewMode(CViewModeSettings::GetNextQuickCycleViewMode(CMediaSettings::GetInstance().GetCurrentVideoSettings().m_ViewMode));
#endif
}
m_bShowViewModeInfo = true;
m_dwShowViewModeTimeout = XbmcThreads::SystemClockMillis();
}
return true;
break;
case ACTION_SHOW_PLAYLIST:
{
CFileItem item(g_application.CurrentFileItem());
if (item.HasPVRChannelInfoTag())
g_windowManager.ActivateWindow(WINDOW_DIALOG_PVR_OSD_CHANNELS);
else if (item.HasVideoInfoTag())
g_windowManager.ActivateWindow(WINDOW_VIDEO_PLAYLIST);
else if (item.HasMusicInfoTag())
g_windowManager.ActivateWindow(WINDOW_MUSIC_PLAYLIST);
}
return true;
break;
default:
break;
}
return CGUIWindow::OnAction(action);
}