blob: bf5cc4d2fdca204d104c4d8f2a64ff2eec911ccd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
/**
******************************************************************************
* @file usbd_midi.h
******************************************************************************
(CC at)2016 by D.F.Mac. @TripArts Music
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __USB_MIDI_H
#define __USB_MIDI_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "usbd_ioreq.h"
#define MIDI_IN_EP 0x81 /* EP1 for data IN */
#define MIDI_OUT_EP 0x01 /* EP1 for data OUT */
// #define MIDI_DATA_HS_MAX_PACKET_SIZE 512 /* Endpoint IN & OUT Packet size */
#define MIDI_DATA_FS_MAX_PACKET_SIZE 64 /* Endpoint IN & OUT Packet size */
#define MIDI_CMD_PACKET_SIZE 8 /* Control Endpoint Packet size */
#define USB_MIDI_CONFIG_DESC_SIZ 133//default is 101
#define MIDI_DATA_IN_PACKET_SIZE MIDI_DATA_FS_MAX_PACKET_SIZE
#define MIDI_DATA_OUT_PACKET_SIZE MIDI_DATA_FS_MAX_PACKET_SIZE
#define APP_RX_DATA_SIZE ((MIDI_DATA_FS_MAX_PACKET_SIZE) * 4) //2048->256
#define MIDI_IN_FRAME_INTERVAL 1
#define MIDI_OUT_JACK_NUM (1)
#define MIDI_IN_JACK_NUM (0)
typedef struct _USBD_MIDI_ItfTypeDef{
uint16_t (*pIf_MidiRx) (uint8_t *msg, uint16_t length);
uint16_t (*pIf_MidiTx) (uint8_t *msg, uint16_t length);
}USBD_MIDI_ItfTypeDef;
extern uint8_t APP_Rx_Buffer [APP_RX_DATA_SIZE];
extern uint32_t APP_Rx_ptr_in;
extern uint32_t APP_Rx_ptr_out;
extern uint32_t APP_Rx_length;
extern uint8_t USB_Tx_State;
extern USBD_ClassTypeDef USBD_MIDI;
#define USBD_MIDI_CLASS &USBD_MIDI
uint8_t USBD_MIDI_RegisterInterface (USBD_HandleTypeDef *pdev,
USBD_MIDI_ItfTypeDef *fops);
#ifdef __cplusplus
}
#endif
#endif /* __USB_MIDI_H */
|