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».
inConnectionParams
MIDIThruConnectionParams содержится в 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 );
Параметры
inPersistentOwnerID
ID владельца, соединения которого должны быть возвращены.
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 = COpaquePointer
Objective 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(controlType
controlType
: 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(endpointRef
endpointRef
: 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(version
version
: 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(transform
transform
: 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(value
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)) }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 = UInt16
Objective 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 };
Константы