MIDI через ссылку соединения
Наследование
Не применимый
Соответствует
Не применимый
Оператор импорта
Swift
import CoreMIDI
Objective C
@import CoreMIDI;
Этот документ описывает функции для создания игры MIDI - через соединения между источниками MIDI и местами назначения. Эти соединения могут быть персистентными или переходными и принадлежат Вашему приложению.
Используя игру - через соединения, вместо того, чтобы выполнить операции MIDI Through, сокращает издержки перемещения сообщений MIDI между сервером и клиентом.
Цель этих функций состоит в том, чтобы разрешить максимально гибкий ряд трансформаций при хранении API и структур данных относительно простыми.
-
Возвращает размер MIDIThruConnectionParams.
Объявление
Objective C
#define MIDIThruConnectionParamsSize (ptr) \ (sizeof (MIDIThruConnectionParams) + (ptr)->numControlTransforms * sizeof (MIDIControlTransform) \ + (ptr)->numMaps * sizeof (MIDIValueMap))Обсуждение
Счета на элементы переменной длины в структуре и возвратах ее истинный размер в байтах.
Оператор импорта
Objective C
@import CoreMIDI;Доступность
Доступный в iOS 4.2 и позже.
-
Создает через соединение.
Объявление
Swift
func MIDIThruConnectionCreate(_inPersistentOwnerID: CFString!, _inConnectionParams: CFData!, _outConnection: UnsafeMutablePointer<MIDIThruConnectionRef>) -> OSStatusObjective C
OSStatus MIDIThruConnectionCreate ( CFStringRef inPersistentOwnerID, CFDataRef inConnectionParams, MIDIThruConnectionRef *outConnection );Параметры
inPersistentOwnerIDЕсли ноль, тогда соединение отмечено, как принадлежится клиенту и будет автоматически расположено с клиентом. если это - ненуль, то это должен быть уникальный идентификатор, например, «com.mycompany. MyCoolProgram».
inConnectionParamsMIDIThruConnectionParams содержится в CFDataRef.
outConnectionПо успешному возврату, ссылке на новое созданное соединение.
Возвращаемое значение
Код результата.
Оператор импорта
Objective C
@import CoreMIDI;Swift
import CoreMIDIДоступность
Доступный в iOS 4.2 и позже.
-
Располагает через соединение.
Объявление
Swift
func MIDIThruConnectionDispose(_connection: MIDIThruConnectionRef) -> OSStatusObjective C
OSStatus MIDIThruConnectionDispose ( MIDIThruConnectionRef connection );Параметры
connectionСоединение, которое будет расположено
Возвращаемое значение
Код результата.
Оператор импорта
Objective C
@import CoreMIDI;Swift
import CoreMIDIДоступность
Доступный в iOS 4.2 и позже.
-
Возвраты все персистентные через соединения создаются клиентом.
Объявление
Swift
func MIDIThruConnectionFind(_inPersistentOwnerID: CFString!, _outConnectionList: UnsafeMutablePointer<Unmanaged<CFData>?>) -> OSStatusObjective C
OSStatus MIDIThruConnectionFind ( CFStringRef inPersistentOwnerID, CFDataRef *outConnectionList );Параметры
inPersistentOwnerIDID владельца, соединения которого должны быть возвращены.
outConnectionListПо успешному возврату, CFDataRef, содержащий массив MIDIThruConnectionRef.
Возвращаемое значение
Код результата.
Оператор импорта
Objective C
@import CoreMIDI;Swift
import CoreMIDIДоступность
Доступный в iOS 4.2 и позже.
-
Получает через MIDIThruConnectionParams соединения.
Объявление
Swift
func MIDIThruConnectionGetParams(_connection: MIDIThruConnectionRef, _outConnectionParams: UnsafeMutablePointer<Unmanaged<CFData>?>) -> OSStatusObjective C
OSStatus MIDIThruConnectionGetParams ( MIDIThruConnectionRef connection, CFDataRef *outConnectionParams );Параметры
connectionСоединение, которое будет расположено.
outConnectionParamsПо успешному возврату, MIDIThruConnectionParams соединения в CFDataRef
Возвращаемое значение
Код результата.
Обсуждение
Возвращенный CFDataRef содержит структуру MIDIThruConnectionParams. Вызывающая сторона ответственна за выпуск его.
Оператор импорта
Objective C
@import CoreMIDI;Swift
import CoreMIDIДоступность
Доступный в iOS 4.2 и позже.
-
Заполняет MIDIThruConnectionParams значениями по умолчанию.
Объявление
Swift
func MIDIThruConnectionParamsInitialize(_inConnectionParams: UnsafeMutablePointer<MIDIThruConnectionParams>)Objective C
void MIDIThruConnectionParamsInitialize ( MIDIThruConnectionParams *inConnectionParams );Параметры
inConnectionParamsСтруктура, которая будет инициализирована.
Возвращаемое значение
Код результата.
Обсуждение
Эта функция удобства заполняет структуру соединения значениями по умолчанию: никакие конечные точки, никакие трансформации (главным образом обнуляет за исключением карты канала). Затем просто заполнение источника и добавление одного места назначения создадут простое, неизмененный через соединение.
Оператор импорта
Objective C
@import CoreMIDI;Swift
import CoreMIDIДоступность
Доступный в iOS 4.2 и позже.
-
Изменяется через MIDIThruConnectionParams соединения.
Объявление
Swift
func MIDIThruConnectionSetParams(_connection: MIDIThruConnectionRef, _inConnectionParams: CFData!) -> OSStatusObjective C
OSStatus MIDIThruConnectionSetParams ( MIDIThruConnectionRef connection, CFDataRef inConnectionParams );Параметры
connectionСоединение, которое будет изменено.
inConnectionParamsНовый MIDIThruConnectionParams соединения в CFDataRef
Возвращаемое значение
Код результата.
Оператор импорта
Objective C
@import CoreMIDI;Swift
import CoreMIDIДоступность
Доступный в iOS 4.2 и позже.
-
Объявление
Swift
typealias MIDIThruConnectionRef = COpaquePointerObjective C
#if __LP64__ typedef MIDIObjectRef MIDIThruConnectionRef; #else typedef struct OpaqueMIDIThruConnection * MIDIThruConnectionRef; #endifОбсуждение
Непрозрачная ссылка на игру - через соединение.
Оператор импорта
Objective C
@import CoreMIDI;Swift
import CoreMIDIДоступность
Доступный в iOS 4.2 и позже.
-
Описывает трансформацию событий изменения управления MIDI.
Объявление
Swift
struct MIDIControlTransform { var controlType: MIDITransformControlType var remappedControlType: MIDITransformControlType var controlNumber: UInt16 var transform: MIDITransformType var param: Int16 init() init(controlTypecontrolType: MIDITransformControlType, remappedControlTyperemappedControlType: MIDITransformControlType, controlNumbercontrolNumber: UInt16, transformtransform: MIDITransformType, paramparam: Int16) }Objective C
struct MIDIControlTransform { MIDITransformControlType controlType; MIDITransformControlType remappedControlType; UInt16 controlNumber; MIDITransformType transform; SInt16 param; }; typedef struct MIDIControlTransform MIDIControlTransform;Поля
controlTypeТип управления указан controlNumber
remappedControlTypeЕсли преобразование является kMIDITransform_MapControl, типом элемента управления выводом
controlNumberКонтрольное число, которое будет затронуто.
transformТип трансформации, которая будет применена к значениям события.
paramПараметр методу трансформации (см. описание MIDITransformType).
Обсуждение
Единственный MIDIThruConnectionParams может описать любое число трансформаций для управления событиями. Важно, чтобы многократные трансформации были упорядочены правильно: отфильтруйте, повторно отобразите, затем измените значения.
Все трансформации сделаны внутренне с помощью 14-разрядных значений, так например, когда выполнение добавлять/минуты/макс. преобразовывает на 7-разрядном значении управления, параметр должен быть 14-разрядным значением. Например, для добавления 10 к значению управления параметрический усилитель должен быть (10 <<7) = 1280.
Доступность
Доступный в iOS 4.2 и позже.
-
Описывает источник или место назначения в MIDIThruConnection.
Объявление
Swift
struct MIDIThruConnectionEndpoint { var endpointRef: MIDIEndpointRef var uniqueID: MIDIUniqueID init() init(endpointRefendpointRef: MIDIEndpointRef, uniqueIDuniqueID: MIDIUniqueID) }Objective C
struct MIDIThruConnectionEndpoint { MIDIEndpointRef endpointRef; MIDIUniqueID uniqueID; }; typedef struct MIDIThruConnectionEndpoint MIDIThruConnectionEndpoint;Поля
endpointRefКонечная точка, указанная как MIDIEndpointRef.
uniqueIDКонечная точка указана ее uniqueID.
Обсуждение
При создании одного из них можно оставить uniqueID 0, если конечная точка существует, и Вы передаете ее MIDIEndpointRef.
При получении одного из них от CoreMIDI endpointRef может быть NULL, если это не существует, но uniqueID всегда будет ненулевым.
Доступность
Доступный в iOS 4.2 и позже.
-
Описывает ряд маршрутизаций MIDI и трансформаций.
Объявление
Swift
struct MIDIThruConnectionParams { var version: UInt32 var numSources: UInt32 var sources: (MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint) var numDestinations: UInt32 var destinations: (MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint) var channelMap: (UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8) var lowVelocity: UInt8 var highVelocity: UInt8 var lowNote: UInt8 var highNote: UInt8 var noteNumber: MIDITransform var velocity: MIDITransform var keyPressure: MIDITransform var channelPressure: MIDITransform var programChange: MIDITransform var pitchBend: MIDITransform var filterOutSysEx: UInt8 var filterOutMTC: UInt8 var filterOutBeatClock: UInt8 var filterOutTuneRequest: UInt8 var reserved2: (UInt8, UInt8, UInt8) var filterOutAllControls: UInt8 var numControlTransforms: UInt16 var numMaps: UInt16 var reserved3: (UInt16, UInt16, UInt16, UInt16) init() init(versionversion: UInt32, numSourcesnumSources: UInt32, sourcessources: (MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint), numDestinationsnumDestinations: UInt32, destinationsdestinations: (MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint, MIDIThruConnectionEndpoint), channelMapchannelMap: (UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8), lowVelocitylowVelocity: UInt8, highVelocityhighVelocity: UInt8, lowNotelowNote: UInt8, highNotehighNote: UInt8, noteNumbernoteNumber: MIDITransform, velocityvelocity: MIDITransform, keyPressurekeyPressure: MIDITransform, channelPressurechannelPressure: MIDITransform, programChangeprogramChange: MIDITransform, pitchBendpitchBend: MIDITransform, filterOutSysExfilterOutSysEx: UInt8, filterOutMTCfilterOutMTC: UInt8, filterOutBeatClockfilterOutBeatClock: UInt8, filterOutTuneRequestfilterOutTuneRequest: UInt8, reserved2reserved2: (UInt8, UInt8, UInt8), filterOutAllControlsfilterOutAllControls: UInt8, numControlTransformsnumControlTransforms: UInt16, numMapsnumMaps: UInt16, reserved3reserved3: (UInt16, UInt16, UInt16, UInt16)) }Objective C
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[]; }; typedef struct MIDIThruConnectionParams MIDIThruConnectionParams;Поля
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.
Доступность
Доступный в iOS 4.2 и позже.
-
Описывает, как преобразовывается единственный тип события MIDI.
Объявление
Swift
struct MIDITransform { var transform: MIDITransformType var param: Int16 init() init(transformtransform: MIDITransformType, paramparam: Int16) }Objective C
struct MIDITransform { MIDITransformType transform; SInt16 param; }; typedef struct MIDITransform MIDITransform;Поля
transformТип трансформации, которая будет применена к значениям события.
paramПараметр методу трансформации (см. описание MIDITransformType).
Обсуждение
Эта структура управляет трансформацией различных событий MIDI кроме изменений управления.
Доступность
Доступный в iOS 4.2 и позже.
-
Объявление
Swift
struct MIDIValueMap { var value: (UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8) init() init(valuevalue: (UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8)) }Objective C
struct MIDIValueMap { UInt8 value[128]; }; typedef struct MIDIValueMap MIDIValueMap;Обсуждение
Пользовательское отображение функционирует для преобразования MIDI 7-разрядные значения, как содержится в числах примечания, скоростях, значениях управления, и т.д. y = значение [x], где x является вводом значение MIDI, y вывод.
Доступность
Доступный в iOS 4.2 и позже.
-
Объявление
Swift
var kMIDIControlType_7Bit: Int { get } var kMIDIControlType_14Bit: Int { get } var kMIDIControlType_7BitRPN: Int { get } var kMIDIControlType_14BitRPN: Int { get } var kMIDIControlType_7BitNRPN: Int { get } var kMIDIControlType_14BitNRPN: Int { get }Objective C
enum { kMIDIControlType_7Bit = 0, kMIDIControlType_14Bit = 1, kMIDIControlType_7BitRPN = 2, kMIDIControlType_14BitRPN = 3, kMIDIControlType_7BitNRPN = 4, kMIDIControlType_14BitNRPN = 5 };Константы
-
kMIDIControlType_7Bitконтрольные числа могут быть 0-127
Доступный в iOS 4.2 и позже.
-
kMIDIControlType_14Bitконтрольные числа могут быть 0-31
Доступный в iOS 4.2 и позже.
-
kMIDIControlType_7BitRPNконтрольные числа могут быть 0-16383
Доступный в iOS 4.2 и позже.
-
kMIDIControlType_14BitRPNДоступный в iOS 4.2 и позже.
-
kMIDIControlType_7BitNRPNДоступный в iOS 4.2 и позже.
-
kMIDIControlType_14BitNRPNДоступный в iOS 4.2 и позже.
Обсуждение
Указывает, как интерпретируются контрольные числа.
-
-
Объявление
Swift
typealias MIDITransformType = UInt16Objective C
enum { kMIDITransform_None = 0, kMIDITransform_FilterOut = 1, kMIDITransform_MapControl = 2, kMIDITransform_Add = 8, kMIDITransform_Scale = 9, kMIDITransform_MinValue = 10, kMIDITransform_MaxValue = 11, kMIDITransform_MapValue = 12 }; typedef UInt16 MIDITransformType;Константы
-
kMIDITransform_Noneникакая трансформация (неиспользованный параметрический усилитель)
Доступный в iOS 4.2 и позже.
-
kMIDITransform_FilterOutотфильтруйте указанный тип события (неиспользованный параметрический усилитель)
Доступный в iOS 4.2 и позже.
-
kMIDITransform_MapControlпреобразуйте одно контрольное число другому; параметрический усилитель является целевым контрольным числом
Доступный в iOS 4.2 и позже.
-
kMIDITransform_Addдобавьте параметрический усилитель к значениям
Доступный в iOS 4.2 и позже.
-
kMIDITransform_Scaleмногократное значение числом фиксированной точки в параметрическом усилителе, который находится в фиксированной точке: bbbb.bbbb bbbb bbbb
Доступный в iOS 4.2 и позже.
-
kMIDITransform_MinValueминимальное значение значения является параметрическим усилителем
Доступный в iOS 4.2 и позже.
-
kMIDITransform_MaxValueмаксимальное значение значения является параметрическим усилителем
Доступный в iOS 4.2 и позже.
-
kMIDITransform_MapValueпреобразуйте значение с помощью карты; параметрический усилитель является индексом карты в массиве соединения карт.
Доступный в iOS 4.2 и позже.
Обсуждение
Значения, указывающие тип трансформации MIDI, как найдено в элементе преобразования MIDITransform.
Оператор импорта
Objective C
@import CoreMIDI;Swift
import CoreMIDIДоступность
Доступный в iOS 4.2 и позже.
-
-
Максимальное количество конечных точек MIDI.
Объявление
Swift
var kMIDIThruConnection_MaxEndpoints: Int { get }Objective C
enum { kMIDIThruConnection_MaxEndpoints = 8 };Константы
