diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2019-07-05 13:04:58 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2019-07-05 13:04:58 +0200 |
commit | 8fa10fda8186b6cdd10430e4d6cb4ef8db1ee9a0 (patch) | |
tree | a5ee2b1e1d54944492776329ba71800070c72135 /video-ps3eye/module.cpp | |
parent | 66c2373014fc107d918b8549d554420d63405cc7 (diff) |
video/ps3eye: stub
Diffstat (limited to 'video-ps3eye/module.cpp')
-rw-r--r-- | video-ps3eye/module.cpp | 50 |
1 files changed, 50 insertions, 0 deletions
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; +} + |