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

Takashi Iwai tiwai at suse.de
Thu Oct 16 17:12:42 CEST 2008


At Tue, 14 Oct 2008 10:10:36 +0200,
I wrote:
> 
> At Tue, 14 Oct 2008 09:46:16 +0200,
> Matthieu CASTET wrote:
> > 
> > Takashi Iwai a écrit :
> > > 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.
> > > 
> > Ok sound better.
> > But why _snd_pcm_hw_param_test take a pointer and not a integer. All
> > snd_pcm_hw_params_test_xxx seems to take a dir as integer.
> 
> When you pass a pointer pointing the integer value 0, it returns the
> direction it goes in return.

I released version 0.0.20 just including this fix now.

However...

> > >> BTW, some application expect snd_config (from cards.c) to be not null
> > >> after a call to snd_config_update.
> > > 
> > > Hm, which apps?
> > > 
> > portaudio.
> 
> One app isn't always enough to change the thing :)
> OTOH, if just faking a pointer (i.e. passing any non-null) fixes the
> problem, it might be a reasonable workaround...

... this problem still remains.
Can you check the patch like below could work around the problem?


thanks,

Takashi

diff -r 590f5dd3cd39 src/cards.c
--- a/src/cards.c	Thu Oct 16 17:08:49 2008 +0200
+++ b/src/cards.c	Thu Oct 16 17:11:55 2008 +0200
@@ -174,4 +174,7 @@
 	return 0;
 }
 
-snd_config_t *snd_config; /* placeholder */
+/* This is just a placeholder, but contains non-NULL value for apps
+ * that check the value by some reason
+ */
+snd_config_t *snd_config = (snd_config_t*)1;


More information about the Alsa-devel mailing list