CDC and HID write() routines now return non-void - brought in line with new write behavior

This commit is contained in:
Zach Eveland 2011-08-30 11:04:34 -04:00
parent 351a78e01e
commit 481fdeab79
3 changed files with 11 additions and 7 deletions

View File

@ -153,7 +153,7 @@ void Serial_::flush(void)
USB_Flush(CDC_TX);
}
void Serial_::write(uint8_t c)
size_t Serial_::write(uint8_t c)
{
/* only try to send bytes if the high-level CDC connection itself
is open (not just the pipe) - the OS should set lineState when the port
@ -164,8 +164,11 @@ void Serial_::write(uint8_t c)
// TODO - ZE - check behavior on different OSes and test what happens if an
// open connection isn't broken cleanly (cable is yanked out, host dies
// or locks up, or host virtual serial port hangs)
if (_usbLineInfo.lineState > 0)
if (_usbLineInfo.lineState > 0) {
USB_Send(CDC_TX,&c,1);
return 1;
}
return 0;
}
Serial_ Serial;

View File

@ -388,7 +388,7 @@ const uint8_t _asciimap[128] =
};
uint8_t USBPutChar(uint8_t c);
void Keyboard_::write(uint8_t c)
size_t Keyboard_::write(uint8_t c)
{
// Keydown
{
@ -398,10 +398,10 @@ void Keyboard_::write(uint8_t c)
else
{
if (c >= 128)
return;
return 0;
c = pgm_read_byte(_asciimap + c);
if (!c)
return;
return 0;
if (c & 0x80)
{
keys.modifiers |= KEY_MODIFIER_LEFT_SHIFT;
@ -416,6 +416,7 @@ void Keyboard_::write(uint8_t c)
KeyReport keys = {0};
sendReport(&keys);
}
return 1;
}
#endif

View File

@ -33,7 +33,7 @@ public:
virtual int peek(void);
virtual int read(void);
virtual void flush(void);
virtual void write(uint8_t);
virtual size_t write(uint8_t);
};
extern Serial_ Serial;
@ -93,7 +93,7 @@ public:
Keyboard_();
void sendReport(KeyReport* keys);
void setKeyMap(KeyMap* keyMap);
virtual void write(uint8_t);
virtual size_t write(uint8_t);
};
extern Keyboard_ Keyboard;