[PUSB] Fixed checks on return values

This commit is contained in:
Cristian Maglie 2015-10-01 12:35:24 +02:00
parent 10512b3f9b
commit bad9b58ce3
3 changed files with 23 additions and 15 deletions

View File

@ -29,19 +29,23 @@ PluggableUSB_ PluggableUSB;
int PluggableUSB_::getInterface(uint8_t* interfaceNum)
{
int ret = 0;
int sent = 0;
PUSBListNode* node;
for (node = rootNode; node; node = node->next) {
ret = node->getInterface(interfaceNum);
int res = node->getInterface(interfaceNum);
if (res == -1)
return -1;
sent += res;
}
return ret;
return sent;
}
int PluggableUSB_::getDescriptor(int8_t t)
int PluggableUSB_::getDescriptor(int8_t type)
{
PUSBListNode* node;
for (node = rootNode; node; node = node->next) {
int ret = node->getDescriptor(t);
int ret = node->getDescriptor(type);
// ret!=0 -> request has been processed
if (ret)
return ret;
}

View File

@ -35,19 +35,23 @@ int HID_::getInterface(uint8_t* interfaceNum)
return USB_SendControl(0, &hidInterface, sizeof(hidInterface));
}
int HID_::getDescriptor(int8_t t)
int HID_::getDescriptor(int8_t type)
{
if (HID_REPORT_DESCRIPTOR_TYPE == t) {
if (HID_REPORT_DESCRIPTOR_TYPE == type) {
HIDDescriptorListNode* current = rootNode;
int total = 0;
while(current != NULL) {
total += USB_SendControl(TRANSFER_PGM,current->data,current->length);
while (current != NULL) {
int res = USB_SendControl(TRANSFER_PGM, current->data, current->length);
if (res == -1)
return -1;
total += res;
current = current->next;
}
return total;
} else {
return 0;
}
// Ignored
return 0;
}
void HID_::AppendDescriptor(HIDDescriptorListNode *node)
@ -71,9 +75,9 @@ void HID_::SendReport(uint8_t id, const void* data, int len)
USB_Send(endpoint() | TRANSFER_RELEASE,data,len);
}
bool HID_::setup(USBSetup& setup, uint8_t i)
bool HID_::setup(USBSetup& setup, uint8_t interfaceNum)
{
if (interface() != i) {
if (interface() != interfaceNum) {
return false;
} else {
uint8_t r = setup.bRequest;

View File

@ -83,8 +83,8 @@ public:
protected:
// Implementation of the PUSBListNode
int getInterface(uint8_t* interfaceNum);
int getDescriptor(int8_t t);
bool setup(USBSetup& setup, uint8_t i);
int getDescriptor(int8_t type);
bool setup(USBSetup& setup, uint8_t interfaceNum);
private:
HIDDescriptor hidInterface;