Spec-Zone .ru
спецификации, руководства, описания, API
|
ADC домой > Ссылочная библиотека> Ссылка> Аудио> Core Audio> Ссылка Серверной инфраструктуры Core MIDI
|
MIDIDriverInterface |
Наследовался от: | структура |
Объявленный в: |
Интерфейс COM-стиля к драйверу MIDI.
Это - функциональный табличный интерфейс к драйверу MIDI. Оба использования драйверов версии 1 и 2
эта та же таблица указателей функции (за исключением отмеченного).
Драйверы, поддерживающие и интерфейсы версии 1 и версии 2, могут сказать, какая версия сервера работает путем проверки для наблюдения или kMIDIDriverInterface2ID или
kMIDIDriverInterfaceID передается функции фабрики. Если интерфейс версии 1 требуют, драйвер должен вести себя, как будто это - драйвер версии 1.
Сконфигурировать |
OSStatus ( *Configure)( MIDIDriverRef self, MIDIDeviceRef device);
не в настоящее время используемый
EnableSource |
OSStatus ( *EnableSource)( MIDIDriverRef self, MIDIEndpointRef src, Boolean enabled);
Клиент открыл или закрыл соединение, и теперь сервер говорит драйверу, которые вводят из определенного источника или делает или не имеет никаких слушателей в
система. Драйвер может использовать эту информацию, чтобы решить, передать ли сообщения с источника на сервер, и это может даже быть в состоянии сказать исходные аппаратные средства
не генерировать входящий MIDI I/O для того источника.
FindDevices |
OSStatus ( *FindDevices)( MIDIDriverRef self, MIDIDeviceListRef devList);
Это только вызывают для драйверов версии 1. Сервер запрашивает, чтобы драйвер обнаружил присутствующие устройства. Для каждого настоящего устройства должен драйвер
создайте MIDIDeviceRef с объектами, с помощью MIDIDeviceCreate и MIDIDeviceAddEntity, и добавьте устройство к предоставленному MIDIDeviceListRef, с помощью
MIDIDeviceListAddDevice.
Драйвер не должен сохранять ссылки на создаваемые устройства и объекты.
Сброс |
OSStatus ( *Flush)( MIDIDriverRef self, MIDIEndpointRef dest, void *destRefCon1, void *destRefCon2);
Только для драйверов версии 2 (новый для CoreMIDI 1.1).
Драйверы, поддерживающие расписание вперед при получении этого сообщения, должны не запланировать весь вывод ожидания указанному месту назначения. Если место назначения является нулем,
драйвер должен не запланировать весь вывод ожидания всем местам назначения.
Монитор |
OSStatus ( *Monitor)( MIDIDriverRef self, MIDIEndpointRef dest, const MIDIPacketList *pktlist);
Только для драйверов версии 2 (новый для CoreMIDI 1.1).
Некоторые специализированные драйверы (например, контрольный дисплей MIDI) могут хотеть прервать и смотреть на все исходящие сообщения MIDI. После того, как драйвер вызывает
MIDIDriverEnableMonitoring (истина) на себе, эта функция вызвана с исходящими пакетами MIDI для всех мест назначения в системе. Функция монитора
не может полагаться на события MIDI, поступающие в порядок, вследствие средств расписания вперед MIDISERVER.
Отправить |
OSStatus ( *Send)( MIDIDriverRef self, const MIDIPacketList *pktlist, void *destRefCon1, void *destRefCon2);
Отправьте MIDIPacketList в целевую конечную точку, refCons которой передаются как параметры.
Запустить |
OSStatus ( *Start)( MIDIDriverRef self, MIDIDeviceListRef devList);
Сервер говорит драйверу начинать MIDI I/O.
Предоставленный список устройств содержит устройства, ранее расположенные FindDevices (в случае драйвера версии 1), или устройства, принадлежащие
этот драйвер и в настоящее время находится в текущем MIDISetup (для драйверов версии 2).
Предоставленные устройства могут или могут не все еще присутствовать. Драйвер версии 1 должен попытаться использовать столько устройств, сколько фактически присутствуют.
Драйвер версии 2 может выполнить вызовы, такие как MIDISetupAddDevice, MIDIDeviceAddEntity,
MIDIDeviceRemoveEntity для динамичного изменения текущего состояния системы. Для устройств в предоставленном списке устройств, не присутствующих, драйвер должен установить их
свойство kMIDIPropertyOffline к 1. Когда IORegistry изменяется, для обнаружения соединения и разъединения, драйвер версии 2 может также установить уведомления
устройства это хочет управлять. В эти времена также, драйвер может изменить kMIDIPropertyOffline устройств, и динамично изменить текущее состояние системы к
отразите присутствующие устройства. При передаче CFRunLoopRef IOKit в целях уведомления драйвер должен использовать основной runloop сервера, который является
полученный с CFRunLoopGetCurrent ().
Драйвер, вероятно, захочет выполнить итерации через целевые конечные точки и присвоить их драйвер refCons, чтобы идентифицировать многократные места назначения, когда Отправляют (),
вызванный.
Предоставленный список устройств остается принадлежавшим системе и, как может предполагаться, содержит только устройства, принадлежавшие этому драйверу. Драйвер может сохранить ссылки на устройства
в этом списке и любом это создает при выполнении.
Остановиться |
OSStatus ( *Stop)( MIDIDriverRef self);
Сервер говорит драйверу завершать MIDI I/O. Все операции I/O, начатые в Запуске, или в результате последующего уведомления IOKit, должны быть
завершенный.
Последнее обновление: 06.06.2008