summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--video-ps3eye/CMakeLists.txt17
-rw-r--r--video-ps3eye/module.cpp50
-rw-r--r--video-ps3eye/module.hpp3
3 files changed, 70 insertions, 0 deletions
diff --git a/video-ps3eye/CMakeLists.txt b/video-ps3eye/CMakeLists.txt
index 5e45eb4a..6510d8c7 100644
--- a/video-ps3eye/CMakeLists.txt
+++ b/video-ps3eye/CMakeLists.txt
@@ -2,6 +2,23 @@ add_compile_definitions(PS3EYE_DEBUG)
add_subdirectory("ps3eye-driver")
+if(NOT MSVC)
+ if(PKG_CONFIG_FOUND)
+ pkg_check_modules(libusb "libusb-1.0" QUIET)
+ endif()
+ if(libusb_FOUND)
+ include_directories(SYSTEM ${libusb_INCLUDE_DIRS})
+ link_libraries(${libusb_LIBRARIES})
+ endif()
+else()
+ set(SDK_LIBUSB CACHE PATH "")
+ if(SDK_LIBUSB)
+ set(libusb_FOUND TRUE)
+ link_directories("${SDK_LIBUSB}")
+ include_directories(SYSTEM "${SDK_LIBUSB}")
+ endif()
+endif()
+
if(TARGET ps3eye-driver)
otr_module(video-ps3eye)
if(WIN32)
diff --git a/video-ps3eye/module.cpp b/video-ps3eye/module.cpp
index e69de29b..b04c6acb 100644
--- a/video-ps3eye/module.cpp
+++ b/video-ps3eye/module.cpp
@@ -0,0 +1,50 @@
+#include "module.hpp"
+
+#include <libusb.h>
+
+int device_count()
+{
+ libusb_context * ctx = nullptr;
+ libusb_device **list = nullptr;
+ ssize_t sz = 0;
+ int rc = 0, cnt = 0;
+
+ constexpr int vendor_id = 0x1415;
+ constexpr int product_id = 0x2000;
+
+ rc = libusb_init(&ctx);
+
+ if (rc)
+ goto end;
+
+ sz = libusb_get_device_list(ctx, &list);
+
+ if (sz < 0)
+ goto end;
+
+ for (int i = 0; i < sz; ++i) {
+ libusb_device *device = list[i];
+ libusb_device_descriptor desc = {};
+
+ if (libusb_get_device_descriptor(device, &desc))
+ goto end;
+
+ if (desc.idVendor == vendor_id && desc.idProduct == product_id)
+ cnt++;
+ }
+
+end:
+ if (list)
+ libusb_free_device_list(list, 1);
+ if (ctx)
+ libusb_exit(ctx);
+
+ return cnt;
+}
+
+bool check_device_exists()
+{
+ static bool ret = device_count() > 0;
+ return ret;
+}
+
diff --git a/video-ps3eye/module.hpp b/video-ps3eye/module.hpp
index e69de29b..a9283d14 100644
--- a/video-ps3eye/module.hpp
+++ b/video-ps3eye/module.hpp
@@ -0,0 +1,3 @@
+#pragma once
+
+#include "video/camera.hpp"