diff --git a/src/libcec/CECClient.cpp b/src/libcec/CECClient.cpp index bb8b0cd91..e41cfe0d4 100644 --- a/src/libcec/CECClient.cpp +++ b/src/libcec/CECClient.cpp @@ -1459,9 +1459,17 @@ bool CCECClient::IsActiveDeviceType(const cec_device_type type) { CECDEVICEVEC activeDevices; if (m_processor) - m_processor->GetDevices()->GetActive(activeDevices); - CCECDeviceMap::FilterType(type, activeDevices); - return !activeDevices.empty(); + m_processor->GetDevices()->GetByType(type, activeDevices); + + for (CECDEVICEVEC::iterator it = activeDevices.begin(); it != activeDevices.end(); it++) + { + cec_bus_device_status status = (*it)->GetStatus(); + if (status == CEC_DEVICE_STATUS_HANDLED_BY_LIBCEC || + status == CEC_DEVICE_STATUS_PRESENT) + return true; + } + + return false; } cec_logical_address CCECClient::GetActiveSource(void)