aboutsummaryrefslogtreecommitdiff
path: root/lib/stream/builtin/libusb.c.draft
diff options
context:
space:
mode:
Diffstat (limited to 'lib/stream/builtin/libusb.c.draft')
-rw-r--r--lib/stream/builtin/libusb.c.draft115
1 files changed, 0 insertions, 115 deletions
diff --git a/lib/stream/builtin/libusb.c.draft b/lib/stream/builtin/libusb.c.draft
deleted file mode 100644
index 122859d..0000000
--- a/lib/stream/builtin/libusb.c.draft
+++ /dev/null
@@ -1,115 +0,0 @@
-#include "../internals.h"
-#ifndef LIBTIO_DISABLED_LIBUSB
-# include <libusb.h>
-
-/* `free_context()`: free the libusb context passed as a `void *`. */
-
-TIO_HOOK(void) free_context(void *vcontext)
-{
- libusb_exit((libusb_context *)context);
-}
-
-/* `get_context()`: get the default libusb context. */
-
-TIO_LOCAL libusb_context *tio_libusb_context = NULL;
-
-TIO_LOCAL int get_context(libusb_context **context)
-{
- libusb_context *ctx;
- int lerr, err;
-
- if (tio_libusb_context) {
- *context = tio_libusb_context;
- return (tio_ok);
- }
-
- if ((lerr = libusb_init(&ctx)))
- return (tio_error_unknown);
- if ((err = tio_add_exit(free_context, ctx))) {
- libusb_exit(&ctx);
- return (err);
- }
-
- tio_libusb_context = ctx;
- *context = ctx;
- return (tio_ok);
-}
-
-/* `find_descriptor()`: find a descriptor out of bus/host number. */
-
-TIO_LOCAL int find_descriptor(int bus, int addr,
- libusb_device *device, struct libusb_device_descriptor *descp)
-{
- libusb_context *ctx = NULL;
- int device_count, err;
-
- /* Open up the context. */
-
- if ((err = get_context(&ctx)
-
- if (libusb_init(&context)) {
- msg((ll_fatal, "Couldn't create a libusb context."));
- err = tio_error_alloc;
- goto fail;
- }
-
- /* Get the device list. */
-
- device_count = libusb_get_device_list(context, &device_list);
- if (device_count < 0) {
- msg((ll_fatal, "couldn't get device list."));
- err = tio_error_nodevice; /* FIXME */
- goto fail;
- }
-
- /* Look for the device. */
-
- for (id = 0; id < device_count; id++) {
- /* Check the position on the bus. */
-
- if (bus >= 0) {
- if (libusb_get_bus_number(device_list[id]) != bus)
- continue;
-
- if (addr >= 0
- && libusb_get_device_address(device_list[id]) != addr)
- continue;
- }
-
- /* Get the device descriptor. */
-
- if (libusb_get_device_descriptor(device_list[id], descp))
- continue ;
-
- device = device_list[id];
- break;
- }
-
- err = tio_no_error;
-fail:
- libusb_free_device_list(device_list, 1);
- return (err);
-}
-
-/* `tio_open_libusb()`: open a USB device. */
-
-int TIO_EXPORT tio_open_libusb(tio_stream_t **streamp, int bus, int addr)
-{
- int err = 0;
- libusb_context *context = NULL;
- libusb_device *device = NULL;
-
- /* Get the device list. */
-
- find_descriptor(bus, addr, &device, &descp
-}
-
-/* `tio_open_libusb_device()`: find a USB device. */
-
-int TIO_EXPORT tio_open_libusb_device(tio_stream_t **streamp,
- libusb_device *device)
-{
- int err = 0;
-}
-
-#endif