X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fadapter%2FUSBCECAdapterCommunication.cpp;h=3e3ba0845f7064dbc9076e15557f15db9ba93250;hb=c0152c0940ee81c79150dbafafd6621f576c3ccb;hp=b08801fae211a27d4756a586efb673e0c16f7d46;hpb=004b83822a351e1fb6e982a9183a12a430b0b769;p=deb_libcec.git diff --git a/src/lib/adapter/USBCECAdapterCommunication.cpp b/src/lib/adapter/USBCECAdapterCommunication.cpp index b08801f..3e3ba08 100644 --- a/src/lib/adapter/USBCECAdapterCommunication.cpp +++ b/src/lib/adapter/USBCECAdapterCommunication.cpp @@ -188,9 +188,6 @@ void CUSBCECAdapterCommunication::Close(void) /* close and delete the com port connection */ if (m_port) m_port->Close(); - - libcec_parameter param; - LIB_CEC->Alert(CEC_ALERT_CONNECTION_LOST, param); } cec_adapter_message_state CUSBCECAdapterCommunication::Write(const cec_command &data, bool &bRetry, uint8_t iLineTimeout) @@ -223,7 +220,13 @@ void *CUSBCECAdapterCommunication::Process(void) { /* read from the serial port */ if (!ReadFromDevice(50, 5)) + { + libcec_parameter param; + param.paramData = NULL; param.paramType = CEC_PARAMETER_TYPE_UNKOWN; + LIB_CEC->Alert(CEC_ALERT_CONNECTION_LOST, param); + break; + } /* TODO sleep 5 ms so other threads can get a lock */ Sleep(5); @@ -383,7 +386,13 @@ CCECAdapterMessage *CUSBCECAdapterCommunication::SendCommand(cec_adapter_message if (!m_adapterMessageQueue->Write(output)) { if (output->state == ADAPTER_MESSAGE_STATE_ERROR) + { + libcec_parameter param; + param.paramData = NULL; param.paramType = CEC_PARAMETER_TYPE_UNKOWN; + LIB_CEC->Alert(CEC_ALERT_CONNECTION_LOST, param); + Close(); + } return output; } else @@ -514,12 +523,12 @@ bool CUSBCECAdapterCommunication::IsRunningLatestFirmware(void) GetFirmwareBuildDate() >= CEC_LATEST_ADAPTER_FW_DATE; } -bool CUSBCECAdapterCommunication::PersistConfiguration(libcec_configuration *configuration) +bool CUSBCECAdapterCommunication::PersistConfiguration(const libcec_configuration &configuration) { return m_port->IsOpen() ? m_commands->PersistConfiguration(configuration) : false; } -bool CUSBCECAdapterCommunication::GetConfiguration(libcec_configuration *configuration) +bool CUSBCECAdapterCommunication::GetConfiguration(libcec_configuration &configuration) { return m_port->IsOpen() ? m_commands->GetConfiguration(configuration) : false; }