blob: 5b7331206c2ab946e49ea9eeeb9fa2df7a286fcc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#include "utils.h"
#if UNITTEST
#include <stdio.h>
#include "../audio/sdl/audio.h"
using namespace jin::audio;
int sample_nr = 0;
void fill_audio(void *user_data, Uint8 *raw_buffer, int bytes)
{
Sint16 *buffer = (Sint16*)raw_buffer;
int length = bytes / 2; // 2 bytes per sample for AUDIO_S16SYS
int &sample_nr(*(int*)user_data);
for (int i = 0; i < length; i++, sample_nr++)
{
double time = (double)sample_nr / (double)44100;
buffer[i] = (Sint16)(28000 * sin(2.0f * M_PI * 441.0f * time)); // render 441 HZ sine wave
}
}
int main(int argc, char* argv[])
{
Audio* audio = SDLAudio::get();
SDLAudioSetting setting;
setting.rate = 44100;
setting.resolution = AUDIO_S16SYS;
setting.channels = 1;
setting.callback = fill_audio;
setting.samples = 44100;
setting.userdata = &sample_nr;
audio->init(&setting);
while (true)
{
SDL_Delay(100);
}
audio->quit();
return 0;
}
#endif
|