/* ptrnt - print labels on linux Copyright (C) 2025 Moritz Martinius This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include "LibUsbWrapper.hpp" #include "libusb.h" namespace libusbwrap { // LibUsbDeviceDeleter void LibUsbDeviceDeleter::operator()(libusb_device* dev) const { if (dev && wrapper) { wrapper->unrefDevice(dev); } } // LibUsbWrapper int LibUsbWrapper::init(libusb_context** ctx) { return libusb_init(ctx); } void LibUsbWrapper::exit(libusb_context* ctx) { libusb_exit(ctx); } ssize_t LibUsbWrapper::getDeviceList(libusb_context* ctx, libusb_device*** list) { return libusb_get_device_list(ctx, list); } void LibUsbWrapper::freeDeviceList(libusb_device** list, int unrefDevices) { libusb_free_device_list(list, unrefDevices); } void LibUsbWrapper::refDevice(libusb_device* dev) { libusb_ref_device(dev); } void LibUsbWrapper::unrefDevice(libusb_device* dev) { libusb_unref_device(dev); } int LibUsbWrapper::getDeviceDescriptor(libusb_device* dev, libusb_device_descriptor* desc) { return libusb_get_device_descriptor(dev, desc); } int LibUsbWrapper::open(libusb_device* dev, libusb_device_handle** handle) { return libusb_open(dev, handle); } void LibUsbWrapper::close(libusb_device_handle* handle) { libusb_close(handle); } int LibUsbWrapper::getSpeed(libusb_device* dev) { return libusb_get_device_speed(dev); } uint8_t LibUsbWrapper::getBusNumber(libusb_device* dev) { return libusb_get_bus_number(dev); } uint8_t LibUsbWrapper::getPortNumber(libusb_device* dev) { return libusb_get_port_number(dev); } int LibUsbWrapper::kernelDriverActive(libusb_device_handle* handle, int interfaceNo) { return libusb_kernel_driver_active(handle, interfaceNo); } int LibUsbWrapper::detachKernelDriver(libusb_device_handle* handle, int interfaceNo) { return libusb_detach_kernel_driver(handle, interfaceNo); } int LibUsbWrapper::claimInterface(libusb_device_handle* handle, int interfaceNo) { return libusb_claim_interface(handle, interfaceNo); } int LibUsbWrapper::releaseInterface(libusb_device_handle* handle, int interfaceNo) { return libusb_release_interface(handle, interfaceNo); } int LibUsbWrapper::bulkTransfer(libusb_device_handle* handle, uint8_t endpoint, unsigned char* data, int length, int* transferred, unsigned int timeout) { return libusb_bulk_transfer(handle, endpoint, data, length, transferred, timeout); } const char* LibUsbWrapper::errorName(int errorCode) { return libusb_error_name(errorCode); } } // namespace libusbwrap