aboutsummaryrefslogtreecommitdiffstats
path: root/LUFA/Drivers
diff options
context:
space:
mode:
authorDean Camera <dean@fourwalledcubicle.com>2009-06-16 07:17:22 +0000
committerDean Camera <dean@fourwalledcubicle.com>2009-06-16 07:17:22 +0000
commitdcf303762ad6b1401d2dcfd763764b400dcee2f7 (patch)
tree27d6d4cb5aaeecf0dcc5841c4af83d88096c054a /LUFA/Drivers
parent39d07c3da045a3d739f9977101f8a81f0b8ff0e1 (diff)
downloadlufa-dcf303762ad6b1401d2dcfd763764b400dcee2f7.tar.gz
lufa-dcf303762ad6b1401d2dcfd763764b400dcee2f7.tar.bz2
lufa-dcf303762ad6b1401d2dcfd763764b400dcee2f7.zip
Pipe_GetErrorFlags() now returns additional error flags for overflow and underflow errors.
Change MIDI demos to use real MIDI command values, and shift for the USB wrapper, rather than shift for the MIDI bytes. This is a little confusing for the MIDI USB wrapper, but allows for the use of real standardized MIDI command values.
Diffstat (limited to 'LUFA/Drivers')
-rw-r--r--LUFA/Drivers/USB/Class/Common/MIDI.h4
-rw-r--r--LUFA/Drivers/USB/LowLevel/Pipe.h11
2 files changed, 12 insertions, 3 deletions
diff --git a/LUFA/Drivers/USB/Class/Common/MIDI.h b/LUFA/Drivers/USB/Class/Common/MIDI.h
index 05bd84630..f768ba238 100644
--- a/LUFA/Drivers/USB/Class/Common/MIDI.h
+++ b/LUFA/Drivers/USB/Class/Common/MIDI.h
@@ -60,10 +60,10 @@
#define MIDI_JACKTYPE_EXTERNAL 0x02
/** MIDI command for a note on (activation) event */
- #define MIDI_COMMAND_NOTE_ON 0x09
+ #define MIDI_COMMAND_NOTE_ON 0x90
/** MIDI command for a note off (deactivation) event */
- #define MIDI_COMMAND_NOTE_OFF 0x08
+ #define MIDI_COMMAND_NOTE_OFF 0x80
/** Standard key press velocity value used for all note events */
#define MIDI_STANDARD_VELOCITY 64
diff --git a/LUFA/Drivers/USB/LowLevel/Pipe.h b/LUFA/Drivers/USB/LowLevel/Pipe.h
index f3da9d1ce..62cbe65a2 100644
--- a/LUFA/Drivers/USB/LowLevel/Pipe.h
+++ b/LUFA/Drivers/USB/LowLevel/Pipe.h
@@ -77,6 +77,12 @@
/* Public Interface - May be used in end-application: */
/* Macros: */
+ /** Mask for \ref Pipe_GetErrorFlags(), indicating that an overflow error occurred in the pipe on the received data. */
+ #define PIPE_ERRORFLAG_OVERFLOW (1 << 6)
+
+ /** Mask for \ref Pipe_GetErrorFlags(), indicating that an underflow error occurred in the pipe on the received data. */
+ #define PIPE_ERRORFLAG_UNDERFLOW (1 << 5)
+
/** Mask for \ref Pipe_GetErrorFlags(), indicating that a CRC error occurred in the pipe on the received data. */
#define PIPE_ERRORFLAG_CRC16 (1 << 4)
@@ -426,7 +432,10 @@
#define Pipe_ClearErrorFlags() MACROS{ UPERRX = 0; }MACROE
- #define Pipe_GetErrorFlags() UPERRX
+ #define Pipe_GetErrorFlags() ((UPERRX & (PIPE_ERRORFLAG_CRC16 | PIPE_ERRORFLAG_TIMEOUT | \
+ PIPE_ERRORFLAG_PID | PIPE_ERRORFLAG_DATAPID | \
+ PIPE_ERRORFLAG_DATATGL)) | \
+ (UPSTAX & PIPE_ERRORFLAG_OVERFLOW | PIPE_ERRORFLAG_UNDERFLOW))
#define Pipe_IsReadWriteAllowed() ((UPINTX & (1 << RWAL)) ? true : false)