本文整理汇总了C++中CCECBusDevice::ActivateSource方法的典型用法代码示例。如果您正苦于以下问题:C++ CCECBusDevice::ActivateSource方法的具体用法?C++ CCECBusDevice::ActivateSource怎么用?C++ CCECBusDevice::ActivateSource使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CCECBusDevice
的用法示例。
在下文中一共展示了CCECBusDevice::ActivateSource方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SendSetActiveSource
bool CCECClient::SendSetActiveSource(const cec_device_type type /* = CEC_DEVICE_TYPE_RESERVED */)
{
// get the devices that are controlled by us
CECDEVICEVEC devices;
m_processor->GetDevices()->GetByLogicalAddresses(devices, m_configuration.logicalAddresses);
// filter out the device that matches the given type
if (type != CEC_DEVICE_TYPE_RESERVED)
CCECDeviceMap::FilterType(type, devices);
// no devices left, re-fetch the list of devices that are controlled by us
if (devices.empty())
m_processor->GetDevices()->GetByLogicalAddresses(devices, m_configuration.logicalAddresses);
if (!devices.empty())
{
// get the first device from the list
CCECBusDevice *device = *devices.begin();
// and activate it
if (!m_processor->CECInitialised())
device->MarkAsActiveSource();
else if (device->HasValidPhysicalAddress())
return device->ActivateSource();
}
return false;
}
示例2: ActivateSource
bool CCECProcessor::ActivateSource(uint16_t iStreamPath)
{
bool bReturn(false);
// find the device with the given PA
CCECBusDevice *device = GetDeviceByPhysicalAddress(iStreamPath);
// and make it the active source when found
if (device)
bReturn = device->ActivateSource();
else
m_libcec->AddLog(CEC_LOG_DEBUG, "device with PA '%04x' not found", iStreamPath);
return bReturn;
}
示例3: SetActiveRoute
void CCECBusDevice::SetActiveRoute(uint16_t iRoute)
{
SetPowerStatus(CEC_POWER_STATUS_ON);
CCECDeviceMap* map = m_processor->GetDevices();
if (!map)
return;
CCECBusDevice* newRoute = m_processor->GetDeviceByPhysicalAddress(iRoute, true);
if (newRoute && newRoute->IsHandledByLibCEC() && !newRoute->IsActiveSource())
{
// we were made the active source, send notification
newRoute->ActivateSource();
}
}
示例4: SetDevicePhysicalAddress
bool CCECClient::SetDevicePhysicalAddress(const uint16_t iPhysicalAddress)
{
if (!CLibCEC::IsValidPhysicalAddress(iPhysicalAddress))
{
LIB_CEC->AddLog(CEC_LOG_DEBUG, "%s - not setting invalid physical address %04x", __FUNCTION__, iPhysicalAddress);
return false;
}
// reconfigure all devices
cec_logical_address reactivateSource(CECDEVICE_UNKNOWN);
CECDEVICEVEC devices;
m_processor->GetDevices()->GetByLogicalAddresses(devices, m_configuration.logicalAddresses);
for (CECDEVICEVEC::iterator it = devices.begin(); it != devices.end(); it++)
{
// if this device was the active source, reactivate it afterwards
if ((*it)->IsActiveSource())
reactivateSource = (*it)->GetLogicalAddress();
// mark the device as inactive source
if (IsInitialised())
(*it)->MarkAsInactiveSource();
// set the new physical address
(*it)->SetPhysicalAddress(iPhysicalAddress);
// and transmit it
if (IsInitialised())
(*it)->TransmitPhysicalAddress(false);
}
// reactivate the previous active source
if (reactivateSource != CECDEVICE_UNKNOWN &&
m_processor->CECInitialised() &&
IsInitialised())
{
CCECBusDevice *device = m_processor->GetDevice(reactivateSource);
if (device)
device->ActivateSource();
}
// persist the new configuration
PersistConfiguration(m_configuration);
return true;
}
示例5: SetConfiguration
bool CCECClient::SetConfiguration(const libcec_configuration &configuration)
{
bool bIsRunning(m_processor && m_processor->CECInitialised());
CCECBusDevice *primary = bIsRunning ? GetPrimaryDevice() : NULL;
uint16_t iPA = primary ? primary->GetCurrentPhysicalAddress() : CEC_INVALID_PHYSICAL_ADDRESS;
// update the callbacks
if (configuration.callbacks)
EnableCallbacks(configuration.callbackParam, configuration.callbacks);
// update the client version
SetClientVersion((cec_client_version)configuration.clientVersion);
// update the OSD name
CStdString strOSDName(configuration.strDeviceName);
SetOSDName(strOSDName);
// update the TV vendor override
SetTVVendorOverride((cec_vendor_id)configuration.tvVendor);
// just copy these
{
CLockObject lock(m_mutex);
m_configuration.bUseTVMenuLanguage = configuration.bUseTVMenuLanguage;
m_configuration.bActivateSource = configuration.bActivateSource;
m_configuration.bGetSettingsFromROM = configuration.bGetSettingsFromROM;
m_configuration.wakeDevices = configuration.wakeDevices;
m_configuration.powerOffDevices = configuration.powerOffDevices;
m_configuration.bPowerOffScreensaver = configuration.bPowerOffScreensaver;
m_configuration.bPowerOffOnStandby = configuration.bPowerOffOnStandby;
// client version 1.5.1
if (configuration.clientVersion >= CEC_CLIENT_VERSION_1_5_1)
m_configuration.bSendInactiveSource = configuration.bSendInactiveSource;
// client version 1.6.0
if (configuration.clientVersion >= CEC_CLIENT_VERSION_1_6_0)
{
m_configuration.bPowerOffDevicesOnStandby = configuration.bPowerOffDevicesOnStandby;
m_configuration.bShutdownOnStandby = configuration.bShutdownOnStandby;
}
// client version 1.6.2
if (configuration.clientVersion >= CEC_CLIENT_VERSION_1_6_2)
{
memcpy(m_configuration.strDeviceLanguage, configuration.strDeviceLanguage, 3);
}
// client version 1.6.3
if (configuration.clientVersion >= CEC_CLIENT_VERSION_1_6_3)
{
m_configuration.bMonitorOnly = configuration.bMonitorOnly;
}
// client version 1.8.0
if (configuration.clientVersion >= CEC_CLIENT_VERSION_1_8_0)
m_configuration.cecVersion = configuration.cecVersion;
// client version 1.8.2
if (configuration.clientVersion >= CEC_CLIENT_VERSION_1_8_2)
m_configuration.adapterType = configuration.adapterType;
// ensure that there is at least 1 device type set
if (m_configuration.deviceTypes.IsEmpty())
m_configuration.deviceTypes.Add(CEC_DEVICE_TYPE_RECORDING_DEVICE);
}
bool bNeedReinit(false);
// device types
if (SetDeviceTypes(configuration.deviceTypes))
{
// the device type changed. just copy the rest, and re-register
{
CLockObject lock(m_mutex);
m_configuration.iPhysicalAddress = configuration.iPhysicalAddress;
m_configuration.baseDevice = configuration.baseDevice;
m_configuration.iHDMIPort = configuration.iHDMIPort;
bNeedReinit = true;
}
}
else
{
// set the physical address
SetPhysicalAddress(configuration);
}
// persist the new configuration
PersistConfiguration(m_configuration);
if (!primary)
primary = GetPrimaryDevice();
if (bNeedReinit || !primary || primary->GetCurrentPhysicalAddress() != iPA)
{
// PA or device type changed
m_processor->RegisterClient(this);
}
else if (primary && configuration.bActivateSource == 1 && bIsRunning && !primary->IsActiveSource())
{
//.........这里部分代码省略.........