At Tue, 13 Nov 2007 19:56:00 +0100, Elimar Riesebieter wrote: > > forwarded 450805 alsa-devel@xxxxxxxxxxxxxxxx > tags 450805 pending patch Yes, the patch looks useful. Now applied to ALSA HG tree. Thanks! Takashi > > Thanks > > Hi ALSA developers, > > does it make sense to apply the patch to HEAD? I don't have a > Hammerfall handy and can not test it. > > Thanks for cooperation. > > Elimar > > > On Sun, 11 Nov 2007 the mental interface of > Frank Heckenbach told: > > Package: alsa-tools-gui > Version: 1.0.13-1 > Severity: normal > Tags: patch > > > We are using Hammerfall DSP cards. After booting, their audio output > remains silent until hdspmixer is started. No interaction in the GUI > of hdspmixer is necessary to unmute the first HDSP card; however, > further cards are only unmuted when activating the respective GUI > page ("2", "3"). Apparently, hdspmixer does some automatic > initialization of the card when activating the page. > > Since we'd like to have a fully automatic startup, the following > patch activates the page for each existing card on startup, thereby > initializing them. There are surely more elegant solutions, but this > patch is tested and solves the problem for us. > > --- alsa-tools-1.0.13/hdspmixer/src/HDSPMixerCardSelector.h.orig 2007-04-16 19:49:22.000000000 +0200 > +++ alsa-tools-1.0.13/hdspmixer/src/HDSPMixerCardSelector.h 2007-04-16 19:50:51.000000000 +0200 > @@ -37,6 +37,7 @@ > int card; > HDSPMixerWindow *basew; > HDSPMixerCardSelector(int x, int y, int w, int h, int card); > + void ActivateCard (int i); > void draw(); > int handle(int e); > }; > --- alsa-tools-1.0.13/hdspmixer/src/HDSPMixerCardSelector.cxx.orig 2007-04-16 19:49:23.000000000 +0200 > +++ alsa-tools-1.0.13/hdspmixer/src/HDSPMixerCardSelector.cxx 2007-04-16 19:53:45.000000000 +0200 > @@ -45,27 +45,25 @@ > } > } > > +void HDSPMixerCardSelector::ActivateCard (int i) > +{ > + card = i + 1; > + basew->current_card = i; > + basew->cards[i]->setMode (basew->cards[i]->getSpeed ()); > + redraw (); > +} > + > int HDSPMixerCardSelector::handle(int e) > { > int xpos = Fl::event_x()-x(); > switch (e) { > case FL_PUSH: > - if (xpos < 13 && card != 1) { > - card = 1; > - basew->current_card = 0; > - basew->cards[0]->setMode(basew->cards[0]->getSpeed()); > - redraw(); > - } else if (xpos >= 24 && xpos < 37 && card != 2 && basew->cards[1] != NULL) { > - card = 2; > - basew->current_card = 1; > - basew->cards[1]->setMode(basew->cards[1]->getSpeed()); > - redraw(); > - } else if (xpos >= 48 && card != 3 && basew->cards[2] != NULL) { > - card = 3; > - basew->current_card = 2; > - basew->cards[2]->setMode(basew->cards[2]->getSpeed()); > - redraw(); > - } > + if (xpos < 13 && card != 1) > + ActivateCard (0); > + else if (xpos >= 24 && xpos < 37 && card != 2 && basew->cards[1] != NULL) > + ActivateCard (1); > + else if (xpos >= 48 && card != 3 && basew->cards[2] != NULL) > + ActivateCard (2); > return 1; > default: > return Fl_Widget::handle(e); > --- alsa-tools-1.0.13/hdspmixer/src/HDSPMixerWindow.cxx.orig 2007-04-16 19:41:21.000000000 +0200 > +++ alsa-tools-1.0.13/hdspmixer/src/HDSPMixerWindow.cxx 2007-04-16 19:55:13.000000000 +0200 > @@ -700,6 +701,9 @@ > Fl::atclose = atclose_cb; > Fl::add_handler(handler_cb); > Fl::add_timeout(0.030, readregisters_cb, this); > + i = 0; > + while (cards[i] != NULL) > + inputs->buttons->cardselector->ActivateCard (i++); > } > > int HDSPMixerWindow::handle(int e) > > -- > Experience is something you don't get until > just after you need it! > _______________________________________________ > Alsa-devel mailing list > Alsa-devel@xxxxxxxxxxxxxxxx > http://mailman.alsa-project.org/mailman/listinfo/alsa-devel > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel