Exemple #1
0
static int
gst_alsa_mixer_handle_callback (snd_mixer_t * handle, unsigned int mask,
    snd_mixer_elem_t * elem)
{
  GstAlsaMixer *mixer =
      (GstAlsaMixer *) snd_mixer_get_callback_private (handle);

  GST_LOG ("ALSA cb");

  g_return_val_if_fail (mixer != NULL, 1);

  /* Hopefully won't be call recursively and will handle pending elem events */
  snd_mixer_handle_events (mixer->handle);

  gst_alsa_mixer_update (mixer, elem);

  return 0;
}
Exemple #2
0
static gint
_j4status_alsa_section_mixer_callback(snd_mixer_t *mixer, guint mask, snd_mixer_elem_t *elem)
{
    J4statusAlsaSection *section = snd_mixer_get_callback_private(mixer);
    if ( mask & SND_CTL_EVENT_MASK_ADD )
    {
        if ( ( snd_mixer_selem_get_index(elem) == 0 )
             && ( g_strcmp0(snd_mixer_selem_get_name(elem), "Master") == 0 )
             && snd_mixer_selem_has_playback_channel(elem, SND_MIXER_SCHN_FRONT_LEFT)
             && ( snd_mixer_elem_get_callback_private(elem) == NULL )
            )
        {
            snd_mixer_elem_set_callback(elem, _j4status_alsa_section_elem_callback);
            snd_mixer_elem_set_callback_private(elem, section);
        }
    }
    return 0;
}