aboutsummaryrefslogtreecommitdiff
path: root/arch/sandbox
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sandbox')
-rw-r--r--arch/sandbox/cpu/sdl.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/arch/sandbox/cpu/sdl.c b/arch/sandbox/cpu/sdl.c
index 36f1bf0..c940a47 100644
--- a/arch/sandbox/cpu/sdl.c
+++ b/arch/sandbox/cpu/sdl.c
@@ -9,6 +9,10 @@
#include <sound.h>
#include <asm/state.h>
+enum {
+ SAMPLE_RATE = 22050,
+};
+
static struct sdl_info {
SDL_Surface *screen;
int width;
@@ -18,6 +22,7 @@ static struct sdl_info {
uint frequency;
uint audio_pos;
uint audio_size;
+ uint sample_rate;
uint8_t *audio_data;
bool audio_active;
bool inited;
@@ -283,7 +288,7 @@ int sandbox_sdl_sound_init(void)
return 0;
/* Set the audio format */
- wanted.freq = 22050;
+ wanted.freq = SAMPLE_RATE;
wanted.format = AUDIO_S16;
wanted.channels = 1; /* 1 = mono, 2 = stereo */
wanted.samples = 1024; /* Good low-latency value for callback */
@@ -309,6 +314,7 @@ int sandbox_sdl_sound_init(void)
goto err;
}
sdl.audio_active = true;
+ sdl.sample_rate = wanted.freq;
return 0;
@@ -322,7 +328,8 @@ int sandbox_sdl_sound_start(uint frequency)
if (!sdl.audio_active)
return -1;
sdl.frequency = frequency;
- sound_create_square_wave(22050, (unsigned short *)sdl.audio_data,
+ sound_create_square_wave(sdl.sample_rate,
+ (unsigned short *)sdl.audio_data,
sdl.audio_size, frequency);
sdl.audio_pos = 0;
SDL_PauseAudio(0);