mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
dm: sandbox: Allow selection of sample rate and channels
At present these parameters are hard-coded in the sdl interface code. Allow them to be specified by the driver instead. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
bc58184ec5
commit
e221cdcf44
3 changed files with 8 additions and 10 deletions
|
@ -9,10 +9,6 @@
|
|||
#include <SDL/SDL.h>
|
||||
#include <asm/state.h>
|
||||
|
||||
enum {
|
||||
SAMPLE_RATE = 22050,
|
||||
};
|
||||
|
||||
/**
|
||||
* struct buf_info - a data buffer holding audio data
|
||||
*
|
||||
|
@ -285,7 +281,7 @@ void sandbox_sdl_fill_audio(void *udata, Uint8 *stream, int len)
|
|||
}
|
||||
}
|
||||
|
||||
int sandbox_sdl_sound_init(void)
|
||||
int sandbox_sdl_sound_init(int rate, int channels)
|
||||
{
|
||||
SDL_AudioSpec wanted;
|
||||
int i;
|
||||
|
@ -297,9 +293,9 @@ int sandbox_sdl_sound_init(void)
|
|||
return 0;
|
||||
|
||||
/* Set the audio format */
|
||||
wanted.freq = SAMPLE_RATE;
|
||||
wanted.freq = rate;
|
||||
wanted.format = AUDIO_S16;
|
||||
wanted.channels = 1; /* 1 = mono, 2 = stereo */
|
||||
wanted.channels = channels;
|
||||
wanted.samples = 1024; /* Good low-latency value for callback */
|
||||
wanted.callback = sandbox_sdl_fill_audio;
|
||||
wanted.userdata = NULL;
|
||||
|
|
|
@ -71,9 +71,11 @@ int sandbox_sdl_sound_stop(void);
|
|||
/**
|
||||
* sandbox_sdl_sound_init() - set up the sound system
|
||||
*
|
||||
* @rate: Sample rate to use
|
||||
* @channels: Number of channels to use (1=mono, 2=stereo)
|
||||
* @return 0 if OK, -ENODEV if no sound is available
|
||||
*/
|
||||
int sandbox_sdl_sound_init(void);
|
||||
int sandbox_sdl_sound_init(int rate, int channels);
|
||||
|
||||
#else
|
||||
static inline int sandbox_sdl_init_display(int width, int height,
|
||||
|
@ -112,7 +114,7 @@ static inline int sandbox_sdl_sound_stop(void)
|
|||
return -ENODEV;
|
||||
}
|
||||
|
||||
static inline int sandbox_sdl_sound_init(void)
|
||||
int sandbox_sdl_sound_init(int rate, int channels)
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
|
|
|
@ -102,7 +102,7 @@ static int sandbox_i2s_probe(struct udevice *dev)
|
|||
uc_priv->id = 1;
|
||||
|
||||
/* Ignore any error here - we'll just have no sound */
|
||||
sandbox_sdl_sound_init();
|
||||
sandbox_sdl_sound_init(uc_priv->samplingrate, uc_priv->channels);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue