MCPcopy Create free account
hub / github.com/Pulse-Eight/libcec / Process

Method Process

src/libcec/CECClient.cpp:1681–1733  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1679}
1680
1681void* CCECClient::Process(void)
1682{
1683 CCallbackWrap* cb(NULL);
1684 while (!IsStopped())
1685 {
1686 if (m_callbackCalls.Pop(cb, 500))
1687 {
1688 bool keepResult = cb->m_keepResult;
1689 try
1690 {
1691 switch (cb->m_type)
1692 {
1693 case CCallbackWrap::CEC_CB_LOG_MESSAGE:
1694 CallbackAddLog(cb->m_message);
1695 break;
1696 case CCallbackWrap::CEC_CB_KEY_PRESS:
1697 CallbackAddKey(cb->m_key);
1698 break;
1699 case CCallbackWrap::CEC_CB_COMMAND:
1700 AddCommand(cb->m_command);
1701 break;
1702 case CCallbackWrap::CEC_CB_ALERT:
1703 CallbackAlert(cb->m_alertType, cb->m_alertParam);
1704 break;
1705 case CCallbackWrap::CEC_CB_CONFIGURATION:
1706 CallbackConfigurationChanged(cb->m_config);
1707 break;
1708 case CCallbackWrap::CEC_CB_MENU_STATE:
1709 keepResult = cb->Report(CallbackMenuStateChanged(cb->m_menuState));
1710 break;
1711 case CCallbackWrap::CEC_CB_SOURCE_ACTIVATED:
1712 CallbackSourceActivated(cb->m_bActivated, cb->m_logicalAddress);
1713 break;
1714 case CCallbackWrap::CEC_CB_COMMAND_HANDLER:
1715 keepResult = cb->Report(CallbackCommandHandler(cb->m_command));
1716 if (!keepResult)
1717 LIB_CEC->AddLog(CEC_LOG_WARNING, "Command callback timeout occured !");
1718 break;
1719 default:
1720 break;
1721 }
1722
1723 if (!keepResult)
1724 delete cb;
1725 } catch (...)
1726 {
1727 // don't log a warning but let the app deal with this
1728 delete cb;
1729 }
1730 }
1731 }
1732 return NULL;
1733}
1734
1735void CCECClient::CallbackAddKey(const cec_keypress &key)
1736{

Callers

nothing calls this directly

Calls 3

PopMethod · 0.80
ReportMethod · 0.80
AddLogMethod · 0.45

Tested by

no test coverage detected