~ruther/qmk_firmware

b191f8c60fbbaf1fb55d67edb86a6c33489b2ce3 — Jack Humbert 10 years ago 04885a3
midi
3 files changed, 15 insertions(+), 14 deletions(-)

M protocol/lufa/descriptor.c
M protocol/lufa/descriptor.h
M protocol/lufa/lufa.c
M protocol/lufa/descriptor.c => protocol/lufa/descriptor.c +3 -3
@@ 492,7 492,7 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
        {
            .Header                   = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},

            .InterfaceNumber          = (NKRO_INTERFACE + 1),
            .InterfaceNumber          = MIDI_INTERFACE,
            .AlternateSetting         = 0,

            .TotalEndpoints           = 0,


@@ 513,14 513,14 @@ const USB_Descriptor_Configuration_t PROGMEM ConfigurationDescriptor =
            .TotalLength              = sizeof(USB_Audio_Descriptor_Interface_AC_t),

            .InCollection             = 1,
            .InterfaceNumber          = (NKRO_INTERFACE + 2),
            .InterfaceNumber          = MIDI2_INTERFACE,
        },

    .Audio_StreamInterface =
        {
            .Header                   = {.Size = sizeof(USB_Descriptor_Interface_t), .Type = DTYPE_Interface},

            .InterfaceNumber          = (NKRO_INTERFACE + 2),
            .InterfaceNumber          = MIDI2_INTERFACE,
            .AlternateSetting         = 0,

            .TotalEndpoints           = 2,

M protocol/lufa/descriptor.h => protocol/lufa/descriptor.h +3 -2
@@ 136,12 136,13 @@ typedef struct

#ifdef MIDI_ENABLE
#   define MIDI_INTERFACE           (NKRO_INTERFACE + 1)
#   define MIDI2_INTERFACE           (NKRO_INTERFACE + 2)
#else
#   define MIDI_INTERFACE           NKRO_INTERFACE
#   define MIDI2_INTERFACE           NKRO_INTERFACE
#endif

/* nubmer of interfaces */
#define TOTAL_INTERFACES            (MIDI_INTERFACE + 1)
#define TOTAL_INTERFACES            MIDI2_INTERFACE + 1


// Endopoint number and size

M protocol/lufa/lufa.c => protocol/lufa/lufa.c +9 -9
@@ 94,7 94,7 @@ USB_ClassInfo_MIDI_Device_t USB_MIDI_Interface =
{
  .Config =
  {
    .StreamingInterfaceNumber = (NKRO_INTERFACE + 2),
    .StreamingInterfaceNumber = MIDI2_INTERFACE,
    .DataINEndpoint           =
    {
      .Address          = (ENDPOINT_DIR_IN | MIDI_STREAM_IN_EPNUM),


@@ 289,12 289,12 @@ void EVENT_USB_Device_ConfigurationChanged(void)
#endif

#ifdef MIDI_ENABLE
    // ConfigSuccess &= MIDI_Device_ConfigureEndpoints(&USB_MIDI_Interface);
    ConfigSuccess &= MIDI_Device_ConfigureEndpoints(&USB_MIDI_Interface);

    ConfigSuccess &= ENDPOINT_CONFIG(MIDI_STREAM_IN_EPNUM, EP_TYPE_BULK, ENDPOINT_DIR_IN,
                                                MIDI_STREAM_EPSIZE, ENDPOINT_BANK_SINGLE);
    ConfigSuccess &= ENDPOINT_CONFIG(MIDI_STREAM_OUT_EPNUM, EP_TYPE_BULK, ENDPOINT_DIR_OUT,
                                                MIDI_STREAM_EPSIZE, ENDPOINT_BANK_SINGLE);
    // ConfigSuccess &= ENDPOINT_CONFIG(MIDI_STREAM_IN_EPNUM, EP_TYPE_BULK, ENDPOINT_DIR_IN,
    //                                             MIDI_STREAM_EPSIZE, ENDPOINT_BANK_SINGLE);
    // ConfigSuccess &= ENDPOINT_CONFIG(MIDI_STREAM_OUT_EPNUM, EP_TYPE_BULK, ENDPOINT_DIR_OUT,
    //                                             MIDI_STREAM_EPSIZE, ENDPOINT_BANK_SINGLE);
#endif

}


@@ 614,7 614,7 @@ void usb_send_func(MidiDevice * device, uint16_t cnt, uint8_t byte0, uint8_t byt

  uint8_t cable = 0;

Endpoint_SelectEndpoint(MIDI_STREAM_IN_EPNUM);
// Endpoint_SelectEndpoint(MIDI_STREAM_IN_EPNUM);

  //if the length is undefined we assume it is a SYSEX message
  if (midi_packet_length(byte0) == UNDEFINED) {


@@ 657,8 657,8 @@ Endpoint_SelectEndpoint(MIDI_STREAM_IN_EPNUM);
    }
  }

Endpoint_Write_Stream_LE(&event, sizeof(event), NULL);
Endpoint_ClearIN();
// Endpoint_Write_Stream_LE(&event, sizeof(event), NULL);
// Endpoint_ClearIN();

  MIDI_Device_SendEventPacket(&USB_MIDI_Interface, &event);
  MIDI_Device_Flush(&USB_MIDI_Interface);