[alsa-devel] softvol plugin question
Hi,
I have successfully set up alsa for my custom hardware and am using sofvol plugin to do volume control as my hardware does not support it.
The problem I am having is that the softvol control does not appear to amixer until I have first used the softvol plugin with aplay. Is there a simple way of 'loading' the softvol plugin at startup so that the control gets created immediately?
Thanks,
Will.
I had this problem with alsamixer itself. It doesn't appear until I call "alsactl restore". To automate I added this line to /etc/rc.local.
Will Wagner escreveu:
Hi,
I have successfully set up alsa for my custom hardware and am using sofvol plugin to do volume control as my hardware does not support it.
The problem I am having is that the softvol control does not appear to amixer until I have first used the softvol plugin with aplay. Is there a simple way of 'loading' the softvol plugin at startup so that the control gets created immediately?
Thanks,
Will.
Gustavo da Silva Serra wrote:
I had this problem with alsamixer itself. It doesn't appear until I call "alsactl restore". To automate I added this line to /etc/rc.local.
Thanks, that fixed it.
As an aside I had to patch alsa-utils/alsactl/names.c to make it work with my alsa lib as I have disabled midi & seq support. The patch is below, the problem with it is that alsa-lib does not expose in a header anywhere what is enabled/disabled (alsa-lib/include/config.h appears to be a private header that does not get installed).
--- alsa-utils-1.0.16/alsactl/names.c 2008-05-07 19:03:59.000000000 +0100 +++ alsa-utils-1.0.16/alsactl/names.c.new 2008-05-07 19:03:53.000000000 +0100 @@ -282,6 +282,7 @@ static int probe_pcm(snd_config_t *confi return 0; }
+#ifdef BUILD_RAWMIDI static int probe_rawmidi_virtual(snd_config_t *config, const char *name, const char *comment) { @@ -411,6 +412,7 @@ static int probe_rawmidi(snd_config_t *c return err; return 0; } +#endif // BUILD_RAWMIDI
static int probe_timers(snd_config_t *config) { @@ -473,6 +475,7 @@ static int probe_timer(snd_config_t *con return 0; }
+#ifdef BUILD_SEQ static int probe_seq(snd_config_t *config) { int err; @@ -492,15 +495,20 @@ static int probe_seq(snd_config_t *confi return err; return 0; } +#endif
typedef int (probe_fcn)(snd_config_t *config);
static probe_fcn * probes[] = { probe_ctl, probe_pcm, +#ifdef BUILD_RAWMIDI probe_rawmidi, +#endif probe_timer, +#ifdef BUILD_SEQ probe_seq, +#endif NULL };
At Wed, 07 May 2008 19:25:46 +0100, Will Wagner wrote:
Gustavo da Silva Serra wrote:
I had this problem with alsamixer itself. It doesn't appear until I call "alsactl restore". To automate I added this line to /etc/rc.local.
Thanks, that fixed it.
As an aside I had to patch alsa-utils/alsactl/names.c to make it work with my alsa lib as I have disabled midi & seq support. The patch is below, the problem with it is that alsa-lib does not expose in a header anywhere what is enabled/disabled (alsa-lib/include/config.h appears to be a private header that does not get installed).
A good point. Although one can check the existence easily via some ifdefs of constants that should be defined in each header, it'd be of course better to have proper defines to indicate the availablity of each component...
Takashi
--- alsa-utils-1.0.16/alsactl/names.c 2008-05-07 19:03:59.000000000 +0100 +++ alsa-utils-1.0.16/alsactl/names.c.new 2008-05-07 19:03:53.000000000 +0100 @@ -282,6 +282,7 @@ static int probe_pcm(snd_config_t *confi return 0; }
+#ifdef BUILD_RAWMIDI static int probe_rawmidi_virtual(snd_config_t *config, const char *name, const char *comment) { @@ -411,6 +412,7 @@ static int probe_rawmidi(snd_config_t *c return err; return 0; } +#endif // BUILD_RAWMIDI
static int probe_timers(snd_config_t *config) { @@ -473,6 +475,7 @@ static int probe_timer(snd_config_t *con return 0; }
+#ifdef BUILD_SEQ static int probe_seq(snd_config_t *config) { int err; @@ -492,15 +495,20 @@ static int probe_seq(snd_config_t *confi return err; return 0; } +#endif
typedef int (probe_fcn)(snd_config_t *config);
static probe_fcn * probes[] = { probe_ctl, probe_pcm, +#ifdef BUILD_RAWMIDI probe_rawmidi, +#endif probe_timer, +#ifdef BUILD_SEQ probe_seq, +#endif NULL };
--
Will Wagner will_wagner@carallon.com Senior Project Engineer Office Tel: +44 (0)20 7371 2032 Carallon Ltd, Studio G20, Shepherds Building, Rockley Rd, London W14 0DA
Alsa-devel mailing list Alsa-devel@alsa-project.org http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
participants (3)
-
Gustavo da Silva Serra
-
Takashi Iwai
-
Will Wagner