[alsa-devel] Salsa-lib : _snd_pcm_hw_param_test is not defined

Takashi Iwai tiwai at suse.de
Mon Oct 13 16:24:22 CEST 2008


At Mon, 13 Oct 2008 16:01:07 +0200,
Matthieu CASTET wrote:
> 
> Hi,
> 
> Takashi Iwai a écrit :
> > At Mon, 13 Oct 2008 11:49:03 +0200,
> > Matthieu CASTET wrote:
> >> Hi,
> >>
> >> it seems there is a missing implementation of _snd_pcm_hw_param_test
> >> function in src/pcm_params.c .
> >>
> >> It is used in pcm_macros.h by snd_pcm_hw_params_test_xxx functions.
> > 
> > Thanks for reporting.  
> Thanks for your quick reply.
> 
> > Does the patch below works?
> Hum,
> 
> dir is a pointer, but _snd_pcm_hw_param_set want a integer.

Oops, the fixed patch is below.

> 
> BTW, some application expect snd_config (from cards.c) to be not null
> after a call to snd_config_update.

Hm, which apps?

Basically the non-null pointer isn't guaranteed even in the API
definition, so it's not necessarily to implement.  But, if many apps 
assume it, it becomes as a de facto standard, and we need to give a
workaround...


thanks,

Takashi

diff -r f481dcc66eae src/pcm_params.c
--- a/src/pcm_params.c	Tue Sep 30 15:38:29 2008 +0200
+++ b/src/pcm_params.c	Mon Oct 13 16:22:35 2008 +0200
@@ -754,6 +754,15 @@
 	return err;
 }
 
+int _snd_pcm_hw_param_test(snd_pcm_t *pcm, snd_pcm_hw_params_t *params,
+			   int var, unsigned int val, int *dir)
+{
+	snd_pcm_hw_params_t save = *params;
+	int err = _snd_pcm_hw_param_set(pcm, params, var, val, dir ? *dir : 0);
+	*params = save;
+	return err;
+}
+
 int _snd_pcm_hw_param_set_integer(snd_pcm_t *pcm, 
 				  snd_pcm_hw_params_t *params,
 				  int var)



More information about the Alsa-devel mailing list