Spec-Zone .ru
спецификации, руководства, описания, API
ADC домой > Ссылочная библиотека> Ссылка> Аудио> Core Audio> Ссылка Платформы Core MIDI

 


MIDIServices.h

Включает:
<CoreFoundation/CoreFoundation.h>
<stddef.h>

Обзор

Это - заголовочный файл для системных служб MIDI OS X.

Обзор API

Драйверы собственные и управляющие устройства, например, интерфейсы 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 для передачи с отдельным ядром

расширение.

Отметьте о типах данных CoreFoundation (CFString, CFData, CFDictionary)

При передаче объекта 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.


Функции

MIDIClientCreate

Создает объект MIDIClient.

MIDIClientDispose

Располагает объект MIDIClient.

MIDIDestinationCreate

Создает виртуальное место назначения в клиенте.

MIDIDeviceGetEntity

Возвраты один из объектов данного устройства.

MIDIDeviceGetNumberOfEntities

Возвращает число объектов в данном устройстве.

MIDIEndpointDispose

Располагает виртуальный источник или место назначения, которое создал Ваш клиент.

MIDIEndpointGetEntity

Возвращает объект конечной точки.

MIDIEntityGetDestination

Возвраты одно из мест назначения данного объекта.

MIDIEntityGetDevice

Возвращает устройство объекта.

MIDIEntityGetNumberOfDestinations

Возвращает число мест назначения в данном объекте.

MIDIEntityGetNumberOfSources

Возвращает число источников в данном объекте.

MIDIEntityGetSource

Возвраты один из источников данного объекта.

MIDIFlushOutput

Нерасписания, ранее отправленные пакеты.

MIDIGetDestination

Возвраты одно из мест назначения в системе.

MIDIGetDevice

Возвраты одно из устройств в системе.

MIDIGetExternalDevice

Возвраты одно из внешних устройств в системе.

MIDIGetNumberOfDestinations

Возвращает число мест назначения в системе.

MIDIGetNumberOfDevices

Возвращает число устройств в системе.

MIDIGetNumberOfExternalDevices

Возвращает число внешних MIDI-устройств в системе.

MIDIGetNumberOfSources

Возвращает число источников в системе.

MIDIGetSource

Возвраты один из источников в системе.

MIDIInputPortCreate

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

MIDIObjectFindByUniqueID

Определяет местоположение устройства, внешнего устройства, объекта или конечной точки ее uniqueID.

MIDIObjectGetDataProperty

Получает свойство типа данных объекта.

MIDIObjectGetDictionaryProperty

Получает свойство типа словаря объекта.

MIDIObjectGetIntegerProperty

Получает свойство целого типа объекта.

MIDIObjectGetProperties

Получает все свойства объекта.

MIDIObjectGetStringProperty

Получает свойство строкового типа объекта.

MIDIObjectRemoveProperty

Удаляет свойство объекта.

MIDIObjectSetDataProperty

Устанавливает свойство типа данных объекта.

MIDIObjectSetDictionaryProperty

Устанавливает свойство типа словаря объекта.

MIDIObjectSetIntegerProperty

Устанавливает свойство целого типа объекта.

MIDIObjectSetStringProperty

Устанавливает свойство строкового типа объекта.

MIDIOutputPortCreate

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

MIDIPacketListAdd

Добавляет событие MIDI к MIDIPacketList.

MIDIPacketListInit

Подготавливает MIDIPacketList, который будет накоплен динамично.

MIDIPacketNext

Совершенствует указатель MIDIPacket на MIDIPacket, сразу следующий за ним в памяти, если это - часть MIDIPacketList.

MIDIPortConnectSource

Устанавливает соединение от источника до входного порта клиента.

MIDIPortDisconnectSource

Закрывает ранее установленное соединение источника к входному порту.

MIDIPortDispose

Располагает объект MIDIPort.

MIDIReceived

Распределяет входящий MIDI от источника до клиентских входных портов, подключенных к тому источнику.

MIDIRestart

Остановки и перезапуски MIDI I/O.

MIDISend

Отправляет MIDI месту назначения.

MIDISendSysex

Отправляет монопольное единой системой событие, асинхронно.

MIDISourceCreate

Создает виртуальный источник в клиенте.


MIDIClientCreate


Создает объект MIDIClient.

