All checks were successful
Build ptprnt / build (push) Successful in 3m0s
109 lines
3.1 KiB
C++
109 lines
3.1 KiB
C++
/*
|
|
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 <https://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
#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
|