本文整理汇总了C++中CAction::GetName方法的典型用法代码示例。如果您正苦于以下问题:C++ CAction::GetName方法的具体用法?C++ CAction::GetName怎么用?C++ CAction::GetName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CAction
的用法示例。
在下文中一共展示了CAction::GetName方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AlwaysProcess
bool CInputManager::AlwaysProcess(const CAction& action)
{
// check if this button is mapped to a built-in function
if (!action.GetName().empty())
{
std::string builtInFunction;
std::vector<std::string> params;
CUtil::SplitExecFunction(action.GetName(), builtInFunction, params);
StringUtils::ToLower(builtInFunction);
// should this button be handled normally or just cancel the screensaver?
if (builtInFunction == "powerdown"
|| builtInFunction == "reboot"
|| builtInFunction == "restart"
|| builtInFunction == "restartapp"
|| builtInFunction == "suspend"
|| builtInFunction == "hibernate"
|| builtInFunction == "quit"
|| builtInFunction == "shutdown")
{
return true;
}
}
return false;
}
示例2: ProcessMouse
bool CInputManager::ProcessMouse(int windowId)
{
MEASURE_FUNCTION;
if (!m_Mouse.IsActive() || !g_application.IsAppFocused())
return false;
// Get the mouse command ID
uint32_t mousekey = m_Mouse.GetKey();
if (mousekey == KEY_MOUSE_NOOP)
return true;
// Reset the screensaver and idle timers
g_application.ResetSystemIdleTimer();
g_application.ResetScreenSaver();
if (g_application.WakeUpScreenSaverAndDPMS())
return true;
// Retrieve the corresponding action
CKey key(mousekey, (unsigned int)0);
CAction mouseaction = CButtonTranslator::GetInstance().GetAction(windowId, key);
// Deactivate mouse if non-mouse action
if (!mouseaction.IsMouse())
m_Mouse.SetActive(false);
// Consume ACTION_NOOP.
// Some views or dialogs gets closed after any ACTION and
// a sensitive mouse might cause problems.
if (mouseaction.GetID() == ACTION_NOOP)
return false;
// If we couldn't find an action return false to indicate we have not
// handled this mouse action
if (!mouseaction.GetID())
{
CLog::LogF(LOGDEBUG, "unknown mouse command %d", mousekey);
return false;
}
// Log mouse actions except for move and noop
if (mouseaction.GetID() != ACTION_MOUSE_MOVE && mouseaction.GetID() != ACTION_NOOP)
CLog::LogF(LOGDEBUG, "trying mouse action %s", mouseaction.GetName().c_str());
// The action might not be a mouse action. For example wheel moves might
// be mapped to volume up/down in mouse.xml. In this case we do not want
// the mouse position saved in the action.
if (!mouseaction.IsMouse())
return g_application.OnAction(mouseaction);
// This is a mouse action so we need to record the mouse position
return g_application.OnAction(CAction(mouseaction.GetID(),
m_Mouse.GetHold(MOUSE_LEFT_BUTTON),
(float)m_Mouse.GetX(),
(float)m_Mouse.GetY(),
(float)m_Mouse.GetDX(),
(float)m_Mouse.GetDY(),
mouseaction.GetName()));
}
示例3: OnAction
bool CGUIWindowLoginScreen::OnAction(const CAction &action)
{
// don't allow built in actions to act here except shutdown related ones.
// this forces only navigation type actions to be performed.
if (action.GetID() == ACTION_BUILT_IN_FUNCTION)
{
CStdString actionName = action.GetName();
actionName.ToLower();
if (actionName.Find("shutdown") != -1)
CBuiltins::Execute(action.GetName());
return true;
}
return CGUIWindow::OnAction(action);
}
示例4: OnAction
bool CGUIWindowLoginScreen::OnAction(const CAction &action)
{
// don't allow built in actions to act here except shutdown related ones.
// this forces only navigation type actions to be performed.
if (action.GetID() == ACTION_BUILT_IN_FUNCTION)
{
std::string actionName = action.GetName();
StringUtils::ToLower(actionName);
if ((actionName.find("shutdown") != std::string::npos) &&
PVR::g_PVRManager.CanSystemPowerdown())
CBuiltins::GetInstance().Execute(action.GetName());
return true;
}
return CGUIWindow::OnAction(action);
}
示例5: 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();
}
示例6:
void CJoystickManager::CActionRepeater::Track(const CAction &action)
{
if (m_actionID != action.GetID())
{
// A new button was pressed, start tracking it
m_actionID = action.GetID();
m_name = action.GetName();
m_timeout.Set(ACTION_FIRST_DELAY);
}
else
{
// Already tracking the action, update timer if expired
if (m_timeout.IsTimePast())
m_timeout.Set(ACTION_REPEAT_DELAY);
}
}
示例7: OnAction
bool CStereoscopicsManager::OnAction(const CAction &action)
{
RENDER_STEREO_MODE mode = GetStereoMode();
if (action.GetID() == ACTION_STEREOMODE_NEXT)
{
SetStereoModeByUser(GetNextSupportedStereoMode(mode));
return true;
}
else if (action.GetID() == ACTION_STEREOMODE_PREVIOUS)
{
SetStereoModeByUser(GetNextSupportedStereoMode(mode, RENDER_STEREO_MODE_COUNT - 1));
return true;
}
else if (action.GetID() == ACTION_STEREOMODE_TOGGLE)
{
if (mode == RENDER_STEREO_MODE_OFF)
{
RENDER_STEREO_MODE targetMode = GetPreferredPlaybackMode();
// if user selected a specific mode before, make sure to
// switch back into that mode on toggle.
if (m_stereoModeSetByUser != RENDER_STEREO_MODE_UNDEFINED)
{
// if user mode is set to OFF, he manually turned it off before. In this case use the last user applied mode
if (m_stereoModeSetByUser != RENDER_STEREO_MODE_OFF)
targetMode = m_stereoModeSetByUser;
else if (m_lastStereoModeSetByUser != RENDER_STEREO_MODE_UNDEFINED && m_lastStereoModeSetByUser != RENDER_STEREO_MODE_OFF)
targetMode = m_lastStereoModeSetByUser;
}
SetStereoModeByUser(targetMode);
}
else
{
SetStereoModeByUser(RENDER_STEREO_MODE_OFF);
}
return true;
}
else if (action.GetID() == ACTION_STEREOMODE_SELECT)
{
SetStereoModeByUser(GetStereoModeByUserChoice());
return true;
}
else if (action.GetID() == ACTION_STEREOMODE_TOMONO)
{
if (mode == RENDER_STEREO_MODE_MONO)
{
RENDER_STEREO_MODE targetMode = GetPreferredPlaybackMode();
// if we have an old userdefined steremode, use that one as toggle target
if (m_stereoModeSetByUser != RENDER_STEREO_MODE_UNDEFINED)
{
// if user mode is set to OFF, he manually turned it off before. In this case use the last user applied mode
if (m_stereoModeSetByUser != RENDER_STEREO_MODE_OFF && m_stereoModeSetByUser != mode)
targetMode = m_stereoModeSetByUser;
else if (m_lastStereoModeSetByUser != RENDER_STEREO_MODE_UNDEFINED && m_lastStereoModeSetByUser != RENDER_STEREO_MODE_OFF && m_lastStereoModeSetByUser != mode)
targetMode = m_lastStereoModeSetByUser;
}
SetStereoModeByUser(targetMode);
}
else
{
SetStereoModeByUser(RENDER_STEREO_MODE_MONO);
}
return true;
}
else if (action.GetID() == ACTION_STEREOMODE_SET)
{
int stereoMode = ConvertStringToGuiStereoMode(action.GetName());
if (stereoMode > -1)
SetStereoModeByUser( (RENDER_STEREO_MODE) stereoMode );
return true;
}
return false;
}
示例8: OnKey
bool CInputManager::OnKey(const CKey& key)
{
for (std::vector<KEYBOARD::IKeyboardHandler*>::iterator it = m_keyboardHandlers.begin(); it != m_keyboardHandlers.end(); ++it)
{
if ((*it)->OnKeyPress(key))
return true;
}
// Turn the mouse off, as we've just got a keypress from controller or remote
m_Mouse.SetActive(false);
// get the current active window
int iWin = g_windowManager.GetActiveWindowID();
// this will be checked for certain keycodes that need
// special handling if the screensaver is active
CAction action = m_buttonTranslator->GetAction(iWin, key);
// a key has been pressed.
// reset Idle Timer
g_application.ResetSystemIdleTimer();
bool processKey = AlwaysProcess(action);
if (StringUtils::StartsWithNoCase(action.GetName(), "CECToggleState") || StringUtils::StartsWithNoCase(action.GetName(), "CECStandby"))
{
// do not wake up the screensaver right after switching off the playing device
if (StringUtils::StartsWithNoCase(action.GetName(), "CECToggleState"))
{
CLog::LogF(LOGDEBUG, "action %s [%d], toggling state of playing device", action.GetName().c_str(), action.GetID());
bool result;
CApplicationMessenger::GetInstance().SendMsg(TMSG_CECTOGGLESTATE, 0, 0, static_cast<void*>(&result));
if (!result)
return true;
}
else
{
CApplicationMessenger::GetInstance().PostMsg(TMSG_CECSTANDBY);
return true;
}
}
g_application.ResetScreenSaver();
// allow some keys to be processed while the screensaver is active
if (g_application.WakeUpScreenSaverAndDPMS(processKey) && !processKey)
{
CLog::LogF(LOGDEBUG, "%s pressed, screen saver/dpms woken up", m_Keyboard.GetKeyName((int)key.GetButtonCode()).c_str());
return true;
}
if (iWin != WINDOW_FULLSCREEN_VIDEO)
{
// current active window isnt the fullscreen window
// just use corresponding section from keymap.xml
// to map key->action
// first determine if we should use keyboard input directly
bool useKeyboard = key.FromKeyboard() && (iWin == WINDOW_DIALOG_KEYBOARD || iWin == WINDOW_DIALOG_NUMERIC);
CGUIWindow *window = g_windowManager.GetWindow(iWin);
if (window)
{
CGUIControl *control = window->GetFocusedControl();
if (control)
{
// If this is an edit control set usekeyboard to true. This causes the
// keypress to be processed directly not through the key mappings.
if (control->GetControlType() == CGUIControl::GUICONTROL_EDIT)
useKeyboard = true;
// If the key pressed is shift-A to shift-Z set usekeyboard to true.
// This causes the keypress to be used for list navigation.
if (control->IsContainer() && key.GetModifiers() == CKey::MODIFIER_SHIFT && key.GetVKey() >= XBMCVK_A && key.GetVKey() <= XBMCVK_Z)
useKeyboard = true;
}
}
if (useKeyboard)
{
// use the virtualkeyboard section of the keymap, and send keyboard-specific or navigation
// actions through if that's what they are
CAction action = m_buttonTranslator->GetAction(WINDOW_DIALOG_KEYBOARD, key);
if (!(action.GetID() == ACTION_MOVE_LEFT ||
action.GetID() == ACTION_MOVE_RIGHT ||
action.GetID() == ACTION_MOVE_UP ||
action.GetID() == ACTION_MOVE_DOWN ||
action.GetID() == ACTION_SELECT_ITEM ||
action.GetID() == ACTION_ENTER ||
action.GetID() == ACTION_PREVIOUS_MENU ||
action.GetID() == ACTION_NAV_BACK ||
action.GetID() == ACTION_VOICE_RECOGNIZE))
{
// the action isn't plain navigation - check for a keyboard-specific keymap
action = m_buttonTranslator->GetAction(WINDOW_DIALOG_KEYBOARD, key, false);
if (!(action.GetID() >= REMOTE_0 && action.GetID() <= REMOTE_9) ||
action.GetID() == ACTION_BACKSPACE ||
action.GetID() == ACTION_SHIFT ||
action.GetID() == ACTION_SYMBOLS ||
action.GetID() == ACTION_CURSOR_LEFT ||
action.GetID() == ACTION_CURSOR_RIGHT)
action = CAction(0); // don't bother with this action
}
//.........这里部分代码省略.........