|
@@ -37,11 +37,12 @@
|
|
#endif
|
|
#endif
|
|
|
|
|
|
static void glue(audio_init_nb_voices_, TYPE)(AudioState *s,
|
|
static void glue(audio_init_nb_voices_, TYPE)(AudioState *s,
|
|
- struct audio_driver *drv)
|
|
|
|
|
|
+ struct audio_driver *drv, int min_voices)
|
|
{
|
|
{
|
|
int max_voices = glue (drv->max_voices_, TYPE);
|
|
int max_voices = glue (drv->max_voices_, TYPE);
|
|
size_t voice_size = glue(drv->voice_size_, TYPE);
|
|
size_t voice_size = glue(drv->voice_size_, TYPE);
|
|
|
|
|
|
|
|
+ glue (s->nb_hw_voices_, TYPE) = glue(audio_get_pdo_, TYPE)(s->dev)->voices;
|
|
if (glue (s->nb_hw_voices_, TYPE) > max_voices) {
|
|
if (glue (s->nb_hw_voices_, TYPE) > max_voices) {
|
|
if (!max_voices) {
|
|
if (!max_voices) {
|
|
#ifdef DAC
|
|
#ifdef DAC
|
|
@@ -56,6 +57,12 @@ static void glue(audio_init_nb_voices_, TYPE)(AudioState *s,
|
|
glue (s->nb_hw_voices_, TYPE) = max_voices;
|
|
glue (s->nb_hw_voices_, TYPE) = max_voices;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if (glue (s->nb_hw_voices_, TYPE) < min_voices) {
|
|
|
|
+ dolog ("Bogus number of " NAME " voices %d, setting to %d\n",
|
|
|
|
+ glue (s->nb_hw_voices_, TYPE),
|
|
|
|
+ min_voices);
|
|
|
|
+ }
|
|
|
|
+
|
|
if (audio_bug(__func__, !voice_size && max_voices)) {
|
|
if (audio_bug(__func__, !voice_size && max_voices)) {
|
|
dolog ("drv=`%s' voice_size=0 max_voices=%d\n",
|
|
dolog ("drv=`%s' voice_size=0 max_voices=%d\n",
|
|
drv->name, max_voices);
|
|
drv->name, max_voices);
|