Программирование игр для Windows. Советы профессионала


Использование функций драйвера для проигрывания VOC-файлов - часть 9


//и установка указателя на его начало

char far *temp_ptr;

char far *data_ptr;

unsigned int sum;

int sound handle,t; unsigned errno, segment, offset, num_para, bytes_read;

// Открыть

звуковой файл

_dos_open(filename, _O_RDONLY, &sound_handle);

// Выделить

память

num_para = 1 + (filelength(sound_handle))/16;

_dos_allocmem(num_para,&segment);

// Установить указатель на выделенную память

_FP_SEG(data_ptr) = segment;

_FP_OFF(data_ptr} = 0;

// Загрузить звуковые данные

temp_ptr

= data_ptr;

do

{

_dog_read(sound_handle,temp_ptr, 0х4000, &bytes_read) ;

temp_ptr += bytes_read;

sum +=bytes_read;

} while (bytes_read==0х4000);

// проверить на всякий случай, звуковые ли это данные;

// для этого проверяется присутствие слова "Creative"

if ((data_ptr[0] !='C') || (data_ptr[1] != 'r'))

{

printf("\n%s is not a voc file!",filename);

_dos_freemem(_FP_SEG(data_ptr));

return(0);

} // конец звукового файла

*header_length = (unsigned char)data_ptr[20];

// закрыть

файл

_dos_close(sound_handle) ;

return(data_ptr);

} //конец

функции

/////////////////////////////////////////////////////////////

void Voc_Unload_Sound(char far *sound_ptr) {

// удаление звуковых данных из памяти

_dos_freemem(_FP_SEG(sound_ptr));

) // конец

функции

////////////////////////////////////////////////////////////

void main(void)

{

char far *sounds[4];

unsigned char lengths[4];

int done=0,sel;

Voc_Load_Driver();

Voc_Init_Driver ();

Voc_Set_Port (0х220);

Voc_Set_DMA(5) ;

Voc_Get_Version();

Voc Set_Status_Addr((char _far *) &ct_voice_status) ;

// загрузка

звуковых файлов

sounds[0] = Voc_Load_Sound("beav.voc" , & lengths[0]);

soundsll] = Voc_Load_Sound("ed209.voc", &lengths[1]);

sounds[2] = Voc_Load_Sound{"term.voc",   &lengths[2]);

sounds[3] = Voc_Load_Sound("driver.voc"f &lengths[3]);

Voc_Set_Speaker(1);

// главный цикл событий;.позволяет пользователю

// выбрать звуковой файл.




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



Книжный магазин