From: Lars Op den Kamp Date: Wed, 13 Jun 2012 08:02:01 +0000 (+0200) Subject: cec: display a warning message if libCEC was not compiled with adapter detection... X-Git-Tag: upstream/2.2.0~1^2~22^2^2~44 X-Git-Url: https://git.piment-noir.org/?p=deb_libcec.git;a=commitdiff_plain;h=6807ee552093006e07f9e9c3aaec20025d9a9a05 cec: display a warning message if libCEC was not compiled with adapter detection for the target platform --- diff --git a/src/lib/LibCEC.cpp b/src/lib/LibCEC.cpp index 56ece65..8838ff4 100644 --- a/src/lib/LibCEC.cpp +++ b/src/lib/LibCEC.cpp @@ -114,6 +114,12 @@ void CLibCEC::Close(void) int8_t CLibCEC::FindAdapters(cec_adapter *deviceList, uint8_t iBufSize, const char *strDevicePath /* = NULL */) { + if (!CUSBCECAdapterDetection::CanAutodetect()) + { + AddLog(CEC_LOG_WARNING, "libCEC has not been compiled with adapter detection code for this target, so the path to the COM port has to be provided to libCEC"); + return 0; + } + return CUSBCECAdapterDetection::FindAdapters(deviceList, iBufSize, strDevicePath); } diff --git a/src/lib/adapter/USBCECAdapterDetection.cpp b/src/lib/adapter/USBCECAdapterDetection.cpp index 8775b4e..78b2760 100644 --- a/src/lib/adapter/USBCECAdapterDetection.cpp +++ b/src/lib/adapter/USBCECAdapterDetection.cpp @@ -115,6 +115,15 @@ bool FindComPort(CStdString &strLocation) } #endif +bool CUSBCECAdapterDetection::CanAutodetect(void) +{ +#if defined(__APPLE__) || defined(HAVE_LIBUDEV) || defined(__WINDOWS__) || defined(__FreeBSD__) + return true; +#else + return false; +#endif +} + uint8_t CUSBCECAdapterDetection::FindAdapters(cec_adapter *deviceList, uint8_t iBufSize, const char *strDevicePath /* = NULL */) { uint8_t iFound(0); diff --git a/src/lib/adapter/USBCECAdapterDetection.h b/src/lib/adapter/USBCECAdapterDetection.h index 9be3a57..9b6c624 100644 --- a/src/lib/adapter/USBCECAdapterDetection.h +++ b/src/lib/adapter/USBCECAdapterDetection.h @@ -38,6 +38,7 @@ namespace CEC class CUSBCECAdapterDetection { public: - static uint8_t FindAdapters(cec_adapter *deviceList, uint8_t iBufSize, const char *strDevicePath = NULL); + static uint8_t FindAdapters(cec_adapter *deviceList, uint8_t iBufSize, const char *strDevicePath = NULL); + static bool CanAutodetect(void); }; };