aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZach Eveland <zeveland@blacklabel-development.com>2011-08-30 11:04:34 -0400
committerZach Eveland <zeveland@blacklabel-development.com>2011-08-30 11:04:34 -0400
commit481fdeab797d449f6b82473b1e377c495224cff7 (patch)
tree2cddbbbc0c6be94842a1e0f5e92e709cfdc8e751
parent351a78e01e8e61f5d1423f30b17f209151fcf79d (diff)
CDC and HID write() routines now return non-void - brought in line with new write behavior
-rw-r--r--cores/arduino/CDC.cpp7
-rw-r--r--cores/arduino/HID.cpp7
-rw-r--r--cores/arduino/USBAPI.h4
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;