Spec-Zone .ru
спецификации, руководства, описания, API
|
ADC домой > Ссылочная библиотека> Ссылка> Аудио> Core Audio> Ссылка Платформы Core MIDI
|
MIDIThruConnection.h |
Включает: | <CoreFoundation/CoreFoundation.h> <CoreMIDI/MIDIServices.h> |
Этот заголовок определяет функции для создания игры MIDI - через соединения
между источниками MIDI и местами назначения. Эти соединения могут быть персистентными или переходными, принадлежать клиенту.
При помощи соединений вместо того, чтобы делать сами операции MIDI Through,
издержки перемещения сообщений MIDI между сервером и клиентом для через луг сокращены.
Цель этих функций состоит в том, чтобы разрешить как гибкий ряд трансформаций
как возможный при хранении API и структур данных относительно простыми.
Создает через соединение.
Располагает через соединение.
Возвраты все персистентные через соединения создаются клиентом.
Получает через MIDIThruConnectionParams соединения.
Заполняет MIDIThruConnectionParams значениями по умолчанию.
Изменяется через MIDIThruConnectionParams соединения.
MIDIThruConnectionCreate |
Создает через соединение.
extern OSStatus MIDIThruConnectionCreate( CFStringRef inPersistentOwnerID, CFDataRef inConnectionParams, MIDIThruConnectionRef *outConnection ) ;
inPersistentOwnerID
Если ноль, тогда соединение отмечено, как принадлежится клиенту и будет автоматически расположено с клиентом. если это - ненуль, то это
должен быть уникальный идентификатор, например, «com.mycompany. MyCoolProgram».
inConnectionParams
MIDIThruConnectionParams содержится в CFDataRef.
outConnection
По успешному возврату ссылка на недавно - создает соединение.
OSStatus заканчивается код.
MIDIThruConnectionDispose |
Располагает через соединение.
extern OSStatus MIDIThruConnectionDispose( MIDIThruConnectionRef connection ) ;
connection
Соединение, которое будет расположено
OSStatus заканчивается код.
MIDIThruConnectionFind |
Возвраты все персистентные через соединения создаются клиентом.
extern OSStatus MIDIThruConnectionFind( CFStringRef inPersistentOwnerID, CFDataRef *outConnectionList ) ;
inPersistentOwnerID
ID владельца, соединения которого должны быть возвращены.
outConnectionList
По успешному возврату, CFDataRef, содержащий массив MIDIThruConnectionRef.
OSStatus заканчивается код.
MIDIThruConnectionGetParams |
Получает через MIDIThruConnectionParams соединения.
extern OSStatus MIDIThruConnectionGetParams( MIDIThruConnectionRef connection, CFDataRef *outConnectionParams ) ;
connection
Соединение, которое будет расположено.
outConnectionParams
По успешному возврату, MIDIThruConnectionParams соединения в CFDataRef
OSStatus заканчивается код.
Возвращенный CFDataRef содержит структуру MIDIThruConnectionParams. Вызывающая сторона ответственна за выпуск его.
MIDIThruConnectionParamsInitialize |
Заполняет MIDIThruConnectionParams значениями по умолчанию.
extern void MIDIThruConnectionParamsInitialize( MIDIThruConnectionParams *inConnectionParams ) ;
inConnectionParams
Структура, которая будет инициализирована.
OSStatus заканчивается код.
Эта функция удобства заполняет структуру соединения значениями по умолчанию: никакие конечные точки, никакие трансформации (главным образом обнуляет за исключением карты канала).
Затем просто заполнение источника и добавление одного места назначения создадут простое, неизмененный через соединение.
MIDIThruConnectionSetParams |
Изменяется через MIDIThruConnectionParams соединения.
extern OSStatus MIDIThruConnectionSetParams( MIDIThruConnectionRef connection, CFDataRef inConnectionParams ) ;
connection
Соединение, которое будет изменено.
inConnectionParams
Новый MIDIThruConnectionParams соединения в CFDataRef
OSStatus заканчивается код.
MIDIThruConnectionRef |
#if __LP64__ typedef MIDIObjectRef MIDIThruConnectionRef; #else typedef struct OpaqueMIDIThruConnection * MIDIThruConnectionRef; #endif
Непрозрачная ссылка на игру - через соединение.
MIDIThruConnectionRef |
#if __LP64__ typedef MIDIObjectRef MIDIThruConnectionRef; #else typedef struct OpaqueMIDIThruConnection * MIDIThruConnectionRef; #endif
Непрозрачная ссылка на игру - через соединение.
MIDIControlTransform |
Описывает трансформацию событий изменения управления MIDI.
struct MIDIControlTransform { MIDITransformControlType controlType; MIDITransformControlType remappedControlType; UInt16 controlNumber; MIDITransformType transform; SInt16 param; };
controlType
Тип управления указан controlNumber
remappedControlType
Если преобразование является kMIDITransform_MapControl, типом элемента управления выводом
controlNumber
Контрольное число, которое будет затронуто.
transform
Тип трансформации, которая будет применена к значениям события.
param
Параметр методу трансформации (см. описание MIDITransformType).
Единственный MIDIThruConnectionParams может описать любое число трансформаций для управления событиями. Важно, чтобы многократные трансформации были упорядочены правильно: отфильтруйте,
перекарта, затем измените значения.
Все трансформации сделаны внутренне с помощью 14-разрядных значений, так например, когда выполнение добавлять/минуты/макс. преобразовывает на 7-разрядном значении управления, параметр должен быть 14-разрядным значением.
Например, для добавления 10 к значению управления параметрический усилитель должен быть (10 << 7) = 1280.
MIDIThruConnectionEndpoint |
Описывает источник или место назначения в MIDIThruConnection.
struct MIDIThruConnectionEndpoint { MIDIEndpointRef endpointRef; MIDIUniqueID uniqueID; };
endpointRef
Конечная точка, указанная как MIDIEndpointRef.
uniqueID
Конечная точка указана ее uniqueID.
При создании одного из них можно оставить uniqueID 0, если конечная точка существует, и Вы передаете ее MIDIEndpointRef.
При получении одного из них от CoreMIDI endpointRef может быть NULL, если это не существует, но
uniqueID всегда будет ненулевым.
MIDIThruConnectionParams |
Описывает ряд маршрутизаций MIDI и трансформаций.
struct MIDIThruConnectionParams { UInt32 version; UInt32 numSources; MIDIThruConnectionEndpoint sources[ kMIDIThruConnection_MaxEndpoints]; UInt32 numDestinations; MIDIThruConnectionEndpoint destinations[ kMIDIThruConnection_MaxEndpoints]; UInt8 channelMap[16]; UInt8 lowVelocity, highVelocity; UInt8 lowNote, highNote; MIDITransform noteNumber; MIDITransform velocity; MIDITransform keyPressure; MIDITransform channelPressure; MIDITransform programChange; MIDITransform pitchBend; UInt8 filterOutSysEx; UInt8 filterOutMTC; UInt8 filterOutBeatClock; UInt8 filterOutTuneRequest; UInt8 reserved2[3]; UInt8 filterOutAllControls; UInt16 numControlTransforms; UInt16 numMaps; UInt16 reserved3[4]; // remainder of structure is variable-length: // MIDIControlTransform controls[]; // MIDIValueMap maps[]; };
version
Версия этой структуры; должен быть 0.
numSources
Число допустимых источников в следующем массиве.
sources
Весь MIDI, сгенерированный этими источниками, направляется в это соединение для обработки и распределения местам назначения.
numDestinations
Число допустимых мест назначения в следующем массиве.
destinations
Весь вывод MIDI от соединения направляется этим местам назначения.
channelMap
Карты каждый источник, 16 MIDI образовывает канал для формирования каналов 0-15 (1-16) или 0xFF, когда должен быть отфильтрован MIDI от канала.
lowVelocity
Отметьте события со скоростью меньше, чем отфильтровано это значение.
highVelocity
Отметьте события со скоростью, больше, чем это, если это не 0, отфильтрованы.
lowNote
См. highNote.
highNote
Если highNote> = lowNote, то примечания вне этого диапазона отфильтрованы. Если lowNote> highNote, то примечания в этом диапазоне отфильтрованы.
Это применяется к примечанию и полифоническим ключевым событиям давления. Если существует MIDIValueMap, применяющийся к noteNumber, эти поля проигнорированы.
noteNumber
Указывает, как преобразовываются числа примечания MIDI.
velocity
Указывает, как преобразовываются скорости примечания MIDI.
keyPressure
Указывает, как преобразовывается MIDI полифонические ключевые события давления.
channelPressure
Указывает, как преобразовывается MIDI, монофонический (канал) события давления.
programChange
Указывает, как преобразовываются события изменения программы MIDI.
pitchBend
Указывает, как преобразовываются события изгиба подачи MIDI.
filterOutSysEx
Если 1, указывает, что должны быть отфильтрованы монопольные системой сообщения.
filterOutMTC
Если 1, указывает, что должны быть отфильтрованы сообщения Временного кода MIDI.
filterOutBeatClock
Если 1, указывает, что часы MIDI, игра, останавливаются, и сообщения резюме должны быть отфильтрованы.
filterOutTuneRequest
Если 1, указывает, что должны быть отфильтрованы сообщения Запроса Мелодии MIDI.
reserved2
Должен быть 0.
filterOutAllControls
Если 1, указывает, что должен быть отфильтрован весь MIDI непрерывные управляющие сообщения.
numControlTransforms
Число трансформаций управления в части переменной длины структуры.
numMaps
Число MIDIValueMaps в части переменной длины структуры.
reserved3
Должен быть 0.
Остаток от структуры непостоянно измерен. Это содержит numControlTransform экземпляры MIDIControlTransform, сопровождаемого numMaps экземплярами MIDIValueMap.
MIDITransform |
Описывает, как преобразовывается единственный тип события MIDI.
struct MIDITransform { MIDITransformType transform; SInt16 param; };
transform
Тип трансформации, которая будет применена к значениям события.
param
Параметр методу трансформации (см. описание MIDITransformType).
Эта структура управляет трансформацией различных событий MIDI кроме изменений управления.
MIDIValueMap |
struct MIDIValueMap { UInt8 value[128]; };
Пользовательское отображение функционирует для преобразования MIDI 7-разрядные значения, как содержится в числах примечания, скоростях, значениях управления,
и т.д. y = значение [x], где x является вводом значение MIDI, y вывод.
MIDITransformControlType |
enum { // MIDITransformControlType kMIDIControlType_7Bit = 0, kMIDIControlType_14Bit = 1, kMIDIControlType_7BitRPN = 2, kMIDIControlType_14BitRPN = 3, kMIDIControlType_7BitNRPN = 4, kMIDIControlType_14BitNRPN = 5 };
kMIDIControlType_7Bit
контрольные числа могут быть 0-127
kMIDIControlType_14Bit
контрольные числа могут быть 0-31
kMIDIControlType_7BitRPN
контрольные числа могут быть 0-16383
kMIDIControlType_14BitRPN
kMIDIControlType_7BitNRPN
kMIDIControlType_14BitNRPN
Указывает, как интерпретируются контрольные числа.
MIDITransformType |
enum { // MIDITransformType kMIDITransform_None = 0, kMIDITransform_FilterOut = 1, kMIDITransform_MapControl = 2, kMIDITransform_Add = 8, kMIDITransform_Scale = 9, kMIDITransform_MinValue = 10, kMIDITransform_MaxValue = 11, kMIDITransform_MapValue = 12 };
kMIDITransform_None
никакая трансформация (неиспользованный параметрический усилитель)
kMIDITransform_FilterOut
отфильтруйте указанный тип события (неиспользованный параметрический усилитель)
kMIDITransform_MapControl
преобразуйте одно контрольное число другому; параметрический усилитель является целевым контрольным числом
kMIDITransform_Add
добавьте параметрический усилитель к значениям
kMIDITransform_Scale
многократное значение числом фиксированной точки в параметрическом усилителе, который находится в фиксированной точке: bbbb.bbbb bbbb bbbb
kMIDITransform_MinValue
минимальное значение значения является параметрическим усилителем
kMIDITransform_MaxValue
максимальное значение значения является параметрическим усилителем
kMIDITransform_MapValue
преобразуйте значение с помощью карты; параметрический усилитель является индексом карты в массиве соединения карт.
Значения, указывающие тип трансформации MIDI, как найдено в элементе преобразования MIDITransform.
MIDIThruConnectionParamsSize |
Возвращает размер MIDIThruConnectionParams.
#define MIDIThruConnectionParamsSize(ptr) \ (sizeof(MIDIThruConnectionParams) + (ptr)->numControlTransforms * sizeof(MIDIControlTransform) \ + (ptr)->numMaps * sizeof(MIDIValueMap))
Счета на элементы переменной длины в структуре и возвратах ее истинный размер в байтах.
Последнее обновление: 06.06.2008