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

Data Structures

struct  USB_ClassInfo_MIDI_Host_t
 MIDI Class Host Mode Configuration and State Structure. More...

Enumerations

enum  MIDI_Host_EnumerationFailure_ErrorCodes_t {
  MIDI_ENUMERROR_NoError = 0,
  MIDI_ENUMERROR_InvalidConfigDescriptor = 1,
  MIDI_ENUMERROR_NoCompatibleInterfaceFound = 2
}

Functions

uint8_t MIDI_Host_ConfigurePipes (USB_ClassInfo_MIDI_Host_t *const MIDIInterfaceInfo, uint16_t ConfigDescriptorSize, void *DeviceConfigDescriptor) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(3)
void MIDI_Host_USBTask (USB_ClassInfo_MIDI_Host_t *const MIDIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
uint8_t MIDI_Host_SendEventPacket (USB_ClassInfo_MIDI_Host_t *const MIDIInterfaceInfo, MIDI_EventPacket_t *const Event) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2)
uint8_t MIDI_Host_Flush (USB_ClassInfo_MIDI_Host_t *const MIDIInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
bool MIDI_Host_ReceiveEventPacket (USB_ClassInfo_MIDI_Host_t *const MIDIInterfaceInfo, MIDI_EventPacket_t *const Event) ATTR_NON_NULL_PTR_ARG(1) ATTR_NON_NULL_PTR_ARG(2)

Detailed Description

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

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

модуля

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


Enumeration Type Documentation

Перечисление для возможных кодов ошибки, возвращаемых функцией MIDI_Host_ConfigurePipes().

Enumerator:
MIDI_ENUMERROR_NoError 

дескриптор конфигурации обработан успешно.

MIDI_ENUMERROR_InvalidConfigDescriptor 

устройство возвратило неверный дескриптор конфигурации.

MIDI_ENUMERROR_NoCompatibleInterfaceFound 

в дескрипторе конфигурации устройства не найден совместимый интерфейс MIDI.


Function Documentation

uint8_t MIDI_Host_ConfigurePipes ( USB_ClassInfo_MIDI_Host_t *const  MIDIInterfaceInfo,
uint16_t  ConfigDescriptorSize,
void *  DeviceConfigDescriptor 
)

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

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

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

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

Принимает пакет события 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_Host_SendEventPacket ( USB_ClassInfo_MIDI_Host_t *const  MIDIInterfaceInfo,
MIDI_EventPacket_t *const  Event 
)

Отправляет пакет события MIDI на устройство. Если устройство не подключено, пакет события игнорируется.

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

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

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