+
+ /* find the logical address for the adapter */
+ bReturn = m_logicalAddresses.IsEmpty() ? FindLogicalAddresses() : true;
+ if (!bReturn)
+ m_controller->AddLog(CEC_LOG_ERROR, "could not detect our logical addresses");
+
+ /* set the physical address for the adapter */
+ if (bReturn)
+ {
+ /* only set our OSD name for the primary device */
+ m_busDevices[m_logicalAddresses.primary]->m_strDeviceName = m_strDeviceName;
+
+ /* get the vendor id from the TV, so we are using the correct handler */
+ m_busDevices[CECDEVICE_TV]->GetVendorId();
+
+ bReturn = SetHDMIPort(m_iBaseDevice, m_iHDMIPort, true);
+ }
+
+ /* make the primary device the active source */
+ if (bReturn)
+ {
+ m_busDevices[m_logicalAddresses.primary]->m_bActiveSource = true;
+ bReturn = m_busDevices[CECDEVICE_TV]->GetHandler()->InitHandler();
+ }
+
+ if (bReturn)
+ {
+ m_controller->AddLog(CEC_LOG_DEBUG, "processor thread started");
+ }