Секреты программирования игр


Функция № 14: PostAudioPending


Данная функция позволяет вам поместить в очередь второй музыкальный фрагмент. Начиная с версии DIGPAK 3.0, приложение может задать второй музыкальный фрагмент, который должен быть воспроизведен сразу по окончании воспроизведения текущего фрагмента. Этот метод, называемый двойной буферизацией, позволяет вашей прикладной программе осуществлять очень сложное манипулирование звуком. Используя двойную буферизацию, вы можете производить программное микшироваиие и (или) подкачивать длинное музыкальное произведение с диска, или из расширенной памяти EMS. В демонстрационной программе PEND.C показано, как можно исполнить по частям большой звуковой клип. Модифицируя эту демонстрационную программу, вы можете воспроизводить звуковые эффекты с диска, или выполнять программное микширование, добавляя набор звуковых эффектов в основной музыкальный поток.

ВХОД:     AX    =   695h

                 DS:SI     *Реальный режим*. Указатель на звуковую структуру, описывающую звуковой эффект.

                 ESI         *Прямая адресация* В случае использования 32-разрядной адресации, ESI указывает на 32-разрядный адрес звуковой структуры в первом мегабайте адресного пространства. Будет преобразован драйвером DIGPAK в допустимый адрес СЕГМЕНТ:СМЕЩЕНИЕ.

ВЫХОД:  АХ    =   0   Началось воспроизведение фрагмента.

                 АХ    =   1   Фрагмент поставлен в очередь на воспроизведение.

                 АХ    =   2   В очереди уже имеется фрагмент, поэтому данный фрагмент в очередь не поставлен.




Начало  Назад  Вперед