On Tue, 12 Feb 2002, Taybin Rutkin wrote: > I'm sending this message on behalf of Paul Davis. > > ---------- Forwarded message ---------- > Date: Tue, 12 Feb 2002 15:08:56 -0500 > From: Paul Davis <[EMAIL PROTECTED]> > To: [EMAIL PROTECTED] > Subject: control switch API/code change? > > [ TAYBIN: for some reason, i can't send mail to alsa-devel right now. > Could you forward this for me? Thanks. ] > > the code below used to work just fine with an older version of > 0.9.X. i just upgraded to current CVS, and found that it now causes a > segfault by overwriting h->driver->ctl_handle, apparently before we > even get to the first snd_ctl_elem_read(). > > for clarity, h->driver->ctl_handle is a snd_ctl_t previously opened > successfully and correctly initialized on entry to this code. > > does this ring any bells in anyone's head about changes in the control > interface code?
Strange. I have no clue, there were no changes in the control API. Paul, could you try '[EMAIL PROTECTED]' e-mail for the alsa-devel mailing list? > > --p > > > static void * > hammerfall_monitor_controls (void *arg) > > { > jack_hardware_t *hw = (jack_hardware_t *) arg; > hammerfall_t *h = (hammerfall_t *) hw->private; > snd_ctl_elem_id_t *switch_id[3]; > snd_ctl_elem_value_t *sw[3]; > > pthread_setcanceltype (PTHREAD_CANCEL_ASYNCHRONOUS, NULL); > > snd_ctl_elem_id_malloc (&switch_id[0]); > snd_ctl_elem_id_malloc (&switch_id[1]); > snd_ctl_elem_id_malloc (&switch_id[2]); > > snd_ctl_elem_value_malloc (&sw[0]); > snd_ctl_elem_value_malloc (&sw[1]); > snd_ctl_elem_value_malloc (&sw[2]); > > set_control_id (switch_id[0], "ADAT1 Sync Check"); > set_control_id (switch_id[1], "ADAT2 Sync Check"); > set_control_id (switch_id[2], "ADAT3 Sync Check"); > > snd_ctl_elem_value_set_id (sw[0], switch_id[0]); > snd_ctl_elem_value_set_id (sw[1], switch_id[1]); > snd_ctl_elem_value_set_id (sw[2], switch_id[2]); > > while (1) { > if (snd_ctl_elem_read (h->driver->ctl_handle, sw[0])) { > jack_error ("cannot read control switch 0 ..."); > } > hammerfall_check_sync (h, sw[0]); > > if (snd_ctl_elem_read (h->driver->ctl_handle, sw[1])) { > jack_error ("cannot read control switch 0 ..."); > } > hammerfall_check_sync (h, sw[1]); > > if (snd_ctl_elem_read (h->driver->ctl_handle, sw[2])) { > jack_error ("cannot read control switch 0 ..."); > } > hammerfall_check_sync (h, sw[2]); > > if (nanosleep (&h->monitor_interval, 0)) { > break; > } > } > > pthread_exit (0); > } Jaroslav ----- Jaroslav Kysela <[EMAIL PROTECTED]> SuSE Linux http://www.suse.com ALSA Project http://www.alsa-project.org _______________________________________________ Alsa-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/alsa-devel