Spec-Zone .ru
спецификации, руководства, описания, API
|
ADC домой > Ссылочная библиотека> Ссылка> Аудио> Core Audio> Ссылка Платформы Core MIDI
|
MIDIServices.h |
Включает: | <CoreFoundation/CoreFoundation.h> <stddef.h> |
Это - заголовочный файл для системных служб MIDI OS X.
Драйверы собственные и управляющие устройства, например, интерфейсы USB, платы PCI, и т.д. Устройство определяется
как физический объект, который был бы представлен единственным значком, если бы было графическое представление студии.
Устройства могут иметь многократные логически отличные субкомпоненты, например, синтезатор MIDI и a
пара портов MIDI, оба адресуемые через USB-порт. Их вызывают Объектами.
Объекты имеют любое число Конечных точек, источников и мест назначения потоков MIDI с 16 каналами. Путем группировки конечных точек устройства в объекты система имеет достаточно информации для
приложение для создания разумных предположений по умолчанию о том, как связаться реверсивным способом с каждым объектом, как необходимо в библиотекаре MIDI приложения.
CoreMIDI присоединяет набор свойств к каждому объекту, которым он управляет. Некоторые свойства
динамические характеристики устройства (например, MIDI получают канал и монопольный системой ID), и некоторые - вопрос пользовательской настройки (выбор значка, должно ли появиться устройство
в списках возможных контроллеров). Другие свойства статичны и могли искаться в базе данных, с помощью производителя устройства и имен модели как ключ.
Клиентский API реализован как платформа CoreMIDI, использующая IPC для передачи с
серверный процесс, MIDIServer.
Загрузки серверного процесса, и управляют всей связью с, драйверы MIDI. Большая часть его реализации находится в платформе CoreMIDIServer, к которой драйверы могут импортировать чтобы
получите доступ к API.
«Драйверы» не являются драйверами Набора I/O. Они - пакеты, содержащие CFPlugins.
Много драйверов MIDI могут просто быть стороной пользователя клиенты Набора I/O (вероятно, для сериала, USB, Firewire).
Драйверам платы PCI будут нужны их драйверы MIDI для передачи с отдельным ядром
расширение.
При передаче объекта CF функции MIDI функция MIDI никогда не будет использовать a
ссылка на объект; вызывающая сторона всегда сохраняет ссылку, которая это ответственно за выпуск с CFRelease ().
Когда получение CF возражает как возвращаемое значение от функции MIDI, вызывающая сторона всегда
получает новую ссылку на объект и ответственен за выпуск его.
- MIDIDestinationCreate
Создает виртуальное место назначения в клиенте.
- MIDIEndpointDispose
Располагает виртуальный источник или место назначения, которое создал Ваш клиент.
- MIDIEndpointGetEntity
Возвращает объект конечной точки.
- MIDIGetDestination
Возвраты одно из мест назначения в системе.
- MIDIGetNumberOfDestinations
Возвращает число мест назначения в системе.
- MIDIGetNumberOfSources
Возвращает число источников в системе.
- MIDIGetSource
Возвраты один из источников в системе.
- MIDISourceCreate
Создает виртуальный источник в клиенте.
Списки
- MIDIPacketListAdd
Добавляет событие MIDI к MIDIPacketList.
- MIDIPacketListInit
Подготавливает MIDIPacketList, который будет накоплен динамично.
- MIDIPacketNext
Совершенствует указатель MIDIPacket на MIDIPacket, сразу следующий за ним в памяти, если это - часть MIDIPacketList.
- MIDIInputPortCreate
Создает входной порт, через который клиент может получить входящие сообщения MIDI от любого источника MIDI.
- MIDIOutputPortCreate
Создает выходной порт, через который клиент может отправить исходящие сообщения MIDI любому месту назначения MIDI.
- MIDIPortConnectSource
Устанавливает соединение от источника до входного порта клиента.
- MIDIPortDisconnectSource
Закрывает ранее установленное соединение источника к входному порту.
- MIDIPortDispose
Располагает объект MIDIPort.
и Свойства
- MIDIObjectFindByUniqueID
Определяет местоположение устройства, внешнего устройства, объекта или конечной точки ее uniqueID.
- MIDIObjectGetDataProperty
Получает свойство типа данных объекта.
- MIDIObjectGetDictionaryProperty
Получает свойство типа словаря объекта.
- MIDIObjectGetIntegerProperty
Получает свойство целого типа объекта.
- MIDIObjectGetProperties
Получает все свойства объекта.
- MIDIObjectGetStringProperty
Получает свойство строкового типа объекта.
- MIDIObjectRemoveProperty
Удаляет свойство объекта.
- MIDIObjectSetDataProperty
Устанавливает свойство типа данных объекта.
- MIDIObjectSetDictionaryProperty
Устанавливает свойство типа словаря объекта.
- MIDIObjectSetIntegerProperty
Устанавливает свойство целого типа объекта.
- MIDIObjectSetStringProperty
Устанавливает свойство строкового типа объекта.
- MIDIEntityGetDestination
Возвраты одно из мест назначения данного объекта.
- MIDIEntityGetDevice
Возвращает устройство объекта.
- MIDIEntityGetNumberOfDestinations
Возвращает число мест назначения в данном объекте.
- MIDIEntityGetNumberOfSources
Возвращает число источников в данном объекте.
- MIDIEntityGetSource
Возвраты один из источников данного объекта.
- MIDIDeviceGetEntity
Возвраты один из объектов данного устройства.
- MIDIDeviceGetNumberOfEntities
Возвращает число объектов в данном устройстве.
- MIDIGetDevice
Возвраты одно из устройств в системе.
- MIDIGetNumberOfDevices
Возвращает число устройств в системе.
- MIDIFlushOutput
Нерасписания, ранее отправленные пакеты.
- MIDIReceived
Распределяет входящий MIDI от источника до клиентских входных портов, подключенных к тому источнику.
- MIDIRestart
Остановки и перезапуски MIDI I/O.
- MIDISend
Отправляет MIDI месту назначения.
- MIDISendSysex
Отправляет монопольное единой системой событие, асинхронно.
Устройства
- MIDIGetExternalDevice
Возвраты одно из внешних устройств в системе.
- MIDIGetNumberOfExternalDevices
Возвращает число внешних MIDI-устройств в системе.
- MIDIClientCreate
Создает объект MIDIClient.
- MIDIClientDispose
Располагает объект MIDIClient.
Создает объект MIDIClient.
Располагает объект MIDIClient.
Создает виртуальное место назначения в клиенте.
Возвраты один из объектов данного устройства.
Возвращает число объектов в данном устройстве.
Располагает виртуальный источник или место назначения, которое создал Ваш клиент.
Возвращает объект конечной точки.
Возвраты одно из мест назначения данного объекта.
Возвращает устройство объекта.
Возвращает число мест назначения в данном объекте.
Возвращает число источников в данном объекте.
Возвраты один из источников данного объекта.
Нерасписания, ранее отправленные пакеты.
Возвраты одно из мест назначения в системе.
Возвраты одно из устройств в системе.
Возвраты одно из внешних устройств в системе.
Возвращает число мест назначения в системе.
Возвращает число устройств в системе.
Возвращает число внешних MIDI-устройств в системе.
Возвращает число источников в системе.
Возвраты один из источников в системе.
Создает входной порт, через который клиент может получить входящие сообщения MIDI от любого источника MIDI.
Определяет местоположение устройства, внешнего устройства, объекта или конечной точки ее uniqueID.
Получает свойство типа данных объекта.
Получает свойство типа словаря объекта.
Получает свойство целого типа объекта.
Получает все свойства объекта.
Получает свойство строкового типа объекта.
Удаляет свойство объекта.
Устанавливает свойство типа данных объекта.
Устанавливает свойство типа словаря объекта.
Устанавливает свойство целого типа объекта.
Устанавливает свойство строкового типа объекта.
Создает выходной порт, через который клиент может отправить исходящие сообщения MIDI любому месту назначения MIDI.
Добавляет событие MIDI к MIDIPacketList.
Подготавливает MIDIPacketList, который будет накоплен динамично.
Совершенствует указатель MIDIPacket на MIDIPacket, сразу следующий за ним в памяти, если это - часть MIDIPacketList.
Устанавливает соединение от источника до входного порта клиента.
Закрывает ранее установленное соединение источника к входному порту.
Располагает объект MIDIPort.
Распределяет входящий MIDI от источника до клиентских входных портов, подключенных к тому источнику.
Остановки и перезапуски MIDI I/O.
Отправляет MIDI месту назначения.
Отправляет монопольное единой системой событие, асинхронно.
Создает виртуальный источник в клиенте.
MIDIClientCreate |
Создает объект MIDIClient.
extern OSStatus MIDIClientCreate( CFStringRef name, MIDINotifyProc notifyProc, void *notifyRefCon, MIDIClientRef *outClient );
name
Имя клиента.
notifyProc
Дополнительное (может быть NULL), функция обратного вызова, через которую клиент получит уведомления об изменениях в системе.
notifyRefCon
refCon, пасуемый назад к notifyRefCon
outClient
По успешному возврату, точкам к недавно создаваемому MIDIClientRef.
OSStatus заканчивается код.
Обратите внимание на то, что notifyProc будут всегда вызывать на цикле выполнения, который был текущим, когда сначала вызвали MIDIClientCreate.
MIDIClientDispose |
Располагает объект MIDIClient.
extern OSStatus MIDIClientDispose( MIDIClientRef client );
client
Клиент для расположения.
OSStatus заканчивается код.
Не важно вызвать эту функцию; когда приложение завершится, платформа CoreMIDI автоматически расположит весь MIDIClients.
MIDIDestinationCreate |
Создает виртуальное место назначения в клиенте.
extern OSStatus MIDIDestinationCreate( MIDIClientRef client, CFStringRef name, MIDIReadProc readProc, void *refCon, MIDIEndpointRef *outDest );
client
Клиент, владеющий виртуальным местом назначения.
name
Имя виртуального места назначения.
readProc
MIDIReadProc, который вызовут, когда клиент отправляет MIDI виртуальному месту назначения.
refCon
refCon, который будет передан readProc.
outDest
По успешному возврату, указателю на недавно создаваемое место назначения.
OSStatus заканчивается код.
Когда клиенты отправляют MIDI Вашему виртуальному месту назначения, указанный readProc вызывают.
Драйверы не должны вызывать это; когда они создают устройства и объекты, источники и места назначения создаются в то время.
После создания виртуального места назначения это - хорошая идея присвоить его тот же уникальный идентификатор
это имело в прошлый раз, когда Ваше приложение создало его. (Несмотря на то, что Вы должны быть подготовлены к этому перестать работать в маловероятном случае коллизии.) Это разрешит другим клиентам
сохранить персистентные ссылки на Ваше виртуальное место назначения более легко.
Посмотрите обсуждение kMIDIPropertyAdvanceScheduleTimeMuSec для примечаний об отношении между тем, когда отправитель отправляет MIDI месту назначения и когда это
полученный.
MIDIDeviceGetEntity |
Возвраты один из объектов данного устройства.
extern MIDIEntityRef MIDIDeviceGetEntity( MIDIDeviceRef device, ItemCount entityIndex0 );
device
Запрашиваемое устройство.
entityIndex0
Индекс (0... MIDIDeviceGetNumberOfEntities (устройство)-1) объекта для возврата
Ссылка на объект или NULL, если произошла ошибка.
MIDIDeviceGetNumberOfEntities |
Возвращает число объектов в данном устройстве.
extern ItemCount MIDIDeviceGetNumberOfEntities( MIDIDeviceRef device );
device
Запрашиваемое устройство.
Число объектов, которые устройство содержит, или 0, если произошла ошибка.
MIDIEndpointDispose |
Располагает виртуальный источник или место назначения, которое создал Ваш клиент.
extern OSStatus MIDIEndpointDispose( MIDIEndpointRef endpt );
endpt
Конечная точка, которая будет расположена.
OSStatus заканчивается код.
MIDIEndpointGetEntity |
Возвращает объект конечной точки.
extern OSStatus MIDIEndpointGetEntity( MIDIEndpointRef inEndpoint, MIDIEntityRef *outEntity);
inEndpoint
Запрашиваемая конечная точка.
outEntity
На выходе, объекте владения конечной точки или NULL, если ни один.
У виртуальных источников и мест назначения нет объектов.
MIDIEntityGetDestination |
Возвраты одно из мест назначения данного объекта.
extern MIDIEndpointRef MIDIEntityGetDestination( MIDIEntityRef entity, ItemCount destIndex0 );
entity
Запрашиваемый объект.
destIndex0
Индекс (0... MIDIEntityGetNumberOfDestinations (объект) - 1) места назначения для возврата
Ссылка на место назначения или NULL, если произошла ошибка.
MIDIEntityGetDevice |
Возвращает устройство объекта.
extern OSStatus MIDIEntityGetDevice( MIDIEntityRef inEntity, MIDIDeviceRef *outDevice);
inEntity
Запрашиваемый объект.
outDevice
По успешному возврату, устройству владения объекта.
MIDIEntityGetNumberOfDestinations |
Возвращает число мест назначения в данном объекте.
extern ItemCount MIDIEntityGetNumberOfDestinations( MIDIEntityRef entity );
entity
Запрашиваемый объект
Число мест назначения, которые объект содержит, или 0, если произошла ошибка.
MIDIEntityGetNumberOfSources |
Возвращает число источников в данном объекте.
extern ItemCount MIDIEntityGetNumberOfSources( MIDIEntityRef entity );
entity
Запрашиваемый объект
Число источников, которые объект содержит, или 0, если произошла ошибка.
MIDIEntityGetSource |
Возвраты один из источников данного объекта.
extern MIDIEndpointRef MIDIEntityGetSource( MIDIEntityRef entity, ItemCount sourceIndex0 );
entity
Запрашиваемый объект.
sourceIndex0
Индекс (0... MIDIEntityGetNumberOfSources (объект)-1) источника для возврата
Ссылка на источник или NULL, если произошла ошибка.
MIDIFlushOutput |
Нерасписания, ранее отправленные пакеты.
extern OSStatus MIDIFlushOutput( MIDIEndpointRef dest );
dest
Все незаконченные события, которые, как запланировали, будут отправлены этому месту назначения, не запланированы. ЕСЛИ НОЛЬ, работа применяется к
все места назначения.
Клиенты могут использовать MIDIFlushOutput для отмены отправки пакетов, ранее запланированных для будущей поставки.
MIDIGetDestination |
Возвраты одно из мест назначения в системе.
extern MIDIEndpointRef MIDIGetDestination( ItemCount destIndex0 );
destIndex0
Индекс (0... MIDIGetNumberOfDestinations ()-1) места назначения для возврата
Ссылка на место назначения или NULL, если произошла ошибка.
MIDIGetDevice |
Возвраты одно из устройств в системе.
extern MIDIDeviceRef MIDIGetDevice( ItemCount deviceIndex0 );
deviceIndex0
Индекс (0... MIDIGetNumberOfDevices ()-1) устройства для возврата.
Ссылка на устройство или NULL, если произошла ошибка.
Используйте это для перечисления устройств в системе.
Для перечисления объектов в системе можно идти через устройства, затем идти через объекты устройств.
Примечание: Если клиент выполнит итерации через устройства и объекты в системе, то она не будет
когда-либо посещайте любые виртуальные источники и места назначения, создаваемые другими клиентами. Кроме того, итерация устройства возвратит устройства, которые являются «оффлайновыми» (присутствовали в прошлом, но
в настоящее время не присутствуют), в то время как итерации через источники и места назначения системы не будут включать конечные точки оффлайновых устройств.
Таким образом клиенты должны обычно использовать MIDIGetNumberOfSources, MIDIGetSource,
MIDIGetNumberOfDestinations и MIDIGetDestination, довольно выполняющий итерации через устройства и объекты для определения местоположения конечных точек.
MIDIGetExternalDevice |
Возвраты одно из внешних устройств в системе.
extern MIDIDeviceRef MIDIGetExternalDevice( ItemCount deviceIndex0 );
deviceIndex0
Индекс (0... MIDIGetNumberOfDevices ()-1) устройства для возврата.
Ссылка на устройство или NULL, если произошла ошибка.
Используйте это для перечисления внешних устройств в системе.
MIDIGetNumberOfDestinations |
Возвращает число мест назначения в системе.
extern ItemCount MIDIGetNumberOfDestinations();
Число мест назначения в системе, или 0, если произошла ошибка.
MIDIGetNumberOfDevices |
Возвращает число устройств в системе.
extern ItemCount MIDIGetNumberOfDevices();
Число устройств в системе, или 0, если произошла ошибка.
MIDIGetNumberOfExternalDevices |
Возвращает число внешних MIDI-устройств в системе.
extern ItemCount MIDIGetNumberOfExternalDevices();
Число внешних устройств в системе, или 0, если произошла ошибка.
Внешние MIDI-устройства являются MIDI-устройствами, подключенными к конечным точкам драйвера через стандартный кабель MIDI. Их присутствие является абсолютно дополнительным, только когда UI (такой как Аудио Установка MIDI)
добавляет их.
MIDIGetNumberOfSources |
Возвращает число источников в системе.
extern ItemCount MIDIGetNumberOfSources();
Число источников в системе, или 0, если произошла ошибка.
MIDIGetSource |
Возвраты один из источников в системе.
extern MIDIEndpointRef MIDIGetSource( ItemCount sourceIndex0 );
sourceIndex0
Индекс (0... MIDIGetNumberOfSources ()-1) источника для возврата
Ссылка на источник или NULL, если произошла ошибка.
MIDIInputPortCreate |
Создает входной порт, через который клиент может получить входящие сообщения MIDI от любого источника MIDI.
extern OSStatus MIDIInputPortCreate( MIDIClientRef client, CFStringRef portName, MIDIReadProc readProc, void *refCon, MIDIPortRef *outPort );
client
Клиент для владения недавно создаваемым портом.
portName
Имя порта.
readProc
MIDIReadProc, который вызовут с входящим MIDI из источников, подключенных к этому порту.
refCon
refCon передал readHook.
outPort
По успешному возврату, точкам к недавно создаваемому MIDIPort.
OSStatus заканчивается код.
После создания порта используйте MIDIPortConnectSource для установления входного соединения от любого числа источников к порту.
readProc вызовут на отдельном высокоприоритетном потоке, принадлежавшем CoreMIDI.
MIDIObjectFindByUniqueID |
Определяет местоположение устройства, внешнего устройства, объекта или конечной точки ее uniqueID.
extern OSStatus MIDIObjectFindByUniqueID( MIDIUniqueID inUniqueID, MIDIObjectRef *outObject, MIDIObjectType *outObjectType) ;
inUniqueID
uniqueID объекта искать. (Это должно быть результатом более раннего вызова к MIDIObjectGetIntegerProperty
для свойства kMIDIPropertyUniqueID).
outObject
Возвращенный объект или NULL, если объект не был найден или ошибка, произошел. Это должно быть брошено к надлежащему
введите (MIDIDeviceRef, MIDIEntityRef, MIDIEndpointRef), согласно *outObjectType.
outObjectType
На выходе, типе найденного объекта; неопределенный, если ни одно найденное.
Код ошибки OSStatus, включая kMIDIObjectNotFound, если нет никакого объекта с указанным uniqueID.
MIDIObjectGetDataProperty |
Получает свойство типа данных объекта.
extern OSStatus MIDIObjectGetDataProperty( MIDIObjectRef obj, CFStringRef propertyID, CFDataRef *outData );
obj
Объект, свойство которого должно быть возвращено.
propertyID
Имя свойства для возврата.
outData
По успешному возврату, значению свойства.
OSStatus заканчивается код.
(См. документацию MIDIObjectRef для получения информации о свойствах.)
MIDIObjectGetDictionaryProperty |
Получает свойство типа словаря объекта.
extern OSStatus MIDIObjectGetDictionaryProperty( MIDIObjectRef obj, CFStringRef propertyID, CFDictionaryRef *outDict ) ;
obj
Объект, свойство которого должно быть возвращено.
propertyID
Имя свойства для возврата.
outDict
По успешному возврату, значению свойства.
OSStatus заканчивается код.
(См. документацию MIDIObjectRef для получения информации о свойствах.)
MIDIObjectGetIntegerProperty |
Получает свойство целого типа объекта.
extern OSStatus MIDIObjectGetIntegerProperty( MIDIObjectRef obj, CFStringRef propertyID, SInt32 *outValue );
obj
Объект, свойство которого должно быть возвращено.
propertyID
Имя свойства для возврата.
outValue
По успешному возврату, значению свойства.
OSStatus заканчивается код.
(См. документацию MIDIObjectRef для получения информации о свойствах.)
MIDIObjectGetProperties |
Получает все свойства объекта.
extern OSStatus MIDIObjectGetProperties( MIDIObjectRef obj, CFPropertyListRef *outProperties, Boolean deep );
obj
Объект, свойства которого должны быть возвращены.
outProperties
По успешному возврату, свойствам объекта.
deep
истина, если дочерние объекты объекта должны быть включены (например, объекты устройства или конечные точки объекта).
OSStatus заканчивается код.
Возвращает CFPropertyList всех свойств объекта. Список свойств может быть словарем или массивом. Словари отображают имена свойства (CFString) на могущие значения,
будьте CFNumber, CFString или CFData. Массивы являются массивами таких значений.
Свойства, которые объект наследовал от его объекта владения (если таковые имеются) не включены.
MIDIObjectGetStringProperty |
Получает свойство строкового типа объекта.
extern OSStatus MIDIObjectGetStringProperty( MIDIObjectRef obj, CFStringRef propertyID, CFStringRef *str );
obj
Объект, свойство которого должно быть возвращено.
propertyID
Имя свойства для возврата.
str
По успешному возврату, значению свойства.
OSStatus заканчивается код.
(См. документацию MIDIObjectRef для получения информации о свойствах.)
MIDIObjectRemoveProperty |
Удаляет свойство объекта.
extern OSStatus MIDIObjectRemoveProperty( MIDIObjectRef obj, CFStringRef propertyID ) ;
obj
Объект, свойство которого должно быть удалено.
propertyID
Свойство, которое будет удалено.
OSStatus заканчивается код.
MIDIObjectSetDataProperty |
Устанавливает свойство типа данных объекта.
extern OSStatus MIDIObjectSetDataProperty( MIDIObjectRef obj, CFStringRef propertyID, CFDataRef data );
obj
Объект, свойство которого должно быть изменено.
propertyID
Имя свойства для установки.
data
Новое значение свойства.
OSStatus заканчивается код.
(См. документацию MIDIObjectRef для получения информации о свойствах.)
MIDIObjectSetDictionaryProperty |
Устанавливает свойство типа словаря объекта.
extern OSStatus MIDIObjectSetDictionaryProperty( MIDIObjectRef obj, CFStringRef propertyID, CFDictionaryRef data );
obj
Объект, свойство которого должно быть изменено.
propertyID
Имя свойства для установки.
dict
Новое значение свойства.
OSStatus заканчивается код.
(См. документацию MIDIObjectRef для получения информации о свойствах.)
MIDIObjectSetIntegerProperty |
Устанавливает свойство целого типа объекта.
extern OSStatus MIDIObjectSetIntegerProperty( MIDIObjectRef obj, CFStringRef propertyID, SInt32 value );
obj
Объект, свойство которого должно быть изменено.
propertyID
Имя свойства для установки.
value
Новое значение свойства.
OSStatus заканчивается код.
(См. документацию MIDIObjectRef для получения информации о свойствах.)
MIDIObjectSetStringProperty |
Устанавливает свойство строкового типа объекта.
extern OSStatus MIDIObjectSetStringProperty( MIDIObjectRef obj, CFStringRef propertyID, CFStringRef str );
obj
Объект, свойство которого должно быть изменено.
propertyID
Имя свойства для установки.
str
Новое значение свойства.
OSStatus заканчивается код.
(См. документацию MIDIObjectRef для получения информации о свойствах.)
MIDIOutputPortCreate |
Создает выходной порт, через который клиент может отправить исходящие сообщения MIDI любому месту назначения MIDI.
extern OSStatus MIDIOutputPortCreate( MIDIClientRef client, CFStringRef portName, MIDIPortRef *outPort );
client
Клиент для владения недавно создаваемым портом
portName
Имя порта.
outPort
По успешному возврату, точкам к недавно создаваемому MIDIPort.
OSStatus заканчивается код.
Выходные порты обеспечивают механизм для слияния MIDI. CoreMIDI предполагает, что каждый выходной порт будет ответственен за отправку только единственного потока MIDI каждому месту назначения,
несмотря на то, что единственный порт может адресовать все места назначения в системе.
Когда приложение способно к направлению многократных одновременных потоков MIDI тому же месту назначения, многократные выходные порты только необходимы.
MIDIPacketListAdd |
Добавляет событие MIDI к MIDIPacketList.
extern MIDIPacket * MIDIPacketListAdd( MIDIPacketList *pktlist, ByteCount listSize, MIDIPacket *curPacket, MIDITimeStamp time, ByteCount nData, const Byte *data);
pktlist
Пакетный список, к которому должно быть добавлено событие.
listSize
Размер, в байтах, пакетного списка.
curPacket
Пакетный указатель, возвращенный предыдущим вызовом в MIDIPacketListInit или MIDIPacketListAdd для этого пакета
список.
time
Время нового события.
nData
Длина нового события, в байтах.
data
Новое событие. Может быть единственное событие MIDI или частичное sys-исключая событие. Рабочее состояние не разрешено.
Нуль возвратов, если не было комнаты в пакете для события; иначе возвращает пакетный указатель, который должен быть передан как curPacket в последующем вызове к этой функции.
Максимальный размер пакетного списка составляет 65 536 байтов. Большие сообщения sysex должны быть отправлены в списках пакета меньшего размера.
MIDIPacketListInit |
Подготавливает MIDIPacketList, который будет накоплен динамично.
extern MIDIPacket * MIDIPacketListInit( MIDIPacketList *pktlist );
pktlist
Пакетный список, который будет инициализирован.
Указатель на первый MIDIPacket в пакетном списке.
MIDIPacketNext |
Совершенствует указатель MIDIPacket на MIDIPacket, сразу следующий за ним в памяти, если это - часть MIDIPacketList.
extern MIDIPacket * MIDIPacketNext( MIDIPacket *pkt );
pkt
Указатель на MIDIPacket в MIDIPacketList.
Последующий пакет в MIDIPacketList.
Это реализовано как макрос для эффективности и избегать проблем константы.
MIDIPortConnectSource |
Устанавливает соединение от источника до входного порта клиента.
extern OSStatus MIDIPortConnectSource( MIDIPortRef port, MIDIEndpointRef source, void *connRefCon );
port
Порт, с которым можно создать соединение. readProc этого порта вызывают с входящим MIDI из источника.
source
Источник, из которого можно создать соединение.
connRefCon
Этот refCon передается MIDIReadProc как способ идентифицировать источник.
OSStatus заканчивается код.
MIDIPortDisconnectSource |
Закрывает ранее установленное соединение источника к входному порту.
extern OSStatus MIDIPortDisconnectSource( MIDIPortRef port, MIDIEndpointRef source );
port
Порт, соединение которого закрывается.
source
Источник, из которого можно закрыть соединение с указанным портом.
OSStatus заканчивается код.
MIDIPortDispose |
Располагает объект MIDIPort.
extern OSStatus MIDIPortDispose( MIDIPortRef port );
port
Порт для расположения.
OSStatus заканчивается код.
Не обычно необходимо вызвать эту функцию; когда MIDIClient's приложения автоматически расположен в завершении, или явно, через MIDIClientDispose,
в то время автоматически расположены порты клиента.
MIDIReceived |
Распределяет входящий MIDI от источника до клиентских входных портов, подключенных к тому источнику.
extern OSStatus MIDIReceived( MIDIEndpointRef src, const MIDIPacketList *pktlist );
src
Источник, передающий MIDI.
pktlist
События MIDI, которые будут переданы.
OSStatus заканчивается код.
Драйверы должны вызвать эту функцию при получении MIDI из источника.
Клиенты, создавшие виртуальные источники, с помощью MIDISourceCreate, должны вызвать эту функцию, когда источник генерирует MIDI.
В отличие от MIDISend (), метка времени 0 не эквивалентна «теперь»; драйвер или виртуальный
источник ответственен за помещение надлежащих меток времени в пакетах.
MIDIRestart |
Остановки и перезапуски MIDI I/O.
extern OSStatus MIDIRestart();
OSStatus заканчивается код.
Это полезно для того, чтобы вынуждать CoreMIDI попросить, чтобы его драйверы повторно отсканировали для аппаратных средств.
MIDISend |
Отправляет MIDI месту назначения.
extern OSStatus MIDISend( MIDIPortRef port, MIDIEndpointRef dest, const MIDIPacketList *pktlist );
port
Выходной порт, через который должен быть отправлен MIDI.
dest
Место назначения для получения событий.
pktlist
События MIDI, которые будут отправлены.
OSStatus заканчивается код.
События с будущими метками времени планируются для будущей поставки. CoreMIDI выполняет, любому было нужно слияние MIDI.
MIDISendSysex |
Отправляет монопольное единой системой событие, асинхронно.
extern OSStatus MIDISendSysex( MIDISysexSendRequest *request );
request
Содержит место назначения и указатель на данные MIDI, которые будут отправлены.
OSStatus заканчивается код.
запрос-> данные должен указать на единственный MIDI на монопольное системой сообщение или часть этого.
MIDISourceCreate |
Создает виртуальный источник в клиенте.
extern OSStatus MIDISourceCreate( MIDIClientRef client, CFStringRef name, MIDIEndpointRef *outSrc );
client
Клиент, владеющий виртуальным источником.
name
Имя виртуального источника.
outSrc
По успешному возврату, указателю на недавно создаваемый источник.
OSStatus заканчивается код.
Драйверы не должны вызывать это; когда они создают устройства и объекты, источники и места назначения создаются в то время.
После создания виртуального источника используйте MIDIReceived для передачи сообщений MIDI от Вашего
виртуальный источник любым клиентам соединился с виртуальным источником.
После создания виртуального источника это - хорошая идея присвоить его тот же уникальный идентификатор, который это имело в прошлый раз, когда Ваше приложение создало его. (Несмотря на то, что Вы должны быть подготовлены к этому к
перестали работать в маловероятном случае коллизии.) Это разрешит другим клиентам сохранять персистентные ссылки на Ваш виртуальный источник более легко.
kMIDIPropertyAdvanceScheduleTimeMuSec |
extern const CFStringRef kMIDIPropertyAdvanceScheduleTimeMuSec;
свойство устройства/объекта/конечной точки, целое число
Установленный драйвером владения; не должен быть затронут другими клиентами. Если это является ненулевым, то это - рекомендация того, сколько микросекунд заранее клиенты должны запланировать
вывод. Клиенты должны обработать это значение как минимум. Для устройств с ненулевым предварительным временем расписания драйверы получат исходящие сообщения к устройству в это время
они отправляются клиентом через MIDISend, и драйвер ответственен за планирование событий, которые будут играться в правильные времена согласно их меткам времени.
С CoreMIDI 1.3 это свойство может также быть установлено на виртуальных местах назначения (но только
создатель места назначения должен сделать так). Когда клиент отправляет виртуальному месту назначения с предварительным временем расписания 0, виртуальное место назначения получает его сообщения в
их запланированное время доставки. Если у виртуального места назначения есть ненулевое предварительное время расписания, оно получает сообщения, к которым добавляют метку времени, как только они отправляются и должны сделать его собственное
внутреннее планирование полученных событий.
kMIDIPropertyCanRoute |
extern const CFStringRef kMIDIPropertyCanRoute; // e.g. is patch bay
свойство устройства/объекта, целое число (0/1). Указывает, могут ли устройство или объект направить сообщения MIDI к или от других внешних MIDI-устройств (как с патч-панелями MIDI). Это
не должен быть установлен на устройствах, которыми управляют драйверы.
Новый для CoreMIDI 1.3.
kMIDIPropertyConnectionUniqueID |
extern const CFStringRef kMIDIPropertyConnectionUniqueID;
свойство устройства/объекта/конечной точки, целое число или CFDataRef
UniqueID внешнего устройства/entity/endpoint присоединенный к этому. С OS X 10.3, Аудио Установка MIDI поддерживает соединения конечной точки конечной-точки-к-внешнему (в 10,2, это
подключенные устройства к устройствам).
Если нет никакого соединения, свойство является non-existant или 0.
Новый для CoreMIDI 1.1 (OS X v10.1)
Начинаясь с CoreMIDI 1.3, этим свойством может также быть CFDataRef, содержащий массив SINT32 с обратным порядком байтов, чтобы позволить указывать, что драйвер возражает подключениям к кратному числу
внешние объекты (через MIDI через луг или разделяющий).
Это свойство может также существовать для внешних устройств/объектов/конечных точек, когда оно показывает MIDI Через соединение с другим внешним устройством/entity/endpoint (снова,
строго рекомендуется, чтобы это была конечная точка).
kMIDIPropertyDeviceID |
extern const CFStringRef kMIDIPropertyDeviceID;
свойство устройства/объекта, целое число
Монопольный системой ID объекта, в видимой пользователем форме
Драйверы могут установить это свойство на своих устройствах или объектах.
Редакторы установки могут позволить пользователю устанавливать это свойство на внешних устройствах.
kMIDIPropertyDisplayName |
extern const CFStringRef kMIDIPropertyDisplayName;
свойство устройства/объекта/конечной точки, строка.
Обеспечивает рекомендуемое Apple видимое пользователем имя для конечной точки, путем объединения имен конечной точки и устройства.
Для объектов кроме конечных точек имя дисплея совпадает с именем.
Новый для CoreMIDI 1.5.
kMIDIPropertyDriverDeviceEditorApp |
extern const CFStringRef kMIDIPropertyDriverDeviceEditorApp;
свойство устройства, строка, содержит полный путь к приложению, знающему, как сконфигурировать это устройства находившиеся в собственности драйвера. Драйверы могут установить это свойство на своем находящемся в собственности
устройства. Приложения не должны писать в него.
Новый для CoreMIDI 1.4.
kMIDIPropertyDriverOwner |
extern const CFStringRef kMIDIPropertyDriverOwner;
свойство устройства/объекта/конечной точки, строка
Имя драйвера, которому принадлежит устройство. Установленный драйвером владения, на устройстве; не должен быть затронут другими клиентами. Свойство наследовано от устройства его объектами
и конечные точки.
Новый для CoreMIDI 1.1 (OS X v10.1)
kMIDIPropertyDriverVersion |
extern const CFStringRef kMIDIPropertyDriverVersion;
свойство устройства/объекта/конечной точки, целое число, возвращает версию драйвера API драйвера владения (только для драйвера - принадлежавшие устройства). Драйверы не должны устанавливать это свойство;
приложения не должны писать в него.
Новый для CoreMIDI 1.3.
kMIDIPropertyFactoryPatchNameFile |
extern const CFStringRef kMIDIPropertyFactoryPatchNameFile;
свойство устройства/объекта/конечной точки, CFData, содержащий AliasHandle.
Псевдоним к текущей фабрике устройства исправляет файл имени.
Добавленный в CoreMIDI 1.1 (OS X v10.1). DEPRECATED с CoreMIDI 1.3. Используйте kMIDIPropertyNameConfiguration вместо этого.
kMIDIPropertyImage |
extern const CFStringRef kMIDIPropertyImage;
свойство устройства, CFStringRef, который является всем путем POSIX к устройству или значку внешнего устройства, сохраненному в любом стандартном формате графических файлов, таком как JPEG, GIF, PNG и TIFF, является всеми
приемлемый. (См. CFURL для функций для преобразования между путями POSIX и другими способами указать файлы.) Максимальный размер изображения должен быть 128x128.
Драйверы должны установить значок на устройствах, которые они добавляют.
Студийный редактор установки должен позволить пользователю выбирать значки для внешних устройств.
Новый для CoreMIDI 1.3.
kMIDIPropertyIsBroadcast |
extern const CFStringRef kMIDIPropertyIsBroadcast;
свойство объекта/конечной точки, целое число
1, если широковещательные сообщения конечной точки обменивается сообщениями ко всем другим конечным точкам в устройстве, 0 если нет. Установленный драйвером владения; не должен быть затронут другими клиентами.
Новый для CoreMIDI 1.3.
kMIDIPropertyIsDrumMachine |
extern const CFStringRef kMIDIPropertyIsDrumMachine;
свойство устройства/объекта, целое число (0/1). Указывает, имеют ли устройство или звуковые предварительные установки объекта тенденцию быть наборами невзаимозаменяемых выборок (например, ударные установки).
Новый для CoreMIDI 1.3.
kMIDIPropertyIsEffectUnit |
extern const CFStringRef kMIDIPropertyIsEffectUnit;
свойство устройства/объекта, целое число (0/1). Указывает, являются ли устройство или объект прежде всего УПРАВЛЯЕМЫМ MIDI модулем звукового эффекта (т.е. не генерирует звук самостоятельно).
Новый для CoreMIDI 1.3.
kMIDIPropertyIsEmbeddedEntity |
extern const CFStringRef kMIDIPropertyIsEmbeddedEntity;
свойство объекта/конечной точки, целое число
0, если существуют внешние коннекторы MIDI, 1 если нет.
Новый для CoreMIDI 1.1 (OS X v10.1)
kMIDIPropertyIsMixer |
extern const CFStringRef kMIDIPropertyIsMixer;
свойство устройства/объекта, целое число (0/1). Указывает, смешивают ли устройство или объект внешние звуковые сигналы, которыми управляют сообщения MIDI.
Новый для CoreMIDI 1.3.
kMIDIPropertyIsSampler |
extern const CFStringRef kMIDIPropertyIsSampler;
свойство устройства/объекта, целое число (0/1). Указывает, играют ли устройство или объект аудиосэмплы в ответ на сообщения примечания MIDI.
Новый для CoreMIDI 1.3.
kMIDIPropertyManufacturer |
extern const CFStringRef kMIDIPropertyManufacturer;
свойство устройства/конечной точки, строка
Драйверы должны установить это свойство на своих устройствах.
Редакторы установки могут позволить пользователю устанавливать это свойство на внешних устройствах.
Создатели виртуальных конечных точек могут установить это свойство на своих конечных точках.
kMIDIPropertyMaxReceiveChannels |
extern const CFStringRef kMIDIPropertyMaxReceiveChannels;
свойство устройства/объекта, целое число (0-16). Указывает максимальное количество каналов MIDI, на которых устройство может одновременно получить сообщения Канала MIDI. Общие ценности 0
(устройства, только реагирующие на Системные сообщения), 1 (немультитембральные устройства), и 16 (полностью мультитембральные устройства). Другие значения возможны, например устройства, которые являются
мультитембральный, но имеют меньше чем 16 «частей».
Новый для CoreMIDI 1.3.
kMIDIPropertyMaxSysExSpeed |
extern const CFStringRef kMIDIPropertyMaxSysExSpeed;
свойство устройства/объекта/конечной точки, целое число
Установленный драйвером владения; не должен быть затронут другими клиентами. Значение является максимальным уровнем в байтах/секунда, в которых могут сообщения sysex
будьте отправлены надежно в этот объект. (Значение по умолчанию 3125, как с MIDI 1.0),
kMIDIPropertyMaxTransmitChannels |
extern const CFStringRef kMIDIPropertyMaxTransmitChannels;
свойство устройства/объекта, целое число (0/1). Указывает максимальное количество каналов MIDI, на которых устройство может одновременно передать сообщения Канала MIDI. Общие ценности 0, 1
и 16.
Новый для CoreMIDI 1.3.
kMIDIPropertyModel |
extern const CFStringRef kMIDIPropertyModel;
свойство устройства/конечной точки, строка
Драйверы должны установить это свойство на своих устройствах.
Редакторы установки могут позволить пользователю устанавливать это свойство на внешних устройствах.
Создатели виртуальных конечных точек могут установить это свойство на своих конечных точках.
kMIDIPropertyName |
extern const CFStringRef kMIDIPropertyName;
свойство устройства/объекта/конечной точки, строка
Устройства, объекты и конечные точки могут все иметь имена. Рекомендуемый способ вывести на экран имя конечной точки состоит в том, чтобы попросить имя конечной точки и вывести на экран только, что имя, если это
уникальный. Если это является групповым, предварительно ожидайте имя устройства.
Редактор установки может позволить пользователю определять имена и и внешних устройств находившихся в собственности драйвера.
kMIDIPropertyNameConfiguration |
extern const CFStringRef kMIDIPropertyNameConfiguration;
свойство устройства/объекта/конечной точки, CFDictionary
Это указывает текущий патч устройства, примечание и значения имени элемента управления с помощью формата MIDINameDocument XML. Эта спецификация требует использования более высокого уровня,
Специфичные для OS конструкции за пределами спецификации, чтобы полностью определить текущие имена для устройства.
Свойство MIDINameConfiguration является implementated как CFDictionary:
ключевое «ведущее устройство» отображается на CFDataRef, содержащий AliasHandle, обращающийся к устройству
основной документ имени.
ключевые «банки» отображаются на CFDictionaryRef. Ключи этого словаря являются именами CFStringRef patchBank элементов в основном документе, и его значения - каждый CFDictionaryRef:
ключевой «файл» отображается на CFDataRef, содержащий AliasHandle к документу, содержащему патчи, переопределяющие тех в основном документе, и ключ «patchNameList» отображается на a
CFStringRef, который является именем patchNameList элемента в переопределяющем документе.
ключ «currentChannelNameSets» отображается на CFArrayRef с 16 элементами, каждым элементом которого является CFStringRef имени текущего режима для каждого из 16 каналов MIDI.
ключ «currentDeviceMode» отображается на CFStringRef, содержащий имя режима устройства.
Установка Clients это свойство должна проявить определенную заботу для сохранения значений словаря
кроме тех они интересуются изменением, и должным образом структурировать словарь.
Новый для CoreMIDI 1.3.
kMIDIPropertyOffline |
extern const CFStringRef kMIDIPropertyOffline;
свойство устройства/объекта/конечной точки, целое число
1 = устройство является оффлайновым (временно отсутствует), 0 = настоящее. Установленный драйвером владения, на устройстве; не должен быть затронут другими клиентами. Свойство наследовано от
устройство его объектами и конечными точками.
Новый для CoreMIDI 1.1 (OS X v10.1)
kMIDIPropertyPanDisruptsStereo |
extern const CFStringRef kMIDIPropertyPanDisruptsStereo;
свойство устройства/объекта, целое число (0/1). Указывает, обменивается ли панорамирование MIDI сообщениями (управляйте 10), когда отправлено в устройство или объект, вызовите нежелательные эффекты при игре стерео
звуки (например, преобразование сигнала к моно).
Новый для CoreMIDI 1.3.
kMIDIPropertyPrivate |
extern const CFStringRef kMIDIPropertyPrivate;
свойство устройства/объекта/конечной точки, целое число
1 = конечная точка является частной, скрытой от других клиентов. Может быть установлен на устройстве или объекте, но они все еще появятся в API; только влияние, являются ли находящиеся в собственности конечные точки
скрытый.
Новый для CoreMIDI 1.3.
kMIDIPropertyReceiveChannels |
extern const CFStringRef kMIDIPropertyReceiveChannels;
свойство конечной точки, целое число
Значение является битовым массивом каналов, на которых объект получает: 1=ch 1, 2=ch 2, 4=ch 3... 0x8000=ch 16.
Драйверы могут установить это свойство на своих объектах или конечных точках.
Редакторы установки могут позволить пользователю устанавливать это свойство на внешних конечных точках.
Виртуальное место назначения может установить это свойство на их конечных точках.
kMIDIPropertyReceivesBankSelectLSB |
extern const CFStringRef kMIDIPropertyReceivesBankSelectLSB;
свойство устройства/объекта, целое число (0/1). Указывает, реагируют ли устройство или объект на банк MIDI, выбирают сообщения LSB (управляйте 32).
Новый для CoreMIDI 1.3.
kMIDIPropertyReceivesBankSelectMSB |
extern const CFStringRef kMIDIPropertyReceivesBankSelectMSB;
свойство устройства/объекта, целое число (0/1). Указывает, реагируют ли устройство или объект на банк MIDI, выбирают сообщения MSB (управляйте 0).
Новый для CoreMIDI 1.3.
kMIDIPropertyReceivesClock |
extern const CFStringRef kMIDIPropertyReceivesClock;
свойство устройства/объекта, целое число (0/1). Указывает, реагируют ли устройство или объект на сообщения часов удара MIDI.
Новый для CoreMIDI 1.3.
kMIDIPropertyReceivesMTC |
extern const CFStringRef kMIDIPropertyReceivesMTC;
свойство устройства/объекта, целое число (0/1). Указывает, реагируют ли устройство или объект на сообщения Временного кода MIDI.
Новый для CoreMIDI 1.3.
kMIDIPropertyReceivesNotes |
extern const CFStringRef kMIDIPropertyReceivesNotes;
свойство устройства/объекта, целое число (0/1). Указывает, реагируют ли устройство или объект на Примечание MIDI По сообщениям.
Новый для CoreMIDI 1.3.
kMIDIPropertyReceivesProgramChanges |
extern const CFStringRef kMIDIPropertyReceivesProgramChanges;
свойство устройства/объекта, целое число (0/1). Указывает, реагируют ли устройство или объект на сообщения изменения программы MIDI.
Новый для CoreMIDI 1.3.
kMIDIPropertySingleRealtimeEntity |
extern const CFStringRef kMIDIPropertySingleRealtimeEntity;
свойство устройства, целое число
Некоторые MIDI-интерфейсы не могут направить MIDI сообщения в реальном времени к отдельным выводам; они широковещательно передаются. На таких устройствах инверсия является обычно также истиной - поступление в реальном времени
сообщения не могут быть идентифицированы как происходящий ни из какого определенного источника.
Когда это свойство установлено на устройстве драйвера, оно показывает индекс на основе 0 объекта, на котором входящие сообщения в реальном времени от устройства, будет казаться, будут иметь
порожденный из.
Новый для CoreMIDI 1.3.
kMIDIPropertySupportsGeneralMIDI |
extern const CFStringRef kMIDIPropertySupportsGeneralMIDI;
свойство устройства/объекта, целое число (0/1). Указывает, реализуют ли устройство или объект Общую спецификацию MIDI.
Новый для CoreMIDI 1.3.
kMIDIPropertySupportsMMC |
extern const CFStringRef kMIDIPropertySupportsMMC;
свойство устройства/объекта, целое число (0/1). Указывает, реализуют ли устройство или объект часть Управления Машиной MIDI спецификации MIDI.
Новый для CoreMIDI 1.3.
kMIDIPropertySupportsShowControl |
extern const CFStringRef kMIDIPropertySupportsShowControl;
свойство устройства/объекта, целое число (0/1). Указывает, показывают ли реализации устройства MIDI спецификацию Управления.
Новый для CoreMIDI 1.5.
kMIDIPropertyTransmitChannels |
extern const CFStringRef kMIDIPropertyTransmitChannels;
свойство конечной точки, целое число
Значение является битовым массивом каналов, на которых объект передает: 1=ch 1, 2=ch 2, 4=ch 3... 0x8000=ch 16.
Новый для CoreMIDI 1.3.
kMIDIPropertyTransmitsBankSelectLSB |
extern const CFStringRef kMIDIPropertyTransmitsBankSelectLSB;
свойство устройства/объекта, целое число (0/1). Указывает, выбирают ли устройство или банк MIDI передач объекта сообщения LSB (управляйте 32).
Новый для CoreMIDI 1.3.
kMIDIPropertyTransmitsBankSelectMSB |
extern const CFStringRef kMIDIPropertyTransmitsBankSelectMSB;
свойство устройства/объекта, целое число (0/1). Указывает, выбирают ли устройство или банк MIDI передач объекта сообщения MSB (управляйте 0).
Новый для CoreMIDI 1.3.
kMIDIPropertyTransmitsClock |
extern const CFStringRef kMIDIPropertyTransmitsClock;
свойство устройства/объекта, целое число (0/1). Указывает, передают ли устройство или объект сообщения часов удара MIDI.
Новый для CoreMIDI 1.3.
kMIDIPropertyTransmitsMTC |
extern const CFStringRef kMIDIPropertyTransmitsMTC;
свойство устройства/объекта, целое число (0/1). Указывает, передают ли устройство или объект сообщения Временного кода MIDI.
Новый для CoreMIDI 1.3.
kMIDIPropertyTransmitsNotes |
extern const CFStringRef kMIDIPropertyTransmitsNotes;
свойство устройства/объекта, целое число (0/1). Указывает, передают ли устройство или объект сообщения примечания MIDI.
Новый для CoreMIDI 1.3.
kMIDIPropertyTransmitsProgramChanges |
extern const CFStringRef kMIDIPropertyTransmitsProgramChanges;
свойство устройства/объекта, целое число (0/1). Указывает, передают ли устройство или объект сообщения изменения программы MIDI.
Новый для CoreMIDI 1.3.
kMIDIPropertyUniqueID |
extern const CFStringRef kMIDIPropertyUniqueID;
устройства, объекты, конечные точки у всех есть уникальный идентификатор, целое число
Система присваивает уникальный идентификатор всем объектам. Создатели виртуальных конечных точек могут установить это свойство на своих конечных точках, хотя выполнение так может перестать работать, если выбранный ID не
уникальный.
kMIDIPropertyUserPatchNameFile |
extern const CFStringRef kMIDIPropertyUserPatchNameFile;
свойство устройства/объекта/конечной точки, CFData, содержащий AliasHandle
Псевдоним текущему пользователю устройства исправляет файл имени.
Добавленный в CoreMIDI 1.1 (OS X v10.1). DEPRECATED с CoreMIDI 1.3. Используйте kMIDIPropertyNameConfiguration вместо этого.
MIDIClientRef |
Объект, поддерживающий на состояние клиента.
typedef MIDIObjectRef MIDIClientRef;
Происходит из MIDIObjectRef, не сделал, чтобы возразил владелец.
Для использования CoreMIDI приложение создает MIDIClientRef, к которому это может добавить MIDIPortRef, через который это может отправить и получить MIDI.
MIDICompletionProc |
Когда монопольное системой событие было полностью отправлено, функция вызвала.
typedef void ( *MIDICompletionProc)( MIDISysexSendRequest *request);
request
MIDISysexSendRequest, завершившийся или прерванный.
Функция обратного вызова для уведомления клиента относительно завершения вызова к MIDISendSysex.
MIDIDeviceRef |
MIDI-устройство или внешнее устройство, содержа объекты.
typedef MIDIObjectRef MIDIDeviceRef;
Происходит из MIDIObjectRef, не сделал, чтобы возразил владелец.
MIDI-устройство, или присоединяющее непосредственно к компьютеру и управляющееся драйвером MIDI, или которое является «внешним», означая, что это подключено к управляемому драйвером
устройство через стандартный кабель MIDI.
MIDIDeviceRef имеет свойства и содержит MIDIEntityRef.
MIDIEndpointRef |
Источник MIDI или место назначения, принадлежавшее объекту.
typedef MIDIObjectRef MIDIEndpointRef;
Происходит из MIDIObjectRef, принадлежавшего MIDIEntityRef, если это не виртуальная конечная точка, когда нет никакого объекта владения.
Объекты имеют любое число MIDIEndpointRef, источники и места назначения с 16 каналами
Потоки MIDI.
MIDIEntityRef |
Объект MIDI, принадлежавший устройству, содержа конечные точки.
typedef MIDIObjectRef MIDIEntityRef;
Происходит из MIDIObjectRef, принадлежавшего MIDIDeviceRef.
Устройства могут иметь многократные логически отличные субкомпоненты, например, синтезатор MIDI и пару портов MIDI, оба адресуемые через USB-порт.
Путем группировки конечных точек устройства в объекты система имеет достаточно информации для
приложение для создания разумных предположений о том, как связаться реверсивным способом с каждым объектом, как желательно в библиотекаре MIDI приложения.
Этими субкомпонентами является MIDIEntityRef.
MIDINotifyProc |
Функция обратного вызова для уведомления клиентов изменений состояния.
typedef void ( *MIDINotifyProc)( const MIDINotification *message, void *refCon);
message
Структура, содержащая информацию о том, что изменилось.
refCon
refCon клиента передал MIDIClientCreate.
Когда некоторый аспект текущего MIDI устанавливает изменения, эту функцию обратного вызова вызывают. Это вызывают на runloop (поток), на котором сначала вызвали MIDIClientCreate.
MIDIObjectRef |
Базовый класс многих объектов CoreMIDI.
typedef UInt32 MIDIObjectRef;
MIDIObject является базовым классом для многих объектов в CoreMIDI. У них есть свойства, и часто объект «владельца», от которого они наследовали любые свойства, которые они не делают
самостоятельно имейте.
Разработчики могут добавить свои собственные частные собственности, имена которых должны начаться с инвертированного доменного имени своей компании, как на имена пакета Java, но с подчеркиваниями вместо этого
из точек, например: com_apple_APrivateAppleProperty
MIDIPortRef |
Порт подключения MIDI принадлежит клиенту.
typedef MIDIObjectRef MIDIPortRef;
Происходит из MIDIObjectRef, принадлежавшего MIDIClientRef.
MIDIPortRef, который может быть входным портом или выходным портом, является объектом, через который клиент может связаться с любым числом источников MIDI или мест назначения.
MIDIReadProc |
Функция, получающая MIDI, вводится.
typedef void ( *MIDIReadProc)( const MIDIPacketList *pktlist, void *readProcRefCon, void *srcConnRefCon);
pktlist
Входящее сообщение (я) MIDI.
readProcRefCon
refCon Вы передали MIDIInputPortCreate или MIDIDestinationCreate
srcConnRefCon
refCon, который Вы передали MIDIPortConnectSource, идентифицирующему источник данных.
Это - функция обратного вызова, через которую клиент получает входящие сообщения MIDI.
Указатель функции MIDIReadProc передается функциям MIDIInputPortCreate и MIDIDestinationCreate. Платформа CoreMIDI создаст высокий приоритет
получите поток от имени своего клиента, и от того потока, Ваш MIDIReadProc вызовут при поступлении, сообщения MIDI поступают. Поскольку эта функция вызвана от a
разделите поток, знать о проблемах синхронизации при доступе к данным в этом обратном вызове.
MIDITimeStamp |
Узел показывает время.
typedef UInt64 MIDITimeStamp;
Время часов узла, представляя время события, как возвращено mach_absolute_time () или UpTime ().
Так как приложения MIDI будут иметь тенденцию делать изрядное количество математики с временами событий,
более удобно использовать UInt64, чем AbsoluteTime.
См. CoreAudio/HostTime.h.
MIDIUniqueID |
Уникальный идентификатор для MIDIObjectRef.
typedef SInt32 MIDIUniqueID;
Целое число, однозначно определяющее MIDIObjectRef.
MIDINotification |
Сообщение, описывающее системное изменение состояния.
struct MIDINotification { MIDINotificationMessageID messageID; UInt32 messageSize; // additional data may follow, depending on messageID };
messageID
тип сообщения
messageSize
размер всего сообщения, включая messageID и messageSize
Когда CoreMIDI хочет сообщить клиенту изменения в состоянии системы, MIDINotification является структурой, переданной MIDINotifyProc.
MIDIObjectAddRemoveNotification |
Сообщение, описывающее дополнение или удаление объекта.
struct MIDIObjectAddRemoveNotification { MIDINotificationMessageID messageID; UInt32 messageSize; MIDIObjectRef parent; MIDIObjectType parentType; MIDIObjectRef child; MIDIObjectType childType; };
messageID
тип сообщения
messageSize
размер всего сообщения, включая messageID и messageSize
parent
родитель добавленного или удаленного объекта (возможно NULL)
parentType
тип родительского объекта (неопределенный, если родителем является NULL),
child
добавленный или удаленный объект
childType
тип добавленного или удаленного объекта
MIDIObjectPropertyChangeNotification |
Сообщение, описывающее дополнение или удаление объекта.
struct MIDIObjectPropertyChangeNotification { MIDINotificationMessageID messageID; UInt32 messageSize; MIDIObjectRef object; MIDIObjectType objectType; CFStringRef propertyName; };
messageID
тип сообщения
messageSize
размер всего сообщения, включая messageID и messageSize
object
объект, свойство которого изменилось
objectType
тип объекта, свойство которого изменилось
propertyName
имя измененного свойства
MIDIPacket |
Набор одновременных событий MIDI.
struct MIDIPacket { MIDITimeStamp timeStamp; UInt16 length; Byte data[256]; };
timeStamp
Время, в которое события имели место, при получении MIDI, или, при отправке MIDI, время, в которое события к
играться. Нуль означает «теперь». Метка времени применяется к первому байту MIDI в пакете.
length
Число допустимых байтов MIDI, следующих в данных. (Это может быть больше, чем 256 байтов, если пакет динамично
выделенный.)
data
Поток переменной длины сообщений MIDI. Рабочее состояние не позволяется. В случае монопольного системой
сообщения, пакет может только содержать единственное сообщение или часть одной, без других событий MIDI.
Сообщения MIDI в пакете должны всегда быть завершены,
за исключением монопольного системой.
(Это, как объявляют, 256 байтов в длине, таким образом, клиенты не должны создавать пользовательские структуры данных в простом
ситуации.)
MIDIPacketList |
Список событий MIDI, получаемых из или отправляемых в, одна конечная точка.
struct MIDIPacketList { UInt32 numPackets; MIDIPacket packet[1]; };
numPackets
Число MIDIPackets в списке.
packet
Открытый массив переменной длины MIDIPackets.
Метки времени в пакетном списке должны быть в порядке возрастания.
Обратите внимание на то, что к пакетам в списке, в то время как определено как массив, нельзя получить доступ как массив, так как они - переменная длина. Выполнить итерации через
пакеты в пакетном списке, используйте цикл, такой как:
MIDIPacket *packet = &packetList->packet[0]; for (int i = 0; i < packetList->numPackets; ++i) { ... packet = MIDIPacketNext(packet); }
MIDISysexSendRequest |
Запрос для передачи монопольного системой события.
struct MIDISysexSendRequest { MIDIEndpointRef destination; const Byte *data; UInt32 bytesToSend; Boolean complete; Byte reserved[3]; MIDICompletionProc completionProc; void *completionRefCon; };
destination
Конечная точка, в которую должно быть отправлено событие.
data
Первоначально, указатель на sys-исключая событие, которое будет отправлено. MIDISendSysex усовершенствует этот указатель, как байты
отправленный.
bytesToSend
Первоначально, число байтов, которые будут отправлены. MIDISendSysex постепенно уменьшит этот счетчик, когда отправляются байты.
complete
Клиент может установить это в истину в любое время для прерывания передачи. Реализация устанавливает это в истину когда
все байты были отправлены.
completionProc
Вызванный, когда все байты были отправлены, или после того, как клиент установил завершенный в истину.
completionRefCon
Переданный как refCon completionProc.
Это представляет запрос, чтобы отправить монопольное единой системой событие MIDI месту назначения MIDI асинхронно.
Ошибочные константы |
Ошибочные константы, уникальные для Core MIDI.
enum { kMIDIInvalidClient = -10830, kMIDIInvalidPort = -10831, kMIDIWrongEndpointType = -10832, kMIDINoConnection = -10833, kMIDIUnknownEndpoint = -10834, kMIDIUnknownProperty = -10835, kMIDIWrongPropertyType = -10836, kMIDINoCurrentSetup = -10837, kMIDIMessageSendErr = -10838, kMIDIServerStartErr = -10839, kMIDISetupFormatErr = -10840, kMIDIWrongThread = -10841, kMIDIObjectNotFound = -10842, kMIDIIDNotUnique = -10843 };
kMIDIInvalidClient
Был передан недопустимый MIDIClientRef.
kMIDIInvalidPort
Был передан недопустимый MIDIPortRef.
kMIDIWrongEndpointType
Исходная конечная точка была передана функции, ожидая место назначения, или наоборот.
kMIDINoConnection
Попытайтесь закрыть non-existant соединение.
kMIDIUnknownEndpoint
Был передан недопустимый MIDIEndpointRef.
kMIDIUnknownProperty
Попытайтесь запросить свойство не набор на объекте.
kMIDIWrongPropertyType
Попытайтесь установить свойство со значением не корректного типа.
kMIDINoCurrentSetup
Внутренняя ошибка; нет никакого текущего объекта установки MIDI.
kMIDIMessageSendErr
Связь с MIDIServer перестала работать.
kMIDIServerStartErr
Неспособный запустить MIDIServer.
kMIDISetupFormatErr
Неспособный считать сохраненное состояние.
kMIDIWrongThread
Драйвер вызывает функцию non-I/O в сервере от потока кроме основного потока сервера.
kMIDIObjectNotFound
Нужный объект не существует.
kMIDIIDNotUnique
Попытайтесь установить групповой kMIDIPropertyUniqueID на объекте.
Это ошибочные константы, которые уникальны для Core MIDI. Обратите внимание на то, что функции Core MIDI могут возвратить другие коды, не перечисленные здесь.
MIDINotificationMessageID |
Показывает тип MIDINotification.
enum { // MIDINotificationMessageID kMIDIMsgSetupChanged = 1, kMIDIMsgObjectAdded = 2, kMIDIMsgObjectRemoved = 3, kMIDIMsgPropertyChanged = 4, kMIDIMsgThruConnectionsChanged = 5, kMIDIMsgSerialPortOwnerChanged = 6, kMIDIMsgIOError = 7 };
kMIDIMsgSetupChanged
Некоторый аспект текущего MIDISetup изменился. Никакие данные. Должен проигнорировать это
обменивайтесь сообщениями, если обрабатываются сообщения 2-6.
kMIDIMsgObjectAdded
Устройство, объект или конечная точка были добавлены. Структурой является MIDIObjectAddRemoveNotification.
Новый для CoreMIDI 1.3.
kMIDIMsgObjectRemoved
Устройство, объект или конечная точка были демонтированы. Структурой является MIDIObjectAddRemoveNotification.
Новый для CoreMIDI 1.3.
kMIDIMsgPropertyChanged
Свойство объекта было изменено. Структурой является MIDIObjectPropertyChangeNotification.
Новый для CoreMIDI 1.3.
kMIDIMsgThruConnectionsChanged
Персистентный MIDI Через соединение был создан или уничтожен. Никакие данные. Новый для CoreMIDI 1.3.
kMIDIMsgSerialPortOwnerChanged
Персистентный MIDI Через соединение был создан или уничтожен. Никакие данные. Новый для CoreMIDI 1.3.
kMIDIMsgIOError
Драйвер ошибка I/O произошел.
MIDIObjectType |
Показывает тип MIDIObject.
enum { // MIDIObjectType kMIDIObjectType_Other = -1, kMIDIObjectType_Device = 0, kMIDIObjectType_Entity = 1, kMIDIObjectType_Source = 2, kMIDIObjectType_Destination = 3, kMIDIObjectType_ExternalMask = 0x10, kMIDIObjectType_ExternalDevice = kMIDIObjectType_ExternalMask | kMIDIObjectType_Device, kMIDIObjectType_ExternalEntity = kMIDIObjectType_ExternalMask | kMIDIObjectType_Entity, kMIDIObjectType_ExternalSource = kMIDIObjectType_ExternalMask | kMIDIObjectType_Source, kMIDIObjectType_ExternalDestination = kMIDIObjectType_ExternalMask | kMIDIObjectType_Destination };
Показывает реальный тип экземпляра MIDIObjectRef.
Последнее обновление: 06.06.2008