Add FatFS library to the Webserver project, extend the HTTP server so that it now...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Common / MIDI.h
index 05bd846..d081303 100644 (file)
@@ -1,21 +1,21 @@
 /*\r
              LUFA Library\r
 /*\r
              LUFA Library\r
-     Copyright (C) Dean Camera, 2009.\r
+     Copyright (C) Dean Camera, 2010.\r
               \r
   dean [at] fourwalledcubicle [dot] com\r
       www.fourwalledcubicle.com\r
 */\r
 \r
 /*\r
               \r
   dean [at] fourwalledcubicle [dot] com\r
       www.fourwalledcubicle.com\r
 */\r
 \r
 /*\r
-  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
-\r
-  Permission to use, copy, modify, and distribute this software\r
-  and its documentation for any purpose and without fee is hereby\r
-  granted, provided that the above copyright notice appear in all\r
-  copies and that both that the copyright notice and this\r
-  permission notice and warranty disclaimer appear in supporting\r
-  documentation, and that the name of the author not be used in\r
-  advertising or publicity pertaining to distribution of the\r
+  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
+\r
+  Permission to use, copy, modify, distribute, and sell this \r
+  software and its documentation for any purpose is hereby granted\r
+  without fee, provided that the above copyright notice appear in \r
+  all copies and that both that the copyright notice and this\r
+  permission notice and warranty disclaimer appear in supporting \r
+  documentation, and that the name of the author not be used in \r
+  advertising or publicity pertaining to distribution of the \r
   software without specific, written prior permission.\r
 \r
   The author disclaim all warranties with regard to this\r
   software without specific, written prior permission.\r
 \r
   The author disclaim all warranties with regard to this\r
 */\r
 \r
 /** \ingroup Group_USBClassMIDI\r
 */\r
 \r
 /** \ingroup Group_USBClassMIDI\r
+ *  @defgroup Group_USBClassMIDICommon  Common Class Definitions\r
+ *\r
+ *  \section Module Description\r
+ *  Constants, Types and Enum definitions that are common to both Device and Host modes for the USB\r
+ *  MIDI Class.\r
+ *\r
  *  @{\r
  */\r
 \r
  *  @{\r
  */\r
 \r
                #define MIDI_JACKTYPE_EXTERNAL      0x02\r
 \r
                /** MIDI command for a note on (activation) event */\r
                #define MIDI_JACKTYPE_EXTERNAL      0x02\r
 \r
                /** MIDI command for a note on (activation) event */\r
-               #define MIDI_COMMAND_NOTE_ON        0x09\r
+               #define MIDI_COMMAND_NOTE_ON        0x90\r
 \r
                /** MIDI command for a note off (deactivation) event */\r
 \r
                /** MIDI command for a note off (deactivation) event */\r
-               #define MIDI_COMMAND_NOTE_OFF       0x08\r
+               #define MIDI_COMMAND_NOTE_OFF       0x80\r
 \r
                /** Standard key press velocity value used for all note events */\r
                #define MIDI_STANDARD_VELOCITY      64\r
 \r
                /** Standard key press velocity value used for all note events */\r
                #define MIDI_STANDARD_VELOCITY      64\r
@@ -71,7 +77,7 @@
                /** Convenience macro. MIDI channels are numbered from 1-10 (natural numbers) however the logical channel\r
                 *  addresses are zero-indexed. This converts a natural MIDI channel number into the logical channel address.\r
                 *\r
                /** Convenience macro. MIDI channels are numbered from 1-10 (natural numbers) however the logical channel\r
                 *  addresses are zero-indexed. This converts a natural MIDI channel number into the logical channel address.\r
                 *\r
-                *  \param channel  MIDI channel number to address\r
+                *  \param[in] channel  MIDI channel number to address\r
                 */\r
                #define MIDI_CHANNEL(channel)        (channel - 1)\r
                \r
                 */\r
                #define MIDI_CHANNEL(channel)        (channel - 1)\r
                \r
@@ -87,7 +93,7 @@
                        \r
                        uint16_t                  AudioSpecification; /**< Binary coded decimal value, indicating the supported Audio Class specification version */\r
                        uint16_t                  TotalLength; /**< Total length of the Audio class specific descriptors, including this descriptor */\r
                        \r
                        uint16_t                  AudioSpecification; /**< Binary coded decimal value, indicating the supported Audio Class specification version */\r
                        uint16_t                  TotalLength; /**< Total length of the Audio class specific descriptors, including this descriptor */\r
-               } USB_AudioInterface_MIDI_AS_t;\r
+               } USB_MIDI_AudioInterface_AS_t;\r
                \r
                /** Type define for an Audio class specific MIDI IN jack. This gives information to the host on a MIDI input, either\r
                 *  a physical input jack, or a logical jack (receiving input data internally, or from the host via an endpoint).\r
                \r
                /** Type define for an Audio class specific MIDI IN jack. This gives information to the host on a MIDI input, either\r
                 *  a physical input jack, or a logical jack (receiving input data internally, or from the host via an endpoint).\r
                /** Type define for a USB MIDI event packet, used to encapsulate sent and received MIDI messages from a USB MIDI interface. */\r
                typedef struct\r
                {\r
                /** Type define for a USB MIDI event packet, used to encapsulate sent and received MIDI messages from a USB MIDI interface. */\r
                typedef struct\r
                {\r
-                       unsigned char Command     : 4; /**< MIDI command being sent or received in the event packet */\r
+                       unsigned char Command     : 4; /**< Upper nibble of the MIDI command being sent or received in the event packet */\r
                        unsigned char CableNumber : 4; /**< Virtual cable number of the event being sent or received in the given MIDI interface */\r
                        \r
                        uint8_t Data1; /**< First byte of data in the MIDI event */\r
                        uint8_t Data2; /**< Second byte of data in the MIDI event */\r
                        uint8_t Data3; /**< Third byte of data in the MIDI event */             \r
                        unsigned char CableNumber : 4; /**< Virtual cable number of the event being sent or received in the given MIDI interface */\r
                        \r
                        uint8_t Data1; /**< First byte of data in the MIDI event */\r
                        uint8_t Data2; /**< Second byte of data in the MIDI event */\r
                        uint8_t Data3; /**< Third byte of data in the MIDI event */             \r
-               } USB_MIDI_EventPacket_t;\r
-\r
-               /** Class state structure. An instance of this structure should be made for each MIDI interface\r
-                *  within the user application, and passed to each of the MIDI class driver functions as the\r
-                *  MIDIInterfaceInfo parameter. The contents of this structure should be set to their correct\r
-                *  values when used, or ommitted to force the library to use default values.\r
-                */\r
-               typedef struct\r
-               {\r
-                       uint8_t  StreamingInterfaceNumber; /**< Index of the Audio Streaming interface within the device this structure controls */\r
-\r
-                       uint8_t  DataINEndpointNumber; /**< Endpoint number of the incomming MIDI data, if available (zero if unused) */\r
-                       uint16_t DataINEndpointSize; /**< Size in bytes of the incomming MIDI data endpoint, if available (zero if unused) */\r
-\r
-                       uint8_t  DataOUTEndpointNumber; /**< Endpoint number of the outgoing MIDI data, if available (zero if unused) */\r
-                       uint16_t DataOUTEndpointSize; /**< Size in bytes of the outgoing MIDI data endpoint, if available (zero if unused) */\r
-               } USB_ClassInfo_MIDI_t;\r
+               } MIDI_EventPacket_t;\r
 \r
        /* Disable C linkage for C++ Compilers: */\r
                #if defined(__cplusplus)\r
 \r
        /* Disable C linkage for C++ Compilers: */\r
                #if defined(__cplusplus)\r