Программирование стратегических игр с DirectX 9.0
bda5893f

Исполнитель 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 Преобразует время музыки во время ритма.

Ничего себе. Какой огромный список функций. Он не должен подавлять вас; я использую в своих программах лишь несколько из перечисленных функций. Представьте себе, вся эта функциональность доступна вам абсолютно бесплатно!



Содержание раздела