cec: fixed typo in 3557c68d1c9f4ce0191163a4ab48b6c5cec68488 and create a 'broadcast...
[deb_libcec.git] / src / lib / CECProcessor.cpp
index f2eafaac5022bf095a7a6b678c61fd16151105ba..b0bf49f335065dfd9af4479ebf30b1c5b1b23d01 100644 (file)
@@ -57,7 +57,7 @@ CCECProcessor::CCECProcessor(CLibCEC *controller, CAdapterCommunication *serComm
   m_logicalAddresses.clear();
   m_logicalAddresses.set(iLogicalAddress);
   m_types.clear();
-  for (int iPtr = 0; iPtr < 16; iPtr++)
+  for (int iPtr = 0; iPtr <= 16; iPtr++)
     m_busDevices[iPtr] = new CCECBusDevice(this, (cec_logical_address) iPtr, iPtr == iLogicalAddress ? iPhysicalAddress : 0);
 }
 
@@ -365,10 +365,7 @@ bool CCECProcessor::SetStreamPath(uint16_t iStreamPath)
     device->m_bActiveSource = true;
     device->m_powerStatus   = CEC_POWER_STATUS_ON;
 
-    if (m_logicalAddresses.isset(device->m_iLogicalAddress))
-      bReturn = device->TransmitActiveSource();
-    else
-      bReturn = true;
+    bReturn = true;
   }
 
   return bReturn;
@@ -662,7 +659,7 @@ void CCECProcessor::ParseCommand(cec_command &command)
     dataStr.AppendFormat(":%02x", (unsigned int)command.parameters[iPtr]);
   m_controller->AddLog(CEC_LOG_TRAFFIC, dataStr.c_str());
 
-  if (!m_bMonitor)
+  if (!m_bMonitor && command.initiator >= CECDEVICE_TV && command.initiator <= CECDEVICE_BROADCAST)
     m_busDevices[(uint8_t)command.initiator]->HandleCommand(command);
 }