§ Ссылка для скачивания
Скачать готовый шаблон.В этом шаблоне реализована лишь событийная модель, но нет поддержки звука.
§ Небольшая тестовая программа
1#include "main.h" 2 3int main(int argc, char* argv[]) { 4 5 Main app(320, 200, 2, 25); 6 7 // Нарисовать что-нибудь 8 app.block(0, 0, 320, 200, 0x80); 9 app.line(0, 0, 320, 200, 0xffff); 10 app.circlef(160, 100, 20, 0x008000); 11 app.circle(160, 100, 20, 0xffffff); 12 13 // Обработка возникшего события 14 while (int event = app.event()) { 15 16 switch (event) { 17 // Обработать событие 18 } 19 } 20 21 return 0; 22}
§ Объявление звука
1int cursor; 2 3// Объявление 4SDL_AudioSpec sdl_audio = {44100, AUDIO_U8, 2, 0, 2048}; 5 6// Обработчик 7void audio_callback(void *data, unsigned char *stream, int len) 8{ 9 for (int i = 0; i < len; i += 2) { 10 11 float v1 = sin((float)cursor*0.020)*31. + 127; 12 float v2 = sin((float)cursor*0.021)*31. + 127; 13 14 stream[i] = v1; 15 stream[i+1] = v2; 16 17 cursor += 1; 18 } 19}Вызов данной функции можно реализовать так:
1sdl_audio.callback = audio_callback; 2SDL_OpenAudio(&sdl_audio, 0); 3SDL_PauseAudio(0);