From 481fdeab797d449f6b82473b1e377c495224cff7 Mon Sep 17 00:00:00 2001 From: Zach Eveland Date: Tue, 30 Aug 2011 11:04:34 -0400 Subject: CDC and HID write() routines now return non-void - brought in line with new write behavior --- cores/arduino/CDC.cpp | 7 +++++-- cores/arduino/HID.cpp | 7 ++++--- cores/arduino/USBAPI.h | 4 ++-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/cores/arduino/CDC.cpp b/cores/arduino/CDC.cpp index b04c79b..1f1fcb5 100644 --- a/cores/arduino/CDC.cpp +++ b/cores/arduino/CDC.cpp @@ -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; diff --git a/cores/arduino/HID.cpp b/cores/arduino/HID.cpp index b042895..36e9b67 100644 --- a/cores/arduino/HID.cpp +++ b/cores/arduino/HID.cpp @@ -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 \ No newline at end of file diff --git a/cores/arduino/USBAPI.h b/cores/arduino/USBAPI.h index 4d26d23..b833009 100644 --- a/cores/arduino/USBAPI.h +++ b/cores/arduino/USBAPI.h @@ -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; -- cgit v1.2.3-18-g5258