extern OSStatus MIDIClientCreate(
    CFStringRef name, 
    MIDINotifyProc notifyProc, 
    void *notifyRefCon, 
    MIDIClientRef *outClient );  
Параметры
name

Имя клиента.

notifyProc

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

notifyRefCon

refCon, пасуемый назад к notifyRefCon

outClient

По успешному возврату, точкам к недавно создаваемому MIDIClientRef.

Возвращаемое значение

OSStatus заканчивается код.

Обсуждение

Обратите внимание на то, что notifyProc будут всегда вызывать на цикле выполнения, который был текущим, когда сначала вызвали MIDIClientCreate.

Доступность
Представленный в OS X v10.0.

MIDIClientDispose


Располагает объект MIDIClient.

extern OSStatus MIDIClientDispose(
    MIDIClientRef client );  
Параметры
client

Клиент для расположения.

Возвращаемое значение

OSStatus заканчивается код.

Обсуждение

Не важно вызвать эту функцию; когда приложение завершится, платформа CoreMIDI автоматически расположит весь MIDIClients.

Доступность
Представленный в OS X v10.0.

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 месту назначения и когда это

полученный.

Доступность
Представленный в OS X v10.0.

MIDIDeviceGetEntity


Возвраты один из объектов данного устройства.

extern MIDIEntityRef MIDIDeviceGetEntity(
    MIDIDeviceRef device, 
    ItemCount entityIndex0 );  
Параметры
device

Запрашиваемое устройство.

entityIndex0

Индекс (0... MIDIDeviceGetNumberOfEntities (устройство)-1) объекта для возврата

Возвращаемое значение

Ссылка на объект или NULL, если произошла ошибка.

Доступность
Представленный в OS X v10.0.

MIDIDeviceGetNumberOfEntities


Возвращает число объектов в данном устройстве.

extern ItemCount MIDIDeviceGetNumberOfEntities(
    MIDIDeviceRef device );  
Параметры
device

Запрашиваемое устройство.

Возвращаемое значение

Число объектов, которые устройство содержит, или 0, если произошла ошибка.

Доступность
Представленный в OS X v10.0.

MIDIEndpointDispose


Располагает виртуальный источник или место назначения, которое создал Ваш клиент.

extern OSStatus MIDIEndpointDispose(
    MIDIEndpointRef endpt );  
Параметры
endpt

Конечная точка, которая будет расположена.

Возвращаемое значение

OSStatus заканчивается код.

Доступность
Представленный в OS X v10.0.

MIDIEndpointGetEntity


Возвращает объект конечной точки.

extern OSStatus MIDIEndpointGetEntity(
    MIDIEndpointRef inEndpoint, 
    MIDIEntityRef *outEntity);  
Параметры
inEndpoint

Запрашиваемая конечная точка.

outEntity

На выходе, объекте владения конечной точки или NULL, если ни один.

Обсуждение

У виртуальных источников и мест назначения нет объектов.

Доступность
Представленный в OS X v10.2

MIDIEntityGetDestination


Возвраты одно из мест назначения данного объекта.

extern MIDIEndpointRef MIDIEntityGetDestination(
    MIDIEntityRef entity, 
    ItemCount destIndex0 );  
Параметры
entity

Запрашиваемый объект.

destIndex0

Индекс (0... MIDIEntityGetNumberOfDestinations (объект) - 1) места назначения для возврата

Возвращаемое значение

Ссылка на место назначения или NULL, если произошла ошибка.

Доступность
Представленный в OS X v10.0.

MIDIEntityGetDevice


Возвращает устройство объекта.

extern OSStatus MIDIEntityGetDevice(
    MIDIEntityRef inEntity, 
    MIDIDeviceRef *outDevice);  
Параметры
inEntity

Запрашиваемый объект.

outDevice

По успешному возврату, устройству владения объекта.

Доступность
Представленный в OS X v10.2

MIDIEntityGetNumberOfDestinations


Возвращает число мест назначения в данном объекте.

extern ItemCount MIDIEntityGetNumberOfDestinations(
    MIDIEntityRef entity );  
Параметры
entity

Запрашиваемый объект

Возвращаемое значение

Число мест назначения, которые объект содержит, или 0, если произошла ошибка.

Доступность
Представленный в OS X v10.0.

MIDIEntityGetNumberOfSources


