X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2FLibCEC.cpp;h=ab05822a230a1c7784dfe924f1426279578fa93e;hb=1b469124aa1f79269686492c391d54e43525ccf4;hp=ef4c84cd024d0960400eee0c5cfce524d082677e;hpb=a2198e5e7bf23df91c2cfe2acc5a75521395d531;p=deb_libcec.git diff --git a/src/lib/LibCEC.cpp b/src/lib/LibCEC.cpp index ef4c84c..ab05822 100644 --- a/src/lib/LibCEC.cpp +++ b/src/lib/LibCEC.cpp @@ -33,6 +33,7 @@ #include "LibCEC.h" #include "adapter/USBCECAdapterDetection.h" +#include "adapter/USBCECAdapterCommunication.h" #include "CECProcessor.h" #include "devices/CECBusDevice.h" #include "platform/util/timeutils.h" @@ -59,13 +60,12 @@ CLibCEC::CLibCEC(libcec_configuration *configuration) : m_callbacks(configuration->callbacks), m_cbParam(configuration->callbackParam) { - configuration->serverVersion = CEC_SERVER_VERSION_1_5_1; + configuration->serverVersion = CEC_SERVER_VERSION_1_5_2; m_cec = new CCECProcessor(this, configuration); } CLibCEC::~CLibCEC(void) { - Close(); delete m_cec; } @@ -504,17 +504,21 @@ void * CECInitialise(libcec_configuration *configuration) bool CECStartBootloader(void) { - libcec_configuration dummy; - dummy.Clear(); - CLibCEC *lib = new CLibCEC(&dummy); - bool bReturn(false); cec_adapter deviceList[1]; if (CUSBCECAdapterDetection::FindAdapters(deviceList, 1) > 0) { - bReturn = lib->m_cec->StartBootloader(deviceList[0].comm); - delete lib; + CUSBCECAdapterCommunication comm(NULL, deviceList[0].comm); + CTimeout timeout(10000); + while (timeout.TimeLeft() > 0 && (bReturn = comm.Open(NULL, (timeout.TimeLeft() / CEC_CONNECT_TRIES)), true) == false) + { + comm.Close(); + CEvent::Sleep(500); + } + if (comm.IsOpen()) + bReturn = comm.StartBootloader(); } + return bReturn; }