AUInstrumentBase изменяется для Льва Mac OS X
Это Техническое примечание перечисляет изменения, внесенные в AUInstrumentBase классы для Льва Mac OS X. При создании Аудиоустройства на Льве Mac OS X, которые используют эти классы предприятия коммунального обслуживания, необходимо будет обновить проект соответственно.
Введение
Папка AUInstrumentBase является частью инструментов Xcode Developer и расположена в Developer/Extras/CoreAudio/AudioUnits/AUPublic/AUInstrumentBase. Эта папка содержит много классов, используемых при создании Инструментов Аудиоустройства.
Много изменений были внесены в эти файлы предприятия коммунального обслуживания для Льва Mac OS X, как перечислено:
AUInstrumentBase
Новые методы
AUScope & Parts()AUElement* GetPart(AudioUnitElement inElement)virtual AUScope* GetScopeExtended(AudioUnitScope inScope)virtual void CreateExtendedElements()
Эти методы позволяют подклассам использовать объем Части, представляющий определенные инструменты, патчи и задающий связанный с AUInstrumentBase.
Удаленные методы
MidiControls* GetControls( MusicDeviceGroupID inChannel)
Уведомления MIDI обрабатываются через методы, вызванные непосредственно на надлежащем SynthGroupElement экземпляр.
SynthNote
AttackNote()теперь возвраты abool- Это позволяетSynthElementне поместить aSynthNoteэкземпляр в активную очередь, если примечание не будет играться (вследствие речевой логики никакого вида).AttackNote()параметр 4 (inAbsoluteSampleFrame) измененный отSInt64кUInt64- Запустите кадр всегда положителен, и без знака в другом использовании в системе. Это также позволяет больше кадров, прежде чем перенесется значение.Render()берет дополнительный параметр, первый параметр:inAbsoluteSampleFrame- Это должно позволить подклассу обрабатывать, «будет эта логика» игры примечания (видеть AttackNote ()).Attack()теперь возвраты abool.GetState()возвратыSynthNoteStateперечислимый тип - задействованное возвращаемое значение является этим типом.GetAbsoluteStartFrame()теперь возвратыUInt64вместоSInt64- Запустите кадр всегда положителен, и без знака в другом использовании в системе.PitchBend()теперьGetPitchBend()- Старое название вводило в заблуждение - казался, что оно выполнило действие, когда это - просто 'метод get'.SampleRate()является виртуальным - КакFrequency()подкласс может хотеть переопределить это.
SynthElement
Удаленные методы
GetName()SetName()
SynthElement получен из AUElement который уже имеет эти методы, и они являются невиртуальными. Переопределение на этом уровне могло привести к противоречивым результатам.
MidiControls
MidiControls был продвинут, чтобы быть подклассом нового вызванного базового класса MIDIControlHandler который определяет полезный интерфейс для работы с событиями MIDI. Константы были перемещены в заголовок базового класса.
SynthGroupElement
Новые методы
virtual NoteOn()NoteFastReleased()ChannelMessage()
Удаленные методы
GetOutputBus()SetOutputBus()
Для многоканального инструмента не целесообразно понятие единственного индекса шины. Это состояние лучше обрабатывается подклассами.
Другие изменения
Render()берет дополнительныйinAbsoluteSampleFrameиAUScope &параметры - Демонстрационный кадр необходим, чтобы позволить примечанию отслеживать его точное место в его временной шкале воспроизведения.AUScopeпозволяет различным примечаниям воспроизводить через различные выходные шины.NoteOff()был сделанvirtual.
История версии документа
| Дата | Примечания |
|---|---|
| 29.11.2011 | Новый документ, описывающий изменения, внесенные в файлы предприятия коммунального обслуживания, которые являются частью папки AUInstrumentBase для Льва Mac OS X. |