本文整理汇总了C++中CECClientPtr::SetCurrentButton方法的典型用法代码示例。如果您正苦于以下问题:C++ CECClientPtr::SetCurrentButton方法的具体用法?C++ CECClientPtr::SetCurrentButton怎么用?C++ CECClientPtr::SetCurrentButton使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CECClientPtr
的用法示例。
在下文中一共展示了CECClientPtr::SetCurrentButton方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: HandleDeviceVendorCommandWithId
int CRLCommandHandler::HandleDeviceVendorCommandWithId(const cec_command &command)
{
if (!m_processor->IsHandledByLibCEC(command.destination))
return CEC_ABORT_REASON_INVALID_OPERAND;
if (command.parameters.size < 4)
return CEC_ABORT_REASON_INVALID_OPERAND;
// check whether the vendor id matches
if (command.parameters[0] != 0x00 ||
command.parameters[1] != 0x00 ||
command.parameters[2] != 0x39)
return CEC_ABORT_REASON_INVALID_OPERAND;
bool bHandled(false);
CECClientPtr client = m_processor->GetClient(command.destination);
if (client)
{
switch (command.parameters[3])
{
// user control pressed
case CEC_OPCODE_USER_CONTROL_PRESSED:
if (command.parameters.size == 5)
{
bHandled = true;
switch (command.parameters[4])
{
// top menu
case RL_KEY_TOP_MENU:
client->SetCurrentButton(CEC_USER_CONTROL_CODE_TOP_MENU);
break;
// dvd menu
case RL_KEY_DVD_MENU:
client->SetCurrentButton(CEC_USER_CONTROL_CODE_DVD_MENU);
break;
default:
bHandled = false;
break;
}
}
break;
// user control released
case CEC_OPCODE_USER_CONTROL_RELEASE:
client->AddKey();
bHandled = true;
break;
default:
break;
}
}
return bHandled ?
COMMAND_HANDLED :
CCECCommandHandler::HandleDeviceVendorCommandWithId(command);
}