|
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».
inConnectionParamsMIDIThruConnectionParams содержится в CFDataRef.
outConnectionПо успешному возврату ссылка на недавно - создает соединение.
OSStatus заканчивается код.
MIDIThruConnectionDispose |
Располагает через соединение.
extern OSStatus MIDIThruConnectionDispose( MIDIThruConnectionRef connection ) ;
connectionСоединение, которое будет расположено
OSStatus заканчивается код.
MIDIThruConnectionFind |
Возвраты все персистентные через соединения создаются клиентом.
extern OSStatus MIDIThruConnectionFind( CFStringRef inPersistentOwnerID, CFDataRef *outConnectionList ) ;
inPersistentOwnerIDID владельца, соединения которого должны быть возвращены.
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_14BitRPNkMIDIControlType_7BitNRPNkMIDIControlType_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