Возвращает число источников в данном объекте.

extern ItemCount MIDIEntityGetNumberOfSources(
    MIDIEntityRef entity );  
Параметры
entity

Запрашиваемый объект

Возвращаемое значение

Число источников, которые объект содержит, или 0, если произошла ошибка.

Доступность
Представленный в OS X v10.0.

MIDIEntityGetSource


Возвраты один из источников данного объекта.

extern MIDIEndpointRef MIDIEntityGetSource(
    MIDIEntityRef entity, 
    ItemCount sourceIndex0 );  
Параметры
entity

Запрашиваемый объект.

sourceIndex0

Индекс (0... MIDIEntityGetNumberOfSources (объект)-1) источника для возврата

Возвращаемое значение

Ссылка на источник или NULL, если произошла ошибка.

Доступность
Представленный в OS X v10.0.

MIDIFlushOutput


Нерасписания, ранее отправленные пакеты.

extern OSStatus MIDIFlushOutput(
    MIDIEndpointRef dest );  
Параметры
dest

Все незаконченные события, которые, как запланировали, будут отправлены этому месту назначения, не запланированы. ЕСЛИ НОЛЬ, работа применяется к

все места назначения.

Обсуждение

Клиенты могут использовать MIDIFlushOutput для отмены отправки пакетов, ранее запланированных для будущей поставки.

Доступность
Представленный в OS X v10.1.

MIDIGetDestination


Возвраты одно из мест назначения в системе.

extern MIDIEndpointRef MIDIGetDestination(
    ItemCount destIndex0 );  
Параметры
destIndex0

Индекс (0... MIDIGetNumberOfDestinations ()-1) места назначения для возврата

Возвращаемое значение

Ссылка на место назначения или NULL, если произошла ошибка.

Доступность
Представленный в OS X v10.0.

MIDIGetDevice


Возвраты одно из устройств в системе.

extern MIDIDeviceRef MIDIGetDevice(
    ItemCount deviceIndex0 );  
Параметры
deviceIndex0

Индекс (0... MIDIGetNumberOfDevices ()-1) устройства для возврата.

Возвращаемое значение

Ссылка на устройство или NULL, если произошла ошибка.

Обсуждение

Используйте это для перечисления устройств в системе.

Для перечисления объектов в системе можно идти через устройства, затем идти через объекты устройств.

Примечание: Если клиент выполнит итерации через устройства и объекты в системе, то она не будет

