Библиотека LUFA (раннее название MyUSB) версия 101122
Драйвер режима USB-устройства для класса MIDI

Data Structures

struct  USB_ClassInfo_MIDI_Device_t
 Структура конфигурации и состояния USB-устройства MIDI USB Class. More...

Functions

bool MIDI_Device_ConfigureEndpoints (USB_ClassInfo_MIDI_Device_t *const MIDIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
void MIDI_Device_USBTask (USB_ClassInfo_MIDI_Device_t *const MIDIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
uint8_t MIDI_Device_SendEventPacket (USB_ClassInfo_MIDI_Device_t *const MIDIInterfaceInfo, const MIDI_EventPacket_t *const Event) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2)
uint8_t MIDI_Device_Flush (USB_ClassInfo_MIDI_Device_t *const MIDIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
bool MIDI_Device_ReceiveEventPacket (USB_ClassInfo_MIDI_Device_t *const MIDIInterfaceInfo, MIDI_EventPacket_t *const Event) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2)
static void MIDI_Device_ProcessControlRequest (USB_ClassInfo_MIDI_Device_t *const MIDIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)

Detailed Description

зависимости для исходного кода модуля

Следующие файлы должны быть скомпилированы с любым проектом, который использует этот модуль:

модуля

Фреймворк драйвера режима USB-устройства для драйвера MIDI USB Class.


Function Documentation

bool MIDI_Device_ConfigureEndpoints ( USB_ClassInfo_MIDI_Device_t *const  MIDIInterfaceInfo)

Конфигурирует конечные точки на указанном интерфейсе MIDI готовыми для использования. Должно быть слинковано с событием EVENT_USB_Device_ConfigurationChanged() библиотеки, чтобы при выборе конфигурации, содержащей указанный интерфейс MIDI, конфигурировались соответствующие ему конечные точки.

Note:
Индексные номера конечной точки, как указано в структуре конфигурации интерфейса, не должны наложиться ни с каким другим интерфейсом, иначе произойдет повреждение банка конечной точки. Разрывы в номерах конечных точек или непоследовательные индексы в пределах единственного интерфейса допустимы, но никакие два интерфейса любого типа не должны иметь чередования индексов конечной точки.
Parameters:
[in,out]MIDIInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние MIDI Class.
Returns:
двоичное true, если конечные точки успешно сконфигурированы, иначе false.
uint8_t MIDI_Device_Flush ( USB_ClassInfo_MIDI_Device_t *const  MIDIInterfaceInfo)

Сбрасывает буфер отправки MIDI, что вызывает отправку хосту поставленных в очередь событий MIDI. Должна вызвываться для отмены пакующего поведения функции MIDI_Device_SendEventPacket(), чтобы слить события из очереди.

Parameters:
[in,out]MIDIInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние MIDI Class.
Returns:
значение из перечисления Endpoint_WaitUntilReady_ErrorCodes_t.
static void MIDI_Device_ProcessControlRequest ( USB_ClassInfo_MIDI_Device_t *const  MIDIInterfaceInfo) [inline, static]

Обрабатывает приходящие от хоста запросы управления, которые направлены на указанный интерфейс MIDI class. Это должно быть слинковано с событием EVENT_USB_Device_ControlRequest() библиотеки.

Parameters:
[in,out]MIDIInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние MIDI Class.
bool MIDI_Device_ReceiveEventPacket ( USB_ClassInfo_MIDI_Device_t *const  MIDIInterfaceInfo,
MIDI_EventPacket_t *const  Event 
)

Принимает от хоста пакет события MIDI. События распаковываются из конечной точки, поэтому если банк конечной точки содержит несоклько событий MIDI от хоста в одном пакете, несколько вызовов этой функции возвратят индивидуальное событие на каждый вызов.

Precondition:
Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
Parameters:
[in,out]MIDIInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние MIDI Class.
[out]Eventуказатель на стуруктуру USB_MIDI_EventPacket_t, куда помещается принятое событие MIDI.
Returns:
двоичное true, если принят пакет события MIDI, иначе false.
uint8_t MIDI_Device_SendEventPacket ( USB_ClassInfo_MIDI_Device_t *const  MIDIInterfaceInfo,
const MIDI_EventPacket_t *const  Event 
)

Посылает хосту пакет события MIDI. Если нет подключенного хоста, то пакет события игнорируется. События ставятся в очередь в банке конечной точки либо пока банк не переполнится, либо до вызова MIDI_Device_Flush(). Это позволяет нескольким событиям MIDI быть упакованными в один пакет конечной точки, что повышает пропускную способность данных.

Precondition:
Эта функция должна быть вызвана только когда машина состояния хоста находится в состоянии HOST_STATE_Configured, либо вызов функции потерпит неудачу.
Parameters:
[in,out]MIDIInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние MIDI Class.
[in]Eventуказатель на заполненную структуру MIDI_EventPacket_t, содержащую событие MIDI для отправки.
Returns:
значение из перечисления Endpoint_Stream_RW_ErrorCodes_t.
void MIDI_Device_USBTask ( USB_ClassInfo_MIDI_Device_t *const  MIDIInterfaceInfo)

Главная задача для поддержки указанного интерфейса класса MIDI, необходимая для корректной работы этого интерфейса. Должна часто вызываться в главном цикле программы, перед главной задачей поддержки USB USB_USBTask().

Parameters:
[in,out]MIDIInterfaceInfoуказатель на структуру, содержащую конфигурацию и состояние MIDI Class.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines