added DetectAdapters() method, that returns all device information for detected adapt...
[deb_libcec.git] / src / lib / CECProcessor.cpp
index 399e065daa81f9872e4d95d3efb54e2773c49d05..3be1c36cdb52c3996ce092302dd157797b6772dc 100644 (file)
@@ -351,7 +351,7 @@ cec_logical_address CCECProcessor::GetActiveSource(bool bRequestActiveSource /*
   if (activeSource)
     return activeSource->GetLogicalAddress();
 
-  if (bRequestActiveSource && m_busDevices->GetActiveSourceAddress() == CEC_INVALID_PHYSICAL_ADDRESS)
+  if (bRequestActiveSource)
   {
     // request the active source from the bus
     CCECBusDevice *primary = GetPrimaryDevice();
@@ -623,6 +623,8 @@ bool CCECProcessor::GetDeviceInformation(const char *strPort, libcec_configurati
   config->iFirmwareBuildDate = m_communication->GetFirmwareBuildDate();
   config->adapterType        = m_communication->GetAdapterType();
 
+  Close();
+
   return true;
 }
 
@@ -839,6 +841,9 @@ bool CCECProcessor::RegisterClient(CCECClient *client)
     GetTV()->MarkHandlerReady();
   }
 
+  // report our OSD name to the TV, since some TVs don't request it
+  client->GetPrimaryDevice()->TransmitOSDName(CECDEVICE_TV, false);
+
   // request the power status of the TV
   tv->RequestPowerStatus(sourceAddress, true);