когда-либо посещайте любые виртуальные источники и места назначения, создаваемые другими клиентами. Кроме того, итерация устройства возвратит устройства, которые являются «оффлайновыми» (присутствовали в прошлом, но

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

Таким образом клиенты должны обычно использовать MIDIGetNumberOfSources, MIDIGetSource,

MIDIGetNumberOfDestinations и MIDIGetDestination, довольно выполняющий итерации через устройства и объекты для определения местоположения конечных точек.

Доступность
Представленный в OS X v10.0.

MIDIGetExternalDevice


Возвраты одно из внешних устройств в системе.

extern MIDIDeviceRef MIDIGetExternalDevice(
    ItemCount deviceIndex0 );  
Параметры
deviceIndex0

Индекс (0... MIDIGetNumberOfDevices ()-1) устройства для возврата.

Возвращаемое значение

Ссылка на устройство или NULL, если произошла ошибка.

Обсуждение

Используйте это для перечисления внешних устройств в системе.

Доступность
Представленный в OS X v10.1.

MIDIGetNumberOfDestinations


Возвращает число мест назначения в системе.

extern ItemCount MIDIGetNumberOfDestinations();  
Возвращаемое значение

Число мест назначения в системе, или 0, если произошла ошибка.

Доступность
Представленный в OS X v10.0.

MIDIGetNumberOfDevices


Возвращает число устройств в системе.

extern ItemCount MIDIGetNumberOfDevices();  
Возвращаемое значение

Число устройств в системе, или 0, если произошла ошибка.

Доступность
Представленный в OS X v10.0.

MIDIGetNumberOfExternalDevices


Возвращает число внешних MIDI-устройств в системе.

extern ItemCount MIDIGetNumberOfExternalDevices();  
Возвращаемое значение

Число внешних устройств в системе, или 0, если произошла ошибка.

Обсуждение

Внешние MIDI-устройства являются MIDI-устройствами, подключенными к конечным точкам драйвера через стандартный кабель MIDI. Их присутствие является абсолютно дополнительным, только когда UI (такой как Аудио Установка MIDI)

добавляет их.

Доступность
Представленный в OS X v10.1.

MIDIGetNumberOfSources


Возвращает число источников в системе.

extern ItemCount MIDIGetNumberOfSources();  
Возвращаемое значение

Число источников в системе, или 0, если произошла ошибка.

Доступность
Представленный в OS X v10.0.

MIDIGetSource


Возвраты один из источников в системе.

extern MIDIEndpointRef MIDIGetSource(
    ItemCount sourceIndex0 );  
Параметры
sourceIndex0

Индекс (0... MIDIGetNumberOfSources ()-1) источника для возврата

Возвращаемое значение

Ссылка на источник или NULL, если произошла ошибка.

Доступность
Представленный в OS X v10.0.

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.

Доступность
Представленный в OS X v10.0.

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.

Доступность
Представленный в OS X v10.2

MIDIObjectGetDataProperty


Получает свойство типа данных объекта.

extern OSStatus MIDIObjectGetDataProperty(
    MIDIObjectRef obj, 
    CFStringRef propertyID, 
    CFDataRef *outData );  
Параметры
obj

Объект, свойство которого должно быть возвращено.

propertyID

Имя свойства для возврата.

outData

По успешному возврату, значению свойства.

Возвращаемое значение

OSStatus заканчивается код.

Обсуждение

(См. документацию MIDIObjectRef для получения информации о свойствах.)

Доступность
Представленный в OS X v10.0.

MIDIObjectGetDictionaryProperty


Получает свойство типа словаря объекта.

extern OSStatus MIDIObjectGetDictionaryProperty(
    MIDIObjectRef obj, 
    CFStringRef propertyID, 
    CFDictionaryRef *outDict ) ;  
Параметры
obj

Объект, свойство которого должно быть возвращено.

propertyID

Имя свойства для возврата.

outDict

По успешному возврату, значению свойства.

Возвращаемое значение

OSStatus заканчивается код.

Обсуждение

(См. документацию MIDIObjectRef для получения информации о свойствах.)

Доступность
Представленный в OS X v10.2

MIDIObjectGetIntegerProperty


Получает свойство целого типа объекта.

extern OSStatus MIDIObjectGetIntegerProperty(
    MIDIObjectRef obj, 
    CFStringRef propertyID, 
    SInt32 *outValue );  
Параметры
obj

Объект, свойство которого должно быть возвращено.

propertyID

Имя свойства для возврата.

outValue

По успешному возврату, значению свойства.

Возвращаемое значение

OSStatus заканчивается код.

Обсуждение

(См. документацию MIDIObjectRef для получения информации о свойствах.)

Доступность
Представленный в OS X v10.0.

MIDIObjectGetProperties


Получает все свойства объекта.

extern OSStatus MIDIObjectGetProperties(
    MIDIObjectRef obj, 
    CFPropertyListRef *outProperties, 
    Boolean deep );  
Параметры
obj

Объект, свойства которого должны быть возвращены.

outProperties

По успешному возврату, свойствам объекта.

deep

истина, если дочерние объекты объекта должны быть включены (например, объекты устройства или конечные точки объекта).

Возвращаемое значение

OSStatus заканчивается код.

Обсуждение

Возвращает CFPropertyList всех свойств объекта. Список свойств может быть словарем или массивом. Словари отображают имена свойства (CFString) на могущие значения,

будьте CFNumber, CFString или CFData. Массивы являются массивами таких значений.

Свойства, которые объект наследовал от его объекта владения (если таковые имеются) не включены.

Доступность
Представленный в OS X v10.1.

MIDIObjectGetStringProperty


Получает свойство строкового типа объекта.

extern OSStatus MIDIObjectGetStringProperty(
    MIDIObjectRef obj, 
    CFStringRef propertyID, 
    CFStringRef *str );  
Параметры
obj

Объект, свойство которого должно быть возвращено.

propertyID

Имя свойства для возврата.

str

По успешному возврату, значению свойства.

Возвращаемое значение

OSStatus заканчивается код.

Обсуждение

(См. документацию MIDIObjectRef для получения информации о свойствах.)

Доступность
Представленный в OS X v10.0.

MIDIObjectRemoveProperty


Удаляет свойство объекта.

extern OSStatus MIDIObjectRemoveProperty(
    MIDIObjectRef obj, 
    CFStringRef propertyID ) ;  
Параметры
obj

Объект, свойство которого должно быть удалено.

propertyID

Свойство, которое будет удалено.

Возвращаемое значение

OSStatus заканчивается код.

Доступность
Представленный в OS X v10.2

MIDIObjectSetDataProperty


Устанавливает свойство типа данных объекта.

extern OSStatus MIDIObjectSetDataProperty(
    MIDIObjectRef obj, 
    CFStringRef propertyID, 
    CFDataRef data );  
Параметры
obj

Объект, свойство которого должно быть изменено.

propertyID

Имя свойства для установки.

data

Новое значение свойства.

Возвращаемое значение

OSStatus заканчивается код.

Обсуждение

(См. документацию MIDIObjectRef для получения информации о свойствах.)

Доступность
Представленный в OS X v10.0.

MIDIObjectSetDictionaryProperty


Устанавливает свойство типа словаря объекта.

extern OSStatus MIDIObjectSetDictionaryProperty(
    MIDIObjectRef obj, 
    CFStringRef propertyID, 
    CFDictionaryRef data );  
Параметры
obj

Объект, свойство которого должно быть изменено.

propertyID

Имя свойства для установки.

dict

Новое значение свойства.

Возвращаемое значение

OSStatus заканчивается код.

Обсуждение

(См. документацию MIDIObjectRef для получения информации о свойствах.)

Доступность
Представленный в OS X v10.2

MIDIObjectSetIntegerProperty


Устанавливает свойство целого типа объекта.

extern OSStatus MIDIObjectSetIntegerProperty(
    MIDIObjectRef obj, 
    CFStringRef propertyID, 
    SInt32 value );  
Параметры
obj

Объект, свойство которого должно быть изменено.

propertyID

Имя свойства для установки.

value

Новое значение свойства.

Возвращаемое значение

OSStatus заканчивается код.

Обсуждение

(См. документацию MIDIObjectRef для получения информации о свойствах.)

Доступность
Представленный в OS X v10.0.

MIDIObjectSetStringProperty


Устанавливает свойство строкового типа объекта.

extern OSStatus MIDIObjectSetStringProperty(
    MIDIObjectRef obj, 
    CFStringRef propertyID, 
    CFStringRef str );  
Параметры
obj

Объект, свойство которого должно быть изменено.

propertyID

Имя свойства для установки.

str

Новое значение свойства.

Возвращаемое значение

OSStatus заканчивается код.

Обсуждение

(См. документацию MIDIObjectRef для получения информации о свойствах.)

Доступность
Представленный в OS X v10.0.

MIDIOutputPortCreate


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

extern OSStatus MIDIOutputPortCreate(
    MIDIClientRef client, 
    CFStringRef portName, 
    MIDIPortRef *outPort );  
Параметры
client

Клиент для владения недавно создаваемым портом

portName

Имя порта.

outPort

По успешному возврату, точкам к недавно создаваемому MIDIPort.

Возвращаемое значение

OSStatus заканчивается код.

Обсуждение

Выходные порты обеспечивают механизм для слияния MIDI. CoreMIDI предполагает, что каждый выходной порт будет ответственен за отправку только единственного потока MIDI каждому месту назначения,

несмотря на то, что единственный порт может адресовать все места назначения в системе.

Когда приложение способно к направлению многократных одновременных потоков MIDI тому же месту назначения, многократные выходные порты только необходимы.

Доступность
Представленный в OS X v10.0.

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 должны быть отправлены в списках пакета меньшего размера.

Доступность
Представленный в OS X v10.0.

MIDIPacketListInit


Подготавливает MIDIPacketList, который будет накоплен динамично.

extern MIDIPacket * MIDIPacketListInit(
    MIDIPacketList *pktlist );  
Параметры
pktlist

Пакетный список, который будет инициализирован.

Возвращаемое значение

Указатель на первый MIDIPacket в пакетном списке.

Доступность
Представленный в OS X v10.0.

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 заканчивается код.

Доступность
Представленный в OS X v10.0.

MIDIPortDisconnectSource


Закрывает ранее установленное соединение источника к входному порту.

extern OSStatus MIDIPortDisconnectSource(
    MIDIPortRef port, 
    MIDIEndpointRef source );  
Параметры
port

Порт, соединение которого закрывается.

source

Источник, из которого можно закрыть соединение с указанным портом.

Возвращаемое значение

OSStatus заканчивается код.

Доступность
Представленный в OS X v10.0.

MIDIPortDispose


Располагает объект MIDIPort.

extern OSStatus MIDIPortDispose(
    MIDIPortRef port );  
Параметры
port

Порт для расположения.

Возвращаемое значение

OSStatus заканчивается код.

Обсуждение

Не обычно необходимо вызвать эту функцию; когда MIDIClient's приложения автоматически расположен в завершении, или явно, через MIDIClientDispose,

в то время автоматически расположены порты клиента.

Доступность
Представленный в OS X v10.0.

MIDIReceived


Распределяет входящий MIDI от источника до клиентских входных портов, подключенных к тому источнику.

extern OSStatus MIDIReceived(
    MIDIEndpointRef src, 
    const MIDIPacketList *pktlist );  
Параметры
src

Источник, передающий MIDI.

pktlist

События MIDI, которые будут переданы.

Возвращаемое значение

OSStatus заканчивается код.

Обсуждение

Драйверы должны вызвать эту функцию при получении MIDI из источника.

Клиенты, создавшие виртуальные источники, с помощью MIDISourceCreate, должны вызвать эту функцию, когда источник генерирует MIDI.

В отличие от MIDISend (), метка времени 0 не эквивалентна «теперь»; драйвер или виртуальный

источник ответственен за помещение надлежащих меток времени в пакетах.

Доступность
Представленный в OS X v10.0.

MIDIRestart


Остановки и перезапуски MIDI I/O.

extern OSStatus MIDIRestart();  
Возвращаемое значение

OSStatus заканчивается код.

Обсуждение

Это полезно для того, чтобы вынуждать CoreMIDI попросить, чтобы его драйверы повторно отсканировали для аппаратных средств.

Доступность
Представленный в OS X v10.1.

MIDISend


Отправляет MIDI месту назначения.

extern OSStatus MIDISend(
    MIDIPortRef port, 
    MIDIEndpointRef dest, 
    const MIDIPacketList *pktlist );  
Параметры
port

Выходной порт, через который должен быть отправлен MIDI.

dest

Место назначения для получения событий.

pktlist

События MIDI, которые будут отправлены.

Возвращаемое значение

OSStatus заканчивается код.

Обсуждение

События с будущими метками времени планируются для будущей поставки. CoreMIDI выполняет, любому было нужно слияние MIDI.

Доступность
Представленный в OS X v10.0.

MIDISendSysex


Отправляет монопольное единой системой событие, асинхронно.

extern OSStatus MIDISendSysex(
    MIDISysexSendRequest *request );  
Параметры
request

Содержит место назначения и указатель на данные MIDI, которые будут отправлены.

Возвращаемое значение

OSStatus заканчивается код.

Обсуждение

запрос-> данные должен указать на единственный MIDI на монопольное системой сообщение или часть этого.

Доступность
Представленный в OS X v10.0.

MIDISourceCreate


Создает виртуальный источник в клиенте.

extern OSStatus MIDISourceCreate(
    MIDIClientRef client, 
    CFStringRef name, 
    MIDIEndpointRef *outSrc );  
Параметры
client

Клиент, владеющий виртуальным источником.

name

Имя виртуального источника.

outSrc

По успешному возврату, указателю на недавно создаваемый источник.

Возвращаемое значение

OSStatus заканчивается код.

Обсуждение

Драйверы не должны вызывать это; когда они создают устройства и объекты, источники и места назначения создаются в то время.

После создания виртуального источника используйте MIDIReceived для передачи сообщений MIDI от Вашего

виртуальный источник любым клиентам соединился с виртуальным источником.

После создания виртуального источника это - хорошая идея присвоить его тот же уникальный идентификатор, который это имело в прошлый раз, когда Ваше приложение создало его. (Несмотря на то, что Вы должны быть подготовлены к этому к

перестали работать в маловероятном случае коллизии.) Это разрешит другим клиентам сохранять персистентные ссылки на Ваш виртуальный источник более легко.

Доступность
Представленный в OS X v10.0.

Константы


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