Исполнитель DirectMusic
Подобно тому, как музыкант исполняет произведение, интерфейс исполнителя в DirectMusic отвечает за исполнение музыки. Он управляет воспроизведением, работой с сообщениями, назначением каналов и контролем времени. Если говорить в двух словах, вы только создаете в вашей игре один из этих интерфейсов.
Вся работа исполнителя поддерживается единственным интерфейсом с именем IDirectMusicPerformance8. Он является рабочей лошадкой DirectMusic; поэтому в нем присутствуют десятки функций. Перечисление функций приведено в таблице 7.2.
Таблица 7.2. Методы интерфейса IDirectMusicPerformance8 | |
Метод | Описание |
AddNotificationType | Добавляет тип уведомления. |
AddPort | Назначает исполнителю порт. |
AdjustTime | Смещает время исполнителя вперед или назад. |
AllocPMsg | Выделяет память для сообщения. |
AssignPChannel | Назначает канал исполнителя. |
AssignPChannelBlock | Назначает блок из 16 каналов. |
ClonePMsg | Копирует сообщение исполнителя. |
CloseDown | Закрывает объект исполнителя. |
CreateAudioPath | Создает аудио-путь (audio path). |
CreateStandardAudioPath | Создает аудио-путь со стандартными параметрами. |
DownloadInstrument | Загружает инструмент DLS. |
FreePMsg | Освобождает занятую сообщением память. |
GetBumperLength | Возвращает время между помещением сообщения в буфер и началом его обработки. |
GetDefaultAudioPath | Возвращает аудио-путь по умолчанию. |
GetGlobalParam | Возвращает глобальные значения исполнителя. |
GetGraph | Возвращает инструментальный граф (toolgraph). |
GetLatencyTime | Возвращает время, необходимое исполнителю на обработку звука и вывод его на динамики. |
GetNotificationPMsg | Возвращает сообщение уведомления. |
GetParam | Возвращает параметры дорожки. |
GetParamEx | Возвращает параметры дорожки. Поддерживает саморегулируемые сегменты. |
GetPrepareTime | Возвращает латентность дорожки. |
GetQueueTime | Возвращает время, когда сообщения могут быть вытеснены. |
GetResolvedTime | Преобразует время в предел. |
GetSegmentState | Возвращает состояние текущего сегмента. |
GetTime | Возвращает время исполнителя. |
InitAudio | Инициализирует исполнителя. |
Invalidate | Вытесняет все сообщения. |
IsPlaying | Проверяет, воспроизводится ли текущий сегмент. |
MIDIToMusic | Преобразует значение ноты MIDI в значение DirectMusic. |
MusicToMIDI | Преобразует значение DirectMusic в значение MIDI. |
MusicToReferenceTime | Преобразует MUSIC_TIME в REFERENCE_TIME. |
PChannelInfo | Возвращает информацию о канале. |
PlaySegment | Воспроизводит сегмент. |
PlaySegmentEx | Воспроизводит сегмент с дополнительными параметрами. |
ReferenceToMusicTime | Преобразует REFERENCE_TIME в MUSIC_TIME. |
RemoveNotificationType | Удаляет тип уведомления. |
RemovePort | Удаляет порт. |
RhythmToTime | Преобразует время ритма во время музыки. |
SendPMsg | Отправляет сообщение. |
SetBumperLength | Устанавливает интервал между помещением сообщения в буфер и его обработкой. |
SetDefaultAudioPath | Устанавливает аудио-путь по умолчанию. Установленный путь становится активным. |
SetGlobalParam | Устанавливает глобальные значения. |
SetGraph | Устанавливает инструментальный граф. |
SetNotificationHandle | Устанавливает обработчик события. |
SetParam | Устанавливает данные дорожки. |
SetPrepareTime | Устанавливает время между отправкой сообщения и воспроизведением звука. |
Stop | Останавливает воспроизведение сегмента. |
StopEx | Останавливает сегмент или аудио-путь. |
TimeToRhythm | Преобразует время музыки во время ритма. |
Ничего себе. Какой огромный список функций. Он не должен подавлять вас; я использую в своих программах лишь несколько из перечисленных функций. Представьте себе, вся эта функциональность доступна вам абсолютно бесплатно!