projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Partial Commit: Remove now empty Projects\Incomplete directory and add the new AVRISP...
[pub/USBasp.git]
/
LUFA
/
Drivers
/
USB
/
Class
/
Device
/
MIDI.c
diff --git
a/LUFA/Drivers/USB/Class/Device/MIDI.c
b/LUFA/Drivers/USB/Class/Device/MIDI.c
index
9b4cd4b
..
79d9e74
100644
(file)
--- a/
LUFA/Drivers/USB/Class/Device/MIDI.c
+++ b/
LUFA/Drivers/USB/Class/Device/MIDI.c
@@
-28,24
+28,34
@@
this software.
\r
*/
\r
\r
this software.
\r
*/
\r
\r
+#include "../../HighLevel/USBMode.h"
\r
+#if defined(USB_CAN_BE_DEVICE)
\r
+
\r
#include "MIDI.h"
\r
\r
#include "MIDI.h"
\r
\r
-bool USB_MIDI_ConfigureEndpoints(USB_ClassInfo_MIDI_t* MIDIInterfaceInfo)
\r
+void MIDI_Device_ProcessControlRequest(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo)
\r
+{
\r
+
\r
+}
\r
+
\r
+bool MIDI_Device_ConfigureEndpoints(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo)
\r
{
\r
{
\r
- if (MIDIInterfaceInfo->DataINEndpointNumber)
\r
+ memset(&MIDIInterfaceInfo->State, 0x00, sizeof(MIDIInterfaceInfo->State));
\r
+
\r
+ if (MIDIInterfaceInfo->Config.DataINEndpointNumber)
\r
{
\r
{
\r
- if (!(Endpoint_ConfigureEndpoint(MIDIInterfaceInfo->DataINEndpointNumber, EP_TYPE_BULK,
\r
- ENDPOINT_DIR_IN, MIDIInterfaceInfo->DataINEndpointSize,
\r
+ if (!(Endpoint_ConfigureEndpoint(MIDIInterfaceInfo->
Config.
DataINEndpointNumber, EP_TYPE_BULK,
\r
+ ENDPOINT_DIR_IN, MIDIInterfaceInfo->
Config.
DataINEndpointSize,
\r
ENDPOINT_BANK_SINGLE)))
\r
{
\r
return false;
\r
}
\r
}
\r
\r
ENDPOINT_BANK_SINGLE)))
\r
{
\r
return false;
\r
}
\r
}
\r
\r
- if (MIDIInterfaceInfo->DataOUTEndpointNumber)
\r
+ if (MIDIInterfaceInfo->
Config.
DataOUTEndpointNumber)
\r
{
\r
{
\r
- if (!(Endpoint_ConfigureEndpoint(MIDIInterfaceInfo->DataOUTEndpointNumber, EP_TYPE_BULK,
\r
- ENDPOINT_DIR_OUT, MIDIInterfaceInfo->DataOUTEndpointSize,
\r
+ if (!(Endpoint_ConfigureEndpoint(MIDIInterfaceInfo->
Config.
DataOUTEndpointNumber, EP_TYPE_BULK,
\r
+ ENDPOINT_DIR_OUT, MIDIInterfaceInfo->
Config.
DataOUTEndpointSize,
\r
ENDPOINT_BANK_SINGLE)))
\r
{
\r
return false;
\r
ENDPOINT_BANK_SINGLE)))
\r
{
\r
return false;
\r
@@
-55,50
+65,45
@@
bool USB_MIDI_ConfigureEndpoints(USB_ClassInfo_MIDI_t* MIDIInterfaceInfo)
return true;
\r
}
\r
\r
return true;
\r
}
\r
\r
-void USB_MIDI_SendNoteChange(USB_ClassInfo_MIDI_t* MIDIInterfaceInfo, const uint8_t Pitch, const bool OnOff,
\r
- const uint8_t CableID, const uint8_t Channel)
\r
+void MIDI_Device_USBTask(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo)
\r
{
\r
{
\r
- if (!(USB_IsConnected))
\r
- return;
\r
-
\r
- Endpoint_SelectEndpoint(MIDIInterfaceInfo->DataINEndpointNumber);
\r
- while (!(Endpoint_IsReadWriteAllowed()));
\r
-
\r
- uint8_t Command = ((OnOff)? MIDI_COMMAND_NOTE_ON : MIDI_COMMAND_NOTE_OFF);
\r
\r
\r
- Endpoint_Write_Byte((CableID << 4) | (Command >> 4));
\r
-
\r
- Endpoint_Write_Byte(Command | Channel);
\r
- Endpoint_Write_Byte(Pitch);
\r
- Endpoint_Write_Byte(MIDI_STANDARD_VELOCITY);
\r
-
\r
- Endpoint_ClearIN();
\r
}
\r
\r
}
\r
\r
-
void USB_MIDI_SendEventPacket(USB_ClassInfo_MIDI_t* MIDIInterfaceInfo, USB_MIDI_EventPacket_t*
Event)
\r
+
uint8_t MIDI_Device_SendEventPacket(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo, MIDI_EventPacket_t* const
Event)
\r
{
\r
{
\r
- if (
!(USB_IsConnected)
)
\r
- return;
\r
+ if (
USB_DeviceState != DEVICE_STATE_Configured
)
\r
+ return
ENDPOINT_RWSTREAM_NoError
;
\r
\r
\r
- Endpoint_SelectEndpoint(MIDIInterfaceInfo->DataINEndpointNumber);
\r
- while (!(Endpoint_IsReadWriteAllowed()));
\r
+ Endpoint_SelectEndpoint(MIDIInterfaceInfo->Config.DataINEndpointNumber);
\r
+
\r
+ if (Endpoint_IsReadWriteAllowed());
\r
+ {
\r
+ uint8_t ErrorCode;
\r
\r
\r
- Endpoint_Write_Stream_LE(Event, sizeof(USB_MIDI_EventPacket_t), NO_STREAM_CALLBACK);
\r
- Endpoint_ClearIN();
\r
+ if ((ErrorCode = Endpoint_Write_Stream_LE(Event, sizeof(Event), NO_STREAM_CALLBACK)) != ENDPOINT_RWSTREAM_NoError)
\r
+ return ErrorCode;
\r
+
\r
+ Endpoint_ClearIN();
\r
+ }
\r
+
\r
+ return ENDPOINT_RWSTREAM_NoError;
\r
}
\r
\r
}
\r
\r
-bool
USB_MIDI_ReceiveEventPacket(USB_ClassInfo_MIDI_t* MIDIInterfaceInfo, USB_MIDI_EventPacket_t*
Event)
\r
+bool
MIDI_Device_ReceiveEventPacket(USB_ClassInfo_MIDI_Device_t* const MIDIInterfaceInfo, MIDI_EventPacket_t* const
Event)
\r
{
\r
{
\r
- if (
!(USB_IsConnected)
)
\r
+ if (
USB_DeviceState != DEVICE_STATE_Configured
)
\r
return false;
\r
\r
return false;
\r
\r
- Endpoint_SelectEndpoint(MIDIInterfaceInfo->DataOUTEndpointNumber);
\r
+ Endpoint_SelectEndpoint(MIDIInterfaceInfo->
Config.
DataOUTEndpointNumber);
\r
\r
if (!(Endpoint_IsReadWriteAllowed()))
\r
return false;
\r
\r
\r
if (!(Endpoint_IsReadWriteAllowed()))
\r
return false;
\r
\r
- Endpoint_Read_Stream_LE(Event, sizeof(
USB_MIDI_EventPacket_
t), NO_STREAM_CALLBACK);
\r
+ Endpoint_Read_Stream_LE(Event, sizeof(
Even
t), NO_STREAM_CALLBACK);
\r
Endpoint_ClearOUT();
\r
\r
return true;
\r
}
\r
Endpoint_ClearOUT();
\r
\r
return true;
\r
}
\r
+
\r
+#endif
\r