more precise using PIIODevice::reading_now flag, Warning! one should use it manually now

small enum fix for pip_cmg
This commit is contained in:
2022-10-27 20:58:43 +03:00
parent 609ff8e9c8
commit e46cfdc4bd
11 changed files with 51 additions and 18 deletions

View File

@@ -322,15 +322,18 @@ bool PIUSB::closeDevice() {
ssize_t PIUSB::readDevice(void * read_to, ssize_t max_size) {
#ifdef PIP_USB
if (isClosed() || ep_read.isNull()) return -1;
ssize_t ret = -1;
reading_now = true;
switch (ep_read.transfer_type) {
case Endpoint::Bulk:
/*piCoutObj << "bulk read" << max_size;*/
return usb_bulk_read(hdev, ep_read.address, (char * )read_to, max_size, timeout_r);
ret = usb_bulk_read(hdev, ep_read.address, (char * )read_to, max_size, timeout_r);
case Endpoint::Interrupt:
return usb_interrupt_read(hdev, ep_read.address, (char * )read_to, max_size, timeout_r);
ret = usb_interrupt_read(hdev, ep_read.address, (char * )read_to, max_size, timeout_r);
default: break;
}
return -1;
reading_now = false;
return ret;
#else
return -1;
#endif