[gnoduino: 92/237] CDC and HID write() routines now return non-void - brought in line with new write behavior



commit 6456e255262da464df22966be0c6c8bffab4aeb3
Author: Zach Eveland <zeveland blacklabel-development com>
Date:   Tue Aug 30 11:04:34 2011 -0400

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

 arduino/cores/arduino/CDC.cpp  |    7 +++++--
 arduino/cores/arduino/HID.cpp  |    7 ++++---
 arduino/cores/arduino/USBAPI.h |    4 ++--
 3 files changed, 11 insertions(+), 7 deletions(-)
---
diff --git a/arduino/cores/arduino/CDC.cpp b/arduino/cores/arduino/CDC.cpp
index b04c79b..1f1fcb5 100644
--- a/arduino/cores/arduino/CDC.cpp
+++ b/arduino/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/arduino/cores/arduino/HID.cpp b/arduino/cores/arduino/HID.cpp
index b042895..36e9b67 100644
--- a/arduino/cores/arduino/HID.cpp
+++ b/arduino/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/arduino/cores/arduino/USBAPI.h b/arduino/cores/arduino/USBAPI.h
index 4d26d23..b833009 100644
--- a/arduino/cores/arduino/USBAPI.h
+++ b/arduino/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;
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]