From 6807ee552093006e07f9e9c3aaec20025d9a9a05 Mon Sep 17 00:00:00 2001 From: Lars Op den Kamp Date: Wed, 13 Jun 2012 10:02:01 +0200 Subject: [PATCH] cec: display a warning message if libCEC was not compiled with adapter detection for the target platform --- src/lib/LibCEC.cpp | 6 ++++++ src/lib/adapter/USBCECAdapterDetection.cpp | 9 +++++++++ src/lib/adapter/USBCECAdapterDetection.h | 3 ++- 3 files changed, 17 insertions(+), 1 deletion(-) 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); }; }; -- 2.34.1