static void gst_alsa_mixer_track_update_alsa_capabilities (GstAlsaMixerTrack * alsa_track) { alsa_track->alsa_flags = 0; alsa_track->capture_group = -1; if (snd_mixer_selem_has_common_volume (alsa_track->element)) alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_VOLUME; if (snd_mixer_selem_has_playback_volume (alsa_track->element)) alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_PVOLUME; if (snd_mixer_selem_has_capture_volume (alsa_track->element)) alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_CVOLUME; if (snd_mixer_selem_has_common_switch (alsa_track->element)) alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_SWITCH; if (snd_mixer_selem_has_playback_switch (alsa_track->element)) alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_PSWITCH; if (snd_mixer_selem_has_capture_switch (alsa_track->element)) { alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_CSWITCH; if (snd_mixer_selem_has_capture_switch_exclusive (alsa_track->element)) { alsa_track->alsa_flags |= GST_ALSA_MIXER_TRACK_CSWITCH_EXCL; alsa_track->capture_group = snd_mixer_selem_get_capture_group (alsa_track->element); } } GST_LOG ("[%s] alsa_flags=0x%08x, capture_group=%d", snd_mixer_selem_get_name (alsa_track->element), alsa_track->alsa_flags, alsa_track->capture_group); }
/* * Class: org_tritonus_lowlevel_alsa_AlsaMixerElement * Method: hasCaptureSwitchExclusive * Signature: ()Z */ JNIEXPORT jboolean JNICALL Java_org_tritonus_lowlevel_alsa_AlsaMixerElement_hasCaptureSwitchExclusive (JNIEnv* env, jobject obj) { snd_mixer_elem_t* handle; int nReturn; if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaMixerElement_hasCaptureSwitchExclusive(): begin\n"); } handle = getHandle(env, obj); nReturn = snd_mixer_selem_has_capture_switch_exclusive(handle); if (debug_flag) { (void) fprintf(debug_file, "Java_org_tritonus_lowlevel_alsa_AlsaMixerElement_hasCaptureSwitchExclusive(): end\n"); } return (jboolean) nReturn; }