<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:doc="http://www.gtk.org/introspection/doc/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <doc:format name="unknown"/>
  <namespace name="Gvc"
             version="1.0"
             shared-library="libgvc.so"
             c:identifier-prefixes="Gvc"
             c:symbol-prefixes="gvc">
    <function-macro name="CHANNEL_MAP"
                    c:identifier="GVC_CHANNEL_MAP"
                    introspectable="0">
      <source-position filename="gvc-channel-map.h" line="30"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CHANNEL_MAP_CLASS"
                    c:identifier="GVC_CHANNEL_MAP_CLASS"
                    introspectable="0">
      <source-position filename="gvc-channel-map.h" line="31"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="CHANNEL_MAP_GET_CLASS"
                    c:identifier="GVC_CHANNEL_MAP_GET_CLASS"
                    introspectable="0">
      <source-position filename="gvc-channel-map.h" line="34"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <class name="ChannelMap"
           c:symbol-prefix="channel_map"
           c:type="GvcChannelMap"
           parent="GObject.Object"
           glib:type-name="GvcChannelMap"
           glib:get-type="gvc_channel_map_get_type"
           glib:type-struct="ChannelMapClass">
      <source-position filename="gvc-channel-map.h" line="48"/>
      <constructor name="new" c:identifier="gvc_channel_map_new">
        <source-position filename="gvc-channel-map.h" line="60"/>
        <return-value transfer-ownership="full">
          <type name="ChannelMap" c:type="GvcChannelMap*"/>
        </return-value>
      </constructor>
      <virtual-method name="volume_changed">
        <source-position filename="gvc-channel-map.h" line="47"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="channel_map" transfer-ownership="none">
            <type name="ChannelMap" c:type="GvcChannelMap*"/>
          </instance-parameter>
          <parameter name="set" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="can_balance" c:identifier="gvc_channel_map_can_balance">
        <source-position filename="gvc-channel-map.h" line="63"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="map" transfer-ownership="none">
            <type name="ChannelMap" c:type="const GvcChannelMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="can_fade" c:identifier="gvc_channel_map_can_fade">
        <source-position filename="gvc-channel-map.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="map" transfer-ownership="none">
            <type name="ChannelMap" c:type="const GvcChannelMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mapping" c:identifier="gvc_channel_map_get_mapping">
        <source-position filename="gvc-channel-map.h" line="69"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="map" transfer-ownership="none">
            <type name="ChannelMap" c:type="const GvcChannelMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_num_channels"
              c:identifier="gvc_channel_map_get_num_channels">
        <source-position filename="gvc-channel-map.h" line="61"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="map" transfer-ownership="none">
            <type name="ChannelMap" c:type="const GvcChannelMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_volume" c:identifier="gvc_channel_map_get_volume">
        <source-position filename="gvc-channel-map.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="const gdouble*"/>
        </return-value>
        <parameters>
          <instance-parameter name="map" transfer-ownership="none">
            <type name="ChannelMap" c:type="GvcChannelMap*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_position"
              c:identifier="gvc_channel_map_has_position"
              introspectable="0">
        <source-position filename="gvc-channel-map.h" line="65"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="map" transfer-ownership="none">
            <type name="ChannelMap" c:type="const GvcChannelMap*"/>
          </instance-parameter>
          <parameter name="position" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="ChannelMapPrivate" c:type="GvcChannelMapPrivate*"/>
      </field>
      <glib:signal name="volume-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ChannelMapClass"
            c:type="GvcChannelMapClass"
            glib:is-gtype-struct-for="ChannelMap">
      <source-position filename="gvc-channel-map.h" line="48"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="volume_changed">
        <callback name="volume_changed">
          <source-position filename="gvc-channel-map.h" line="47"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="channel_map" transfer-ownership="none">
              <type name="ChannelMap" c:type="GvcChannelMap*"/>
            </parameter>
            <parameter name="set" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="ChannelMapPrivate"
            c:type="GvcChannelMapPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gvc-channel-map.h" line="36"/>
    </record>
    <bitfield name="HeadsetPortChoice"
              glib:type-name="GvcHeadsetPortChoice"
              glib:get-type="gvc_headset_port_choice_get_type"
              c:type="GvcHeadsetPortChoice">
      <member name="none"
              value="0"
              c:identifier="GVC_HEADSET_PORT_CHOICE_NONE"
              glib:nick="none"
              glib:name="GVC_HEADSET_PORT_CHOICE_NONE">
      </member>
      <member name="headphones"
              value="1"
              c:identifier="GVC_HEADSET_PORT_CHOICE_HEADPHONES"
              glib:nick="headphones"
              glib:name="GVC_HEADSET_PORT_CHOICE_HEADPHONES">
      </member>
      <member name="headset"
              value="2"
              c:identifier="GVC_HEADSET_PORT_CHOICE_HEADSET"
              glib:nick="headset"
              glib:name="GVC_HEADSET_PORT_CHOICE_HEADSET">
      </member>
      <member name="mic"
              value="4"
              c:identifier="GVC_HEADSET_PORT_CHOICE_MIC"
              glib:nick="mic"
              glib:name="GVC_HEADSET_PORT_CHOICE_MIC">
      </member>
    </bitfield>
    <function-macro name="IS_CHANNEL_MAP"
                    c:identifier="GVC_IS_CHANNEL_MAP"
                    introspectable="0">
      <source-position filename="gvc-channel-map.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_CHANNEL_MAP_CLASS"
                    c:identifier="GVC_IS_CHANNEL_MAP_CLASS"
                    introspectable="0">
      <source-position filename="gvc-channel-map.h" line="33"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MIXER_CARD"
                    c:identifier="GVC_IS_MIXER_CARD"
                    introspectable="0">
      <source-position filename="gvc-mixer-card.h" line="33"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MIXER_CARD_CLASS"
                    c:identifier="GVC_IS_MIXER_CARD_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-card.h" line="34"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MIXER_CONTROL"
                    c:identifier="GVC_IS_MIXER_CONTROL"
                    introspectable="0">
      <source-position filename="gvc-mixer-control.h" line="50"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MIXER_CONTROL_CLASS"
                    c:identifier="GVC_IS_MIXER_CONTROL_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-control.h" line="51"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MIXER_EVENT_ROLE"
                    c:identifier="GVC_IS_MIXER_EVENT_ROLE"
                    introspectable="0">
      <source-position filename="gvc-mixer-event-role.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MIXER_EVENT_ROLE_CLASS"
                    c:identifier="GVC_IS_MIXER_EVENT_ROLE_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-event-role.h" line="33"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MIXER_SINK"
                    c:identifier="GVC_IS_MIXER_SINK"
                    introspectable="0">
      <source-position filename="gvc-mixer-sink.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MIXER_SINK_CLASS"
                    c:identifier="GVC_IS_MIXER_SINK_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-sink.h" line="33"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MIXER_SINK_INPUT"
                    c:identifier="GVC_IS_MIXER_SINK_INPUT"
                    introspectable="0">
      <source-position filename="gvc-mixer-sink-input.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MIXER_SINK_INPUT_CLASS"
                    c:identifier="GVC_IS_MIXER_SINK_INPUT_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-sink-input.h" line="33"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MIXER_SOURCE"
                    c:identifier="GVC_IS_MIXER_SOURCE"
                    introspectable="0">
      <source-position filename="gvc-mixer-source.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MIXER_SOURCE_CLASS"
                    c:identifier="GVC_IS_MIXER_SOURCE_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-source.h" line="33"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MIXER_SOURCE_OUTPUT"
                    c:identifier="GVC_IS_MIXER_SOURCE_OUTPUT"
                    introspectable="0">
      <source-position filename="gvc-mixer-source-output.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MIXER_SOURCE_OUTPUT_CLASS"
                    c:identifier="GVC_IS_MIXER_SOURCE_OUTPUT_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-source-output.h" line="33"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MIXER_STREAM"
                    c:identifier="GVC_IS_MIXER_STREAM"
                    introspectable="0">
      <source-position filename="gvc-mixer-stream.h" line="34"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MIXER_STREAM_CLASS"
                    c:identifier="GVC_IS_MIXER_STREAM_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-stream.h" line="35"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MIXER_UI_DEVICE"
                    c:identifier="GVC_IS_MIXER_UI_DEVICE"
                    introspectable="0">
      <source-position filename="gvc-mixer-ui-device.h" line="30"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_MIXER_UI_DEVICE_CLASS"
                    c:identifier="GVC_IS_MIXER_UI_DEVICE_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-ui-device.h" line="31"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_CARD"
                    c:identifier="GVC_MIXER_CARD"
                    introspectable="0">
      <source-position filename="gvc-mixer-card.h" line="31"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_CARD_CLASS"
                    c:identifier="GVC_MIXER_CARD_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-card.h" line="32"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_CARD_GET_CLASS"
                    c:identifier="GVC_MIXER_CARD_GET_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-card.h" line="35"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_CONTROL"
                    c:identifier="GVC_MIXER_CONTROL"
                    introspectable="0">
      <source-position filename="gvc-mixer-control.h" line="48"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_CONTROL_CLASS"
                    c:identifier="GVC_MIXER_CONTROL_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-control.h" line="49"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_CONTROL_GET_CLASS"
                    c:identifier="GVC_MIXER_CONTROL_GET_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-control.h" line="52"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_EVENT_ROLE"
                    c:identifier="GVC_MIXER_EVENT_ROLE"
                    introspectable="0">
      <source-position filename="gvc-mixer-event-role.h" line="30"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_EVENT_ROLE_CLASS"
                    c:identifier="GVC_MIXER_EVENT_ROLE_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-event-role.h" line="31"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_EVENT_ROLE_GET_CLASS"
                    c:identifier="GVC_MIXER_EVENT_ROLE_GET_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-event-role.h" line="34"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_SINK"
                    c:identifier="GVC_MIXER_SINK"
                    introspectable="0">
      <source-position filename="gvc-mixer-sink.h" line="30"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_SINK_CLASS"
                    c:identifier="GVC_MIXER_SINK_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-sink.h" line="31"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_SINK_GET_CLASS"
                    c:identifier="GVC_MIXER_SINK_GET_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-sink.h" line="34"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_SINK_INPUT"
                    c:identifier="GVC_MIXER_SINK_INPUT"
                    introspectable="0">
      <source-position filename="gvc-mixer-sink-input.h" line="30"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_SINK_INPUT_CLASS"
                    c:identifier="GVC_MIXER_SINK_INPUT_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-sink-input.h" line="31"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_SINK_INPUT_GET_CLASS"
                    c:identifier="GVC_MIXER_SINK_INPUT_GET_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-sink-input.h" line="34"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_SOURCE"
                    c:identifier="GVC_MIXER_SOURCE"
                    introspectable="0">
      <source-position filename="gvc-mixer-source.h" line="30"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_SOURCE_CLASS"
                    c:identifier="GVC_MIXER_SOURCE_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-source.h" line="31"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_SOURCE_GET_CLASS"
                    c:identifier="GVC_MIXER_SOURCE_GET_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-source.h" line="34"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_SOURCE_OUTPUT"
                    c:identifier="GVC_MIXER_SOURCE_OUTPUT"
                    introspectable="0">
      <source-position filename="gvc-mixer-source-output.h" line="30"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_SOURCE_OUTPUT_CLASS"
                    c:identifier="GVC_MIXER_SOURCE_OUTPUT_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-source-output.h" line="31"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_SOURCE_OUTPUT_GET_CLASS"
                    c:identifier="GVC_MIXER_SOURCE_OUTPUT_GET_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-source-output.h" line="34"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_STREAM"
                    c:identifier="GVC_MIXER_STREAM"
                    introspectable="0">
      <source-position filename="gvc-mixer-stream.h" line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_STREAM_CLASS"
                    c:identifier="GVC_MIXER_STREAM_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-stream.h" line="33"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_STREAM_GET_CLASS"
                    c:identifier="GVC_MIXER_STREAM_GET_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-stream.h" line="36"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_UI_DEVICE"
                    c:identifier="GVC_MIXER_UI_DEVICE"
                    introspectable="0">
      <source-position filename="gvc-mixer-ui-device.h" line="28"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_UI_DEVICE_CLASS"
                    c:identifier="GVC_MIXER_UI_DEVICE_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-ui-device.h" line="29"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="MIXER_UI_DEVICE_GET_CLASS"
                    c:identifier="GVC_MIXER_UI_DEVICE_GET_CLASS"
                    introspectable="0">
      <source-position filename="gvc-mixer-ui-device.h" line="32"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="MIXER_UI_DEVICE_INVALID"
              value="0"
              c:type="GVC_MIXER_UI_DEVICE_INVALID">
      <source-position filename="gvc-mixer-ui-device.h" line="34"/>
      <type name="gint" c:type="gint"/>
    </constant>
    <class name="MixerCard"
           c:symbol-prefix="mixer_card"
           c:type="GvcMixerCard"
           parent="GObject.Object"
           glib:type-name="GvcMixerCard"
           glib:get-type="gvc_mixer_card_get_type"
           glib:type-struct="MixerCardClass">
      <source-position filename="gvc-mixer-card.h" line="50"/>
      <method name="change_profile"
              c:identifier="gvc_mixer_card_change_profile">
        <doc xml:space="preserve"
             filename="gvc-mixer-card.c"
             line="228">Change the profile in use on this card.</doc>
        <source-position filename="gvc-mixer-card.h" line="81"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gvc-mixer-card.c"
               line="235">%TRUE if profile successfully changed or already using this profile.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="card" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gvc-mixer-card.c"
                 line="230">a #GvcMixerCard</doc>
            <type name="MixerCard" c:type="GvcMixerCard*"/>
          </instance-parameter>
          <parameter name="profile"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gvc-mixer-card.c"
                 line="231">the profile to change to or %NULL.</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_gicon" c:identifier="gvc_mixer_card_get_gicon">
        <source-position filename="gvc-mixer-card.h" line="83"/>
        <return-value transfer-ownership="full">
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="card" transfer-ownership="none">
            <type name="MixerCard" c:type="GvcMixerCard*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_name"
              c:identifier="gvc_mixer_card_get_icon_name"
              glib:get-property="icon-name">
        <source-position filename="gvc-mixer-card.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="card" transfer-ownership="none">
            <type name="MixerCard" c:type="GvcMixerCard*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id"
              c:identifier="gvc_mixer_card_get_id"
              glib:get-property="id">
        <source-position filename="gvc-mixer-card.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="card" transfer-ownership="none">
            <type name="MixerCard" c:type="GvcMixerCard*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_index"
              c:identifier="gvc_mixer_card_get_index"
              glib:get-property="index">
        <source-position filename="gvc-mixer-card.h" line="75"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="card" transfer-ownership="none">
            <type name="MixerCard" c:type="GvcMixerCard*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="gvc_mixer_card_get_name"
              glib:get-property="name">
        <source-position filename="gvc-mixer-card.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="card" transfer-ownership="none">
            <type name="MixerCard" c:type="GvcMixerCard*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ports" c:identifier="gvc_mixer_card_get_ports">
        <source-position filename="gvc-mixer-card.h" line="80"/>
        <return-value transfer-ownership="none">
          <type name="GLib.List" c:type="const GList*">
            <type name="MixerCardPort"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="card" transfer-ownership="none">
            <type name="MixerCard" c:type="GvcMixerCard*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_profile"
              c:identifier="gvc_mixer_card_get_profile"
              glib:get-property="profile"
              introspectable="0">
        <source-position filename="gvc-mixer-card.h" line="78"/>
        <return-value>
          <type name="MixerCardProfile" c:type="GvcMixerCardProfile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="card" transfer-ownership="none">
            <type name="MixerCard" c:type="GvcMixerCard*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_profiles" c:identifier="gvc_mixer_card_get_profiles">
        <source-position filename="gvc-mixer-card.h" line="79"/>
        <return-value transfer-ownership="none">
          <type name="GLib.List" c:type="const GList*">
            <type name="MixerCardProfile"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="card" transfer-ownership="none">
            <type name="MixerCard" c:type="GvcMixerCard*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_icon_name"
              c:identifier="gvc_mixer_card_set_icon_name"
              glib:set-property="icon-name">
        <source-position filename="gvc-mixer-card.h" line="91"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="card" transfer-ownership="none">
            <type name="MixerCard" c:type="GvcMixerCard*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name"
              c:identifier="gvc_mixer_card_set_name"
              glib:set-property="name">
        <source-position filename="gvc-mixer-card.h" line="89"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="card" transfer-ownership="none">
            <type name="MixerCard" c:type="GvcMixerCard*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_ports" c:identifier="gvc_mixer_card_set_ports">
        <source-position filename="gvc-mixer-card.h" line="97"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerCard" c:type="GvcMixerCard*"/>
          </instance-parameter>
          <parameter name="ports" transfer-ownership="full">
            <type name="GLib.List" c:type="GList*">
              <type name="MixerCardPort"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_profile"
              c:identifier="gvc_mixer_card_set_profile"
              glib:set-property="profile">
        <source-position filename="gvc-mixer-card.h" line="93"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="card" transfer-ownership="none">
            <type name="MixerCard" c:type="GvcMixerCard*"/>
          </instance-parameter>
          <parameter name="profile" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_profiles" c:identifier="gvc_mixer_card_set_profiles">
        <source-position filename="gvc-mixer-card.h" line="95"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="card" transfer-ownership="none">
            <type name="MixerCard" c:type="GvcMixerCard*"/>
          </instance-parameter>
          <parameter name="profiles" transfer-ownership="full">
            <type name="GLib.List" c:type="GList*">
              <type name="MixerCardProfile"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <property name="human-profile"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="icon-name"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_icon_name"
                getter="get_icon_name"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="id"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_id"
                default-value="0">
        <type name="gulong" c:type="gulong"/>
      </property>
      <property name="index"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_index"
                default-value="0">
        <type name="gulong" c:type="gulong"/>
      </property>
      <property name="name"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_name"
                getter="get_name"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="pa-context"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="profile"
                writable="1"
                transfer-ownership="none"
                setter="set_profile"
                getter="get_profile"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="MixerCardPrivate" c:type="GvcMixerCardPrivate*"/>
      </field>
    </class>
    <record name="MixerCardClass"
            c:type="GvcMixerCardClass"
            glib:is-gtype-struct-for="MixerCard">
      <source-position filename="gvc-mixer-card.h" line="50"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="MixerCardPort" c:type="GvcMixerCardPort">
      <source-position filename="gvc-mixer-card.h" line="70"/>
      <field name="port" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="human_port" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="icon_name" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="priority" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="available" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="direction" writable="1">
        <type name="gint" c:type="gint"/>
      </field>
      <field name="profiles" writable="1">
        <type name="GLib.List" c:type="GList*">
          <type name="gpointer" c:type="gpointer"/>
        </type>
      </field>
    </record>
    <record name="MixerCardPrivate"
            c:type="GvcMixerCardPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gvc-mixer-card.h" line="37"/>
    </record>
    <record name="MixerCardProfile" c:type="GvcMixerCardProfile">
      <source-position filename="gvc-mixer-card.h" line="59"/>
      <field name="profile" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="human_profile" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="status" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="priority" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="n_sinks" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="n_sources" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <method name="compare" c:identifier="gvc_mixer_card_profile_compare">
        <source-position filename="gvc-mixer-card.h" line="85"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gvc-mixer-card.c"
               line="304">1 if @a has a higher priority, -1 if @b has a higher
priority, 0 if @a and @b have the same priority.</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="a" transfer-ownership="none">
            <type name="MixerCardProfile" c:type="GvcMixerCardProfile*"/>
          </instance-parameter>
          <parameter name="b" transfer-ownership="none">
            <type name="MixerCardProfile" c:type="GvcMixerCardProfile*"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <class name="MixerControl"
           c:symbol-prefix="mixer_control"
           c:type="GvcMixerControl"
           parent="GObject.Object"
           glib:type-name="GvcMixerControl"
           glib:get-type="gvc_mixer_control_get_type"
           glib:type-struct="MixerControlClass">
      <source-position filename="gvc-mixer-control.h" line="99"/>
      <constructor name="new" c:identifier="gvc_mixer_control_new">
        <source-position filename="gvc-mixer-control.h" line="103"/>
        <return-value transfer-ownership="full">
          <type name="MixerControl" c:type="GvcMixerControl*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="active_input_update">
        <source-position filename="gvc-mixer-control.h" line="84"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="active_output_update">
        <source-position filename="gvc-mixer-control.h" line="82"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="audio_device_selection_needed">
        <source-position filename="gvc-mixer-control.h" line="94"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="show_dialog" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="choices" transfer-ownership="none">
            <type name="HeadsetPortChoice" c:type="GvcHeadsetPortChoice"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="card_added">
        <source-position filename="gvc-mixer-control.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="card_removed">
        <source-position filename="gvc-mixer-control.h" line="76"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="default_sink_changed">
        <source-position filename="gvc-mixer-control.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="default_source_changed">
        <source-position filename="gvc-mixer-control.h" line="80"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="input_added">
        <source-position filename="gvc-mixer-control.h" line="88"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="input_removed">
        <source-position filename="gvc-mixer-control.h" line="92"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="output_added">
        <source-position filename="gvc-mixer-control.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="output_removed">
        <source-position filename="gvc-mixer-control.h" line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="state_changed">
        <source-position filename="gvc-mixer-control.h" line="66"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="new_state" transfer-ownership="none">
            <type name="MixerControlState" c:type="GvcMixerControlState"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="stream_added">
        <source-position filename="gvc-mixer-control.h" line="68"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="stream_changed">
        <source-position filename="gvc-mixer-control.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="stream_removed">
        <source-position filename="gvc-mixer-control.h" line="72"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="change_input"
              c:identifier="gvc_mixer_control_change_input">
        <source-position filename="gvc-mixer-control.h" line="139"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="input" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gvc-mixer-control.c"
                 line="645">This method is called from the UI when the user selects a previously unselected device.
- Firstly it queries the stream from the device.
  - It assumes that if the stream is null that it cannot be a bluetooth or network stream (they never show unless they have valid sinks and sources)
  In the scenario of a NULL stream on the device
       - It fetches the device's preferred profile or if NULL the profile with the highest priority on that device.
       - It then caches this device in control-&gt;priv-&gt;cached_desired_input_id so that when the update_source triggered
         from when we attempt to change profile we will know exactly what device to highlight on that stream.
       - It attempts to swap the profile on the card from that device and returns.
- Next, it handles network or bluetooth streams that only require their stream to be made the default.
- Next it deals with port changes so if the stream's active port is not the same as the port on the device
  it will attempt to change the port on that stream to be same as the device. If this fails it will return.
- Finally it will set this new stream to be the default stream and emit a signal for the UI confirming the active input device.</doc>
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </parameter>
        </parameters>
      </method>
      <method name="change_output"
              c:identifier="gvc_mixer_control_change_output">
        <source-position filename="gvc-mixer-control.h" line="137"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gvc-mixer-control.c"
                 line="573">This method is called from the UI when the user selects a previously unselected device.
- Firstly it queries the stream from the device.
  - It assumes that if the stream is null that it cannot be a bluetooth or network stream (they never show unless they have valid sinks and sources)
  In the scenario of a NULL stream on the device
       - It fetches the device's preferred profile or if NULL the profile with the highest priority on that device.
       - It then caches this device in control-&gt;priv-&gt;cached_desired_output_id so that when the update_sink triggered
         from when we attempt to change profile we will know exactly what device to highlight on that stream.
       - It attempts to swap the profile on the card from that device and returns.
- Next, it handles network or bluetooth streams that only require their stream to be made the default.
- Next it deals with port changes so if the stream's active port is not the same as the port on the device
  it will attempt to change the port on that stream to be same as the device. If this fails it will return.
- Finally it will set this new stream to be the default stream and emit a signal for the UI confirming the active output device.</doc>
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </parameter>
        </parameters>
      </method>
      <method name="change_profile_on_selected_device"
              c:identifier="gvc_mixer_control_change_profile_on_selected_device">
        <source-position filename="gvc-mixer-control.h" line="143"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gvc-mixer-control.c"
               line="525">This method will attempt to swap the profile on the card of
the device with given profile name.  If successful it will set the
preferred profile on that device so as we know the next time the user
moves to that device it should have this profile active.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </parameter>
          <parameter name="profile"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gvc-mixer-control.c"
                 line="523">Can be %NULL if any profile present on this port is okay</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="close" c:identifier="gvc_mixer_control_close">
        <source-position filename="gvc-mixer-control.h" line="106"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_cards" c:identifier="gvc_mixer_control_get_cards">
        <source-position filename="gvc-mixer-control.h" line="108"/>
        <return-value transfer-ownership="container">
          <type name="GLib.SList" c:type="GSList*">
            <type name="MixerCard"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_default_sink"
              c:identifier="gvc_mixer_control_get_default_sink">
        <source-position filename="gvc-mixer-control.h" line="126"/>
        <return-value transfer-ownership="none">
          <type name="MixerStream" c:type="GvcMixerStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_default_source"
              c:identifier="gvc_mixer_control_get_default_source">
        <source-position filename="gvc-mixer-control.h" line="127"/>
        <return-value transfer-ownership="none">
          <type name="MixerStream" c:type="GvcMixerStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_event_sink_input"
              c:identifier="gvc_mixer_control_get_event_sink_input">
        <source-position filename="gvc-mixer-control.h" line="128"/>
        <return-value transfer-ownership="none">
          <type name="MixerStream" c:type="GvcMixerStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sink_inputs"
              c:identifier="gvc_mixer_control_get_sink_inputs">
        <source-position filename="gvc-mixer-control.h" line="112"/>
        <return-value transfer-ownership="container">
          <type name="GLib.SList" c:type="GSList*">
            <type name="MixerSinkInput"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sinks" c:identifier="gvc_mixer_control_get_sinks">
        <source-position filename="gvc-mixer-control.h" line="110"/>
        <return-value transfer-ownership="container">
          <type name="GLib.SList" c:type="GSList*">
            <type name="MixerSink"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_source_outputs"
              c:identifier="gvc_mixer_control_get_source_outputs">
        <source-position filename="gvc-mixer-control.h" line="113"/>
        <return-value transfer-ownership="container">
          <type name="GLib.SList" c:type="GSList*">
            <type name="MixerSourceOutput"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sources" c:identifier="gvc_mixer_control_get_sources">
        <source-position filename="gvc-mixer-control.h" line="111"/>
        <return-value transfer-ownership="container">
          <type name="GLib.SList" c:type="GSList*">
            <type name="MixerSource"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_state" c:identifier="gvc_mixer_control_get_state">
        <source-position filename="gvc-mixer-control.h" line="151"/>
        <return-value transfer-ownership="none">
          <type name="MixerControlState" c:type="GvcMixerControlState"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stream_from_device"
              c:identifier="gvc_mixer_control_get_stream_from_device">
        <source-position filename="gvc-mixer-control.h" line="141"/>
        <return-value transfer-ownership="none">
          <type name="MixerStream" c:type="GvcMixerStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_streams" c:identifier="gvc_mixer_control_get_streams">
        <source-position filename="gvc-mixer-control.h" line="109"/>
        <return-value transfer-ownership="container">
          <type name="GLib.SList" c:type="GSList*">
            <type name="MixerStream"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_vol_max_amplified"
              c:identifier="gvc_mixer_control_get_vol_max_amplified">
        <source-position filename="gvc-mixer-control.h" line="136"/>
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_vol_max_norm"
              c:identifier="gvc_mixer_control_get_vol_max_norm">
        <source-position filename="gvc-mixer-control.h" line="135"/>
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="lookup_card_id"
              c:identifier="gvc_mixer_control_lookup_card_id">
        <source-position filename="gvc-mixer-control.h" line="117"/>
        <return-value transfer-ownership="none">
          <type name="MixerCard" c:type="GvcMixerCard*"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_device_from_stream"
              c:identifier="gvc_mixer_control_lookup_device_from_stream">
        <source-position filename="gvc-mixer-control.h" line="123"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gvc-mixer-control.c"
               line="235">a #GvcUIDevice or %NULL</doc>
          <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_input_id"
              c:identifier="gvc_mixer_control_lookup_input_id">
        <source-position filename="gvc-mixer-control.h" line="121"/>
        <return-value transfer-ownership="none">
          <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_output_id"
              c:identifier="gvc_mixer_control_lookup_output_id">
        <source-position filename="gvc-mixer-control.h" line="119"/>
        <return-value transfer-ownership="none">
          <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup_stream_id"
              c:identifier="gvc_mixer_control_lookup_stream_id">
        <source-position filename="gvc-mixer-control.h" line="115"/>
        <return-value transfer-ownership="none">
          <type name="MixerStream" c:type="GvcMixerStream*"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="open" c:identifier="gvc_mixer_control_open">
        <source-position filename="gvc-mixer-control.h" line="105"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_default_sink"
              c:identifier="gvc_mixer_control_set_default_sink">
        <source-position filename="gvc-mixer-control.h" line="130"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_default_source"
              c:identifier="gvc_mixer_control_set_default_source">
        <source-position filename="gvc-mixer-control.h" line="132"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_headset_port"
              c:identifier="gvc_mixer_control_set_headset_port">
        <source-position filename="gvc-mixer-control.h" line="147"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="control" transfer-ownership="none">
            <type name="MixerControl" c:type="GvcMixerControl*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="choices" transfer-ownership="none">
            <type name="HeadsetPortChoice" c:type="GvcHeadsetPortChoice"/>
          </parameter>
        </parameters>
      </method>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="MixerControlPrivate" c:type="GvcMixerControlPrivate*"/>
      </field>
      <glib:signal name="active-input-update" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="active-output-update" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="audio-device-selection-needed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="p1" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="card-added" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="card-removed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="default-sink-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="default-source-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="input-added" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="input-removed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="output-added" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="output-removed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="state-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="stream-added" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="stream-changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="stream-removed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="MixerControlClass"
            c:type="GvcMixerControlClass"
            glib:is-gtype-struct-for="MixerControl">
      <source-position filename="gvc-mixer-control.h" line="99"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="state_changed">
        <callback name="state_changed">
          <source-position filename="gvc-mixer-control.h" line="66"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="control" transfer-ownership="none">
              <type name="MixerControl" c:type="GvcMixerControl*"/>
            </parameter>
            <parameter name="new_state" transfer-ownership="none">
              <type name="MixerControlState" c:type="GvcMixerControlState"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="stream_added">
        <callback name="stream_added">
          <source-position filename="gvc-mixer-control.h" line="68"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="control" transfer-ownership="none">
              <type name="MixerControl" c:type="GvcMixerControl*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="stream_changed">
        <callback name="stream_changed">
          <source-position filename="gvc-mixer-control.h" line="70"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="control" transfer-ownership="none">
              <type name="MixerControl" c:type="GvcMixerControl*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="stream_removed">
        <callback name="stream_removed">
          <source-position filename="gvc-mixer-control.h" line="72"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="control" transfer-ownership="none">
              <type name="MixerControl" c:type="GvcMixerControl*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="card_added">
        <callback name="card_added">
          <source-position filename="gvc-mixer-control.h" line="74"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="control" transfer-ownership="none">
              <type name="MixerControl" c:type="GvcMixerControl*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="card_removed">
        <callback name="card_removed">
          <source-position filename="gvc-mixer-control.h" line="76"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="control" transfer-ownership="none">
              <type name="MixerControl" c:type="GvcMixerControl*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="default_sink_changed">
        <callback name="default_sink_changed">
          <source-position filename="gvc-mixer-control.h" line="78"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="control" transfer-ownership="none">
              <type name="MixerControl" c:type="GvcMixerControl*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="default_source_changed">
        <callback name="default_source_changed">
          <source-position filename="gvc-mixer-control.h" line="80"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="control" transfer-ownership="none">
              <type name="MixerControl" c:type="GvcMixerControl*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="active_output_update">
        <callback name="active_output_update">
          <source-position filename="gvc-mixer-control.h" line="82"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="control" transfer-ownership="none">
              <type name="MixerControl" c:type="GvcMixerControl*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="active_input_update">
        <callback name="active_input_update">
          <source-position filename="gvc-mixer-control.h" line="84"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="control" transfer-ownership="none">
              <type name="MixerControl" c:type="GvcMixerControl*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="output_added">
        <callback name="output_added">
          <source-position filename="gvc-mixer-control.h" line="86"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="control" transfer-ownership="none">
              <type name="MixerControl" c:type="GvcMixerControl*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="input_added">
        <callback name="input_added">
          <source-position filename="gvc-mixer-control.h" line="88"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="control" transfer-ownership="none">
              <type name="MixerControl" c:type="GvcMixerControl*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="output_removed">
        <callback name="output_removed">
          <source-position filename="gvc-mixer-control.h" line="90"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="control" transfer-ownership="none">
              <type name="MixerControl" c:type="GvcMixerControl*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="input_removed">
        <callback name="input_removed">
          <source-position filename="gvc-mixer-control.h" line="92"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="control" transfer-ownership="none">
              <type name="MixerControl" c:type="GvcMixerControl*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="audio_device_selection_needed">
        <callback name="audio_device_selection_needed">
          <source-position filename="gvc-mixer-control.h" line="94"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="control" transfer-ownership="none">
              <type name="MixerControl" c:type="GvcMixerControl*"/>
            </parameter>
            <parameter name="id" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
            <parameter name="show_dialog" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
            <parameter name="choices" transfer-ownership="none">
              <type name="HeadsetPortChoice" c:type="GvcHeadsetPortChoice"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="MixerControlPrivate"
            c:type="GvcMixerControlPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gvc-mixer-control.h" line="54"/>
    </record>
    <enumeration name="MixerControlState"
                 glib:type-name="GvcMixerControlState"
                 glib:get-type="gvc_mixer_control_state_get_type"
                 c:type="GvcMixerControlState">
      <member name="closed"
              value="0"
              c:identifier="GVC_STATE_CLOSED"
              glib:nick="closed"
              glib:name="GVC_STATE_CLOSED">
      </member>
      <member name="ready"
              value="1"
              c:identifier="GVC_STATE_READY"
              glib:nick="ready"
              glib:name="GVC_STATE_READY">
      </member>
      <member name="connecting"
              value="2"
              c:identifier="GVC_STATE_CONNECTING"
              glib:nick="connecting"
              glib:name="GVC_STATE_CONNECTING">
      </member>
      <member name="failed"
              value="3"
              c:identifier="GVC_STATE_FAILED"
              glib:nick="failed"
              glib:name="GVC_STATE_FAILED">
      </member>
    </enumeration>
    <class name="MixerEventRole"
           c:symbol-prefix="mixer_event_role"
           c:type="GvcMixerEventRole"
           parent="MixerStream"
           glib:type-name="GvcMixerEventRole"
           glib:get-type="gvc_mixer_event_role_get_type"
           glib:type-struct="MixerEventRoleClass">
      <source-position filename="gvc-mixer-event-role.h" line="47"/>
      <constructor name="new"
                   c:identifier="gvc_mixer_event_role_new"
                   introspectable="0">
        <source-position filename="gvc-mixer-event-role.h" line="51"/>
        <return-value transfer-ownership="full">
          <type name="MixerStream" c:type="GvcMixerStream*"/>
        </return-value>
        <parameters>
          <parameter name="context"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
          <parameter name="device" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="channel_map" transfer-ownership="none">
            <type name="ChannelMap" c:type="GvcChannelMap*"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="device"
                writable="1"
                construct="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="MixerStream" c:type="GvcMixerStream"/>
      </field>
      <field name="priv">
        <type name="MixerEventRolePrivate" c:type="GvcMixerEventRolePrivate*"/>
      </field>
    </class>
    <record name="MixerEventRoleClass"
            c:type="GvcMixerEventRoleClass"
            glib:is-gtype-struct-for="MixerEventRole">
      <source-position filename="gvc-mixer-event-role.h" line="47"/>
      <field name="parent_class">
        <type name="MixerStreamClass" c:type="GvcMixerStreamClass"/>
      </field>
    </record>
    <record name="MixerEventRolePrivate"
            c:type="GvcMixerEventRolePrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gvc-mixer-event-role.h" line="36"/>
    </record>
    <class name="MixerSink"
           c:symbol-prefix="mixer_sink"
           c:type="GvcMixerSink"
           parent="MixerStream"
           glib:type-name="GvcMixerSink"
           glib:get-type="gvc_mixer_sink_get_type"
           glib:type-struct="MixerSinkClass">
      <source-position filename="gvc-mixer-sink.h" line="47"/>
      <constructor name="new"
                   c:identifier="gvc_mixer_sink_new"
                   introspectable="0">
        <source-position filename="gvc-mixer-sink.h" line="51"/>
        <return-value transfer-ownership="full">
          <type name="MixerStream" c:type="GvcMixerStream*"/>
        </return-value>
        <parameters>
          <parameter name="context"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="channel_map" transfer-ownership="none">
            <type name="ChannelMap" c:type="GvcChannelMap*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="MixerStream" c:type="GvcMixerStream"/>
      </field>
      <field name="priv">
        <type name="MixerSinkPrivate" c:type="GvcMixerSinkPrivate*"/>
      </field>
    </class>
    <record name="MixerSinkClass"
            c:type="GvcMixerSinkClass"
            glib:is-gtype-struct-for="MixerSink">
      <source-position filename="gvc-mixer-sink.h" line="47"/>
      <field name="parent_class">
        <type name="MixerStreamClass" c:type="GvcMixerStreamClass"/>
      </field>
    </record>
    <class name="MixerSinkInput"
           c:symbol-prefix="mixer_sink_input"
           c:type="GvcMixerSinkInput"
           parent="MixerStream"
           glib:type-name="GvcMixerSinkInput"
           glib:get-type="gvc_mixer_sink_input_get_type"
           glib:type-struct="MixerSinkInputClass">
      <source-position filename="gvc-mixer-sink-input.h" line="47"/>
      <constructor name="new"
                   c:identifier="gvc_mixer_sink_input_new"
                   introspectable="0">
        <source-position filename="gvc-mixer-sink-input.h" line="51"/>
        <return-value transfer-ownership="full">
          <type name="MixerStream" c:type="GvcMixerStream*"/>
        </return-value>
        <parameters>
          <parameter name="context"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="channel_map" transfer-ownership="none">
            <type name="ChannelMap" c:type="GvcChannelMap*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="MixerStream" c:type="GvcMixerStream"/>
      </field>
      <field name="priv">
        <type name="MixerSinkInputPrivate" c:type="GvcMixerSinkInputPrivate*"/>
      </field>
    </class>
    <record name="MixerSinkInputClass"
            c:type="GvcMixerSinkInputClass"
            glib:is-gtype-struct-for="MixerSinkInput">
      <source-position filename="gvc-mixer-sink-input.h" line="47"/>
      <field name="parent_class">
        <type name="MixerStreamClass" c:type="GvcMixerStreamClass"/>
      </field>
    </record>
    <record name="MixerSinkInputPrivate"
            c:type="GvcMixerSinkInputPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gvc-mixer-sink-input.h" line="36"/>
    </record>
    <record name="MixerSinkPrivate"
            c:type="GvcMixerSinkPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gvc-mixer-sink.h" line="36"/>
    </record>
    <class name="MixerSource"
           c:symbol-prefix="mixer_source"
           c:type="GvcMixerSource"
           parent="MixerStream"
           glib:type-name="GvcMixerSource"
           glib:get-type="gvc_mixer_source_get_type"
           glib:type-struct="MixerSourceClass">
      <source-position filename="gvc-mixer-source.h" line="47"/>
      <constructor name="new"
                   c:identifier="gvc_mixer_source_new"
                   introspectable="0">
        <source-position filename="gvc-mixer-source.h" line="51"/>
        <return-value transfer-ownership="full">
          <type name="MixerStream" c:type="GvcMixerStream*"/>
        </return-value>
        <parameters>
          <parameter name="context"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="channel_map" transfer-ownership="none">
            <type name="ChannelMap" c:type="GvcChannelMap*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="MixerStream" c:type="GvcMixerStream"/>
      </field>
      <field name="priv">
        <type name="MixerSourcePrivate" c:type="GvcMixerSourcePrivate*"/>
      </field>
    </class>
    <record name="MixerSourceClass"
            c:type="GvcMixerSourceClass"
            glib:is-gtype-struct-for="MixerSource">
      <source-position filename="gvc-mixer-source.h" line="47"/>
      <field name="parent_class">
        <type name="MixerStreamClass" c:type="GvcMixerStreamClass"/>
      </field>
    </record>
    <class name="MixerSourceOutput"
           c:symbol-prefix="mixer_source_output"
           c:type="GvcMixerSourceOutput"
           parent="MixerStream"
           glib:type-name="GvcMixerSourceOutput"
           glib:get-type="gvc_mixer_source_output_get_type"
           glib:type-struct="MixerSourceOutputClass">
      <source-position filename="gvc-mixer-source-output.h" line="47"/>
      <constructor name="new"
                   c:identifier="gvc_mixer_source_output_new"
                   introspectable="0">
        <source-position filename="gvc-mixer-source-output.h" line="51"/>
        <return-value transfer-ownership="full">
          <type name="MixerStream" c:type="GvcMixerStream*"/>
        </return-value>
        <parameters>
          <parameter name="context"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
          <parameter name="index" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="channel_map" transfer-ownership="none">
            <type name="ChannelMap" c:type="GvcChannelMap*"/>
          </parameter>
        </parameters>
      </constructor>
      <field name="parent">
        <type name="MixerStream" c:type="GvcMixerStream"/>
      </field>
      <field name="priv">
        <type name="MixerSourceOutputPrivate"
              c:type="GvcMixerSourceOutputPrivate*"/>
      </field>
    </class>
    <record name="MixerSourceOutputClass"
            c:type="GvcMixerSourceOutputClass"
            glib:is-gtype-struct-for="MixerSourceOutput">
      <source-position filename="gvc-mixer-source-output.h" line="47"/>
      <field name="parent_class">
        <type name="MixerStreamClass" c:type="GvcMixerStreamClass"/>
      </field>
    </record>
    <record name="MixerSourceOutputPrivate"
            c:type="GvcMixerSourceOutputPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gvc-mixer-source-output.h" line="36"/>
    </record>
    <record name="MixerSourcePrivate"
            c:type="GvcMixerSourcePrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gvc-mixer-source.h" line="36"/>
    </record>
    <class name="MixerStream"
           c:symbol-prefix="mixer_stream"
           c:type="GvcMixerStream"
           parent="GObject.Object"
           abstract="1"
           glib:type-name="GvcMixerStream"
           glib:get-type="gvc_mixer_stream_get_type"
           glib:type-struct="MixerStreamClass">
      <source-position filename="gvc-mixer-stream.h" line="57"/>
      <virtual-method name="change_is_muted" invoker="change_is_muted">
        <source-position filename="gvc-mixer-stream.h" line="53"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="is_muted" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="change_port" invoker="change_port">
        <source-position filename="gvc-mixer-stream.h" line="55"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="port" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="push_volume">
        <source-position filename="gvc-mixer-stream.h" line="51"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="operation"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="change_is_muted"
              c:identifier="gvc_mixer_stream_change_is_muted">
        <source-position filename="gvc-mixer-stream.h" line="93"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="is_muted" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="change_port" c:identifier="gvc_mixer_stream_change_port">
        <source-position filename="gvc-mixer-stream.h" line="83"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="port" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_application_id"
              c:identifier="gvc_mixer_stream_get_application_id"
              glib:get-property="application-id">
        <source-position filename="gvc-mixer-stream.h" line="102"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_base_volume"
              c:identifier="gvc_mixer_stream_get_base_volume">
        <source-position filename="gvc-mixer-stream.h" line="89"/>
        <return-value transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_can_decibel"
              c:identifier="gvc_mixer_stream_get_can_decibel"
              glib:get-property="can-decibel">
        <source-position filename="gvc-mixer-stream.h" line="92"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_card_index"
              c:identifier="gvc_mixer_stream_get_card_index"
              glib:get-property="card-index">
        <source-position filename="gvc-mixer-stream.h" line="105"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_channel_map"
              c:identifier="gvc_mixer_stream_get_channel_map"
              glib:get-property="channel-map">
        <source-position filename="gvc-mixer-stream.h" line="80"/>
        <return-value transfer-ownership="none">
          <type name="ChannelMap" c:type="const GvcChannelMap*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_decibel"
              c:identifier="gvc_mixer_stream_get_decibel"
              glib:get-property="decibel">
        <source-position filename="gvc-mixer-stream.h" line="87"/>
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="gdouble"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="gvc_mixer_stream_get_description"
              glib:get-property="description">
        <source-position filename="gvc-mixer-stream.h" line="101"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_form_factor"
              c:identifier="gvc_mixer_stream_get_form_factor"
              glib:get-property="form-factor">
        <source-position filename="gvc-mixer-stream.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_gicon" c:identifier="gvc_mixer_stream_get_gicon">
        <source-position filename="gvc-mixer-stream.h" line="100"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="gvc-mixer-stream.c"
               line="438">a new #GIcon</doc>
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gvc-mixer-stream.c"
                 line="436">a #GvcMixerStream</doc>
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_name"
              c:identifier="gvc_mixer_stream_get_icon_name"
              glib:get-property="icon-name">
        <source-position filename="gvc-mixer-stream.h" line="97"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id"
              c:identifier="gvc_mixer_stream_get_id"
              glib:get-property="id">
        <source-position filename="gvc-mixer-stream.h" line="79"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_index"
              c:identifier="gvc_mixer_stream_get_index"
              glib:get-property="index">
        <source-position filename="gvc-mixer-stream.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_is_muted"
              c:identifier="gvc_mixer_stream_get_is_muted"
              glib:get-property="is-muted">
        <source-position filename="gvc-mixer-stream.h" line="91"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name"
              c:identifier="gvc_mixer_stream_get_name"
              glib:get-property="name">
        <source-position filename="gvc-mixer-stream.h" line="96"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_port"
              c:identifier="gvc_mixer_stream_get_port"
              glib:get-property="port">
        <source-position filename="gvc-mixer-stream.h" line="81"/>
        <return-value transfer-ownership="none">
          <type name="MixerStreamPort" c:type="const GvcMixerStreamPort*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ports" c:identifier="gvc_mixer_stream_get_ports">
        <source-position filename="gvc-mixer-stream.h" line="82"/>
        <return-value transfer-ownership="none">
          <type name="GLib.List" c:type="const GList*">
            <type name="MixerStreamPort"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_state"
              c:identifier="gvc_mixer_stream_get_state"
              glib:get-property="state">
        <source-position filename="gvc-mixer-stream.h" line="106"/>
        <return-value transfer-ownership="none">
          <type name="MixerStreamState" c:type="GvcMixerStreamState"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_sysfs_path"
              c:identifier="gvc_mixer_stream_get_sysfs_path"
              glib:get-property="sysfs-path">
        <source-position filename="gvc-mixer-stream.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_volume"
              c:identifier="gvc_mixer_stream_get_volume"
              glib:get-property="volume">
        <source-position filename="gvc-mixer-stream.h" line="86"/>
        <return-value transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_event_stream"
              c:identifier="gvc_mixer_stream_is_event_stream">
        <source-position filename="gvc-mixer-stream.h" line="103"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_running" c:identifier="gvc_mixer_stream_is_running">
        <source-position filename="gvc-mixer-stream.h" line="95"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_virtual" c:identifier="gvc_mixer_stream_is_virtual">
        <source-position filename="gvc-mixer-stream.h" line="104"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="push_volume" c:identifier="gvc_mixer_stream_push_volume">
        <source-position filename="gvc-mixer-stream.h" line="88"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_application_id"
              c:identifier="gvc_mixer_stream_set_application_id"
              glib:set-property="application-id">
        <source-position filename="gvc-mixer-stream.h" line="131"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="application_id" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_base_volume"
              c:identifier="gvc_mixer_stream_set_base_volume">
        <source-position filename="gvc-mixer-stream.h" line="133"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="base_volume" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_can_decibel"
              c:identifier="gvc_mixer_stream_set_can_decibel"
              glib:set-property="can-decibel">
        <source-position filename="gvc-mixer-stream.h" line="115"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="can_decibel" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_card_index"
              c:identifier="gvc_mixer_stream_set_card_index"
              glib:set-property="card-index">
        <source-position filename="gvc-mixer-stream.h" line="139"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="card_index" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_decibel"
              c:identifier="gvc_mixer_stream_set_decibel"
              glib:set-property="decibel">
        <source-position filename="gvc-mixer-stream.h" line="111"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="db" transfer-ownership="none">
            <type name="gdouble" c:type="gdouble"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_description"
              c:identifier="gvc_mixer_stream_set_description"
              glib:set-property="description">
        <source-position filename="gvc-mixer-stream.h" line="119"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="description" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_form_factor"
              c:identifier="gvc_mixer_stream_set_form_factor"
              glib:set-property="form-factor">
        <source-position filename="gvc-mixer-stream.h" line="123"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="form_factor" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_icon_name"
              c:identifier="gvc_mixer_stream_set_icon_name"
              glib:set-property="icon-name">
        <source-position filename="gvc-mixer-stream.h" line="121"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_is_event_stream"
              c:identifier="gvc_mixer_stream_set_is_event_stream"
              glib:set-property="is-event-stream">
        <source-position filename="gvc-mixer-stream.h" line="127"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="is_event_stream" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_is_muted"
              c:identifier="gvc_mixer_stream_set_is_muted"
              glib:set-property="is-muted">
        <source-position filename="gvc-mixer-stream.h" line="113"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="is_muted" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_is_virtual"
              c:identifier="gvc_mixer_stream_set_is_virtual"
              glib:set-property="is-virtual">
        <source-position filename="gvc-mixer-stream.h" line="129"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="is_event_stream" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_name"
              c:identifier="gvc_mixer_stream_set_name"
              glib:set-property="name">
        <source-position filename="gvc-mixer-stream.h" line="117"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_port"
              c:identifier="gvc_mixer_stream_set_port"
              glib:set-property="port">
        <source-position filename="gvc-mixer-stream.h" line="135"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="port" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_ports" c:identifier="gvc_mixer_stream_set_ports">
        <source-position filename="gvc-mixer-stream.h" line="137"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="ports" transfer-ownership="full">
            <type name="GLib.List" c:type="GList*">
              <type name="MixerStreamPort"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_state"
              c:identifier="gvc_mixer_stream_set_state"
              glib:set-property="state">
        <source-position filename="gvc-mixer-stream.h" line="141"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="state" transfer-ownership="none">
            <type name="MixerStreamState" c:type="GvcMixerStreamState"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_sysfs_path"
              c:identifier="gvc_mixer_stream_set_sysfs_path"
              glib:set-property="sysfs-path">
        <source-position filename="gvc-mixer-stream.h" line="125"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="sysfs_path" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_volume"
              c:identifier="gvc_mixer_stream_set_volume"
              glib:set-property="volume">
        <source-position filename="gvc-mixer-stream.h" line="109"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="stream" transfer-ownership="none">
            <type name="MixerStream" c:type="GvcMixerStream*"/>
          </instance-parameter>
          <parameter name="volume" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <property name="application-id"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_application_id"
                getter="get_application_id"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="can-decibel"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_can_decibel"
                getter="get_can_decibel"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="card-index"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_card_index"
                getter="get_card_index"
                default-value="4294967295">
        <type name="glong" c:type="glong"/>
      </property>
      <property name="channel-map"
                writable="1"
                construct="1"
                transfer-ownership="none"
                getter="get_channel_map">
        <type name="ChannelMap"/>
      </property>
      <property name="decibel"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_decibel"
                getter="get_decibel"
                default-value="0.000000">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="description"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_description"
                getter="get_description"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="form-factor"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_form_factor"
                getter="get_form_factor"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="icon-name"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_icon_name"
                getter="get_icon_name"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="id"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_id"
                default-value="0">
        <type name="gulong" c:type="gulong"/>
      </property>
      <property name="index"
                writable="1"
                construct-only="1"
                transfer-ownership="none"
                getter="get_index"
                default-value="0">
        <type name="gulong" c:type="gulong"/>
      </property>
      <property name="is-event-stream"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_is_event_stream"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="is-muted"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_is_muted"
                getter="get_is_muted"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="is-virtual"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_is_virtual"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="name"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_name"
                getter="get_name"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="pa-context"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="port"
                writable="1"
                transfer-ownership="none"
                setter="set_port"
                getter="get_port"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="state"
                writable="1"
                transfer-ownership="none"
                setter="set_state"
                getter="get_state"
                default-value="GVC_STREAM_STATE_INVALID">
        <type name="MixerStreamState"/>
      </property>
      <property name="sysfs-path"
                writable="1"
                construct="1"
                transfer-ownership="none"
                setter="set_sysfs_path"
                getter="get_sysfs_path"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="volume"
                writable="1"
                transfer-ownership="none"
                setter="set_volume"
                getter="get_volume"
                default-value="0">
        <type name="gulong" c:type="gulong"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="MixerStreamPrivate" c:type="GvcMixerStreamPrivate*"/>
      </field>
    </class>
    <record name="MixerStreamClass"
            c:type="GvcMixerStreamClass"
            glib:is-gtype-struct-for="MixerStream">
      <source-position filename="gvc-mixer-stream.h" line="57"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="push_volume">
        <callback name="push_volume">
          <source-position filename="gvc-mixer-stream.h" line="51"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="stream" transfer-ownership="none">
              <type name="MixerStream" c:type="GvcMixerStream*"/>
            </parameter>
            <parameter name="operation"
                       transfer-ownership="none"
                       nullable="1"
                       allow-none="1">
              <type name="gpointer" c:type="gpointer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="change_is_muted">
        <callback name="change_is_muted">
          <source-position filename="gvc-mixer-stream.h" line="53"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="stream" transfer-ownership="none">
              <type name="MixerStream" c:type="GvcMixerStream*"/>
            </parameter>
            <parameter name="is_muted" transfer-ownership="none">
              <type name="gboolean" c:type="gboolean"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="change_port">
        <callback name="change_port">
          <source-position filename="gvc-mixer-stream.h" line="55"/>
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="stream" transfer-ownership="none">
              <type name="MixerStream" c:type="GvcMixerStream*"/>
            </parameter>
            <parameter name="port" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="MixerStreamPort"
            c:type="GvcMixerStreamPort"
            glib:type-name="GvcMixerStreamPort"
            glib:get-type="gvc_mixer_stream_port_get_type"
            c:symbol-prefix="mixer_stream_port">
      <source-position filename="gvc-mixer-stream.h" line="65"/>
      <field name="port" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="human_port" writable="1">
        <type name="utf8" c:type="char*"/>
      </field>
      <field name="priority" writable="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="available" writable="1">
        <type name="gboolean" c:type="gboolean"/>
      </field>
    </record>
    <record name="MixerStreamPrivate"
            c:type="GvcMixerStreamPrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gvc-mixer-stream.h" line="38"/>
    </record>
    <enumeration name="MixerStreamState"
                 glib:type-name="GvcMixerStreamState"
                 glib:get-type="gvc_mixer_stream_state_get_type"
                 c:type="GvcMixerStreamState">
      <member name="invalid"
              value="0"
              c:identifier="GVC_STREAM_STATE_INVALID"
              glib:nick="invalid"
              glib:name="GVC_STREAM_STATE_INVALID">
      </member>
      <member name="running"
              value="1"
              c:identifier="GVC_STREAM_STATE_RUNNING"
              glib:nick="running"
              glib:name="GVC_STREAM_STATE_RUNNING">
      </member>
      <member name="idle"
              value="2"
              c:identifier="GVC_STREAM_STATE_IDLE"
              glib:nick="idle"
              glib:name="GVC_STREAM_STATE_IDLE">
      </member>
      <member name="suspended"
              value="3"
              c:identifier="GVC_STREAM_STATE_SUSPENDED"
              glib:nick="suspended"
              glib:name="GVC_STREAM_STATE_SUSPENDED">
      </member>
    </enumeration>
    <class name="MixerUIDevice"
           c:symbol-prefix="mixer_ui_device"
           c:type="GvcMixerUIDevice"
           parent="GObject.Object"
           glib:type-name="GvcMixerUIDevice"
           glib:get-type="gvc_mixer_ui_device_get_type"
           glib:type-struct="MixerUIDeviceClass">
      <source-position filename="gvc-mixer-ui-device.h" line="41"/>
      <method name="get_active_profile"
              c:identifier="gvc_mixer_ui_device_get_active_profile">
        <source-position filename="gvc-mixer-ui-device.h" line="67"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_best_profile"
              c:identifier="gvc_mixer_ui_device_get_best_profile">
        <source-position filename="gvc-mixer-ui-device.h" line="64"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="gvc-mixer-ui-device.c"
               line="468">a profile name, valid as long as the UI device profiles are.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </instance-parameter>
          <parameter name="selected"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="gvc-mixer-ui-device.c"
                 line="465">The selected profile or its canonical name or %NULL for any profile</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="current" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gvc-mixer-ui-device.c"
                 line="466">The currently selected profile</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_description"
              c:identifier="gvc_mixer_ui_device_get_description"
              glib:get-property="description">
        <source-position filename="gvc-mixer-ui-device.h" line="59"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_gicon" c:identifier="gvc_mixer_ui_device_get_gicon">
        <source-position filename="gvc-mixer-ui-device.h" line="61"/>
        <return-value transfer-ownership="full">
          <type name="Gio.Icon" c:type="GIcon*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_icon_name"
              c:identifier="gvc_mixer_ui_device_get_icon_name"
              glib:get-property="icon-name">
        <source-position filename="gvc-mixer-ui-device.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="gvc_mixer_ui_device_get_id">
        <source-position filename="gvc-mixer-ui-device.h" line="57"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_matching_profile"
              c:identifier="gvc_mixer_ui_device_get_matching_profile">
        <source-position filename="gvc-mixer-ui-device.h" line="68"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </instance-parameter>
          <parameter name="profile" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_origin"
              c:identifier="gvc_mixer_ui_device_get_origin"
              glib:get-property="origin">
        <source-position filename="gvc-mixer-ui-device.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_port" c:identifier="gvc_mixer_ui_device_get_port">
        <source-position filename="gvc-mixer-ui-device.h" line="63"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_profiles"
              c:identifier="gvc_mixer_ui_device_get_profiles">
        <source-position filename="gvc-mixer-ui-device.h" line="72"/>
        <return-value transfer-ownership="none">
          <type name="GLib.List" c:type="GList*">
            <type name="MixerCardProfile"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_stream_id"
              c:identifier="gvc_mixer_ui_device_get_stream_id"
              glib:get-property="stream-id">
        <source-position filename="gvc-mixer-ui-device.h" line="58"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_supported_profiles"
              c:identifier="gvc_mixer_ui_device_get_supported_profiles">
        <source-position filename="gvc-mixer-ui-device.h" line="73"/>
        <return-value transfer-ownership="none">
          <type name="GLib.List" c:type="GList*">
            <type name="MixerCardProfile"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_top_priority_profile"
              c:identifier="gvc_mixer_ui_device_get_top_priority_profile">
        <source-position filename="gvc-mixer-ui-device.h" line="71"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_user_preferred_profile"
              c:identifier="gvc_mixer_ui_device_get_user_preferred_profile">
        <source-position filename="gvc-mixer-ui-device.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="has_ports" c:identifier="gvc_mixer_ui_device_has_ports">
        <source-position filename="gvc-mixer-ui-device.h" line="80"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="invalidate_stream"
              c:identifier="gvc_mixer_ui_device_invalidate_stream">
        <source-position filename="gvc-mixer-ui-device.h" line="79"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_output" c:identifier="gvc_mixer_ui_device_is_output">
        <source-position filename="gvc-mixer-ui-device.h" line="81"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_profiles"
              c:identifier="gvc_mixer_ui_device_set_profiles">
        <doc xml:space="preserve"
             filename="gvc-mixer-ui-device.c"
             line="407">Assigns value to
 - device-&gt;priv-&gt;profiles (profiles to be added to combobox)
 - device-&gt;priv-&gt;supported_profiles (all profiles of this port)
 - device-&gt;priv-&gt;disable_profile_swapping (whether to show the combobox)

This method attempts to reduce the list of profiles visible to the user by figuring out
from the context of that device (whether it's an input or an output) what profiles
actually provide an alternative.

It does this by the following.
 - It ignores off profiles.
 - It takes the canonical name of the profile. That name is what you get when you
   ignore the other direction.
 - In the first iteration, it only adds the names of canonical profiles - i e
   when the other side is turned off.
 - Normally the first iteration covers all cases, but sometimes (e g bluetooth)
   it doesn't, so add other profiles whose canonical name isn't already added
   in a second iteration.</doc>
        <source-position filename="gvc-mixer-ui-device.h" line="75"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </instance-parameter>
          <parameter name="in_profiles" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="gvc-mixer-ui-device.c"
                 line="409">a list of GvcMixerCardProfile</doc>
            <type name="GLib.List" c:type="const GList*">
              <type name="MixerCardProfile"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="set_user_preferred_profile"
              c:identifier="gvc_mixer_ui_device_set_user_preferred_profile">
        <source-position filename="gvc-mixer-ui-device.h" line="77"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </instance-parameter>
          <parameter name="profile" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="should_profiles_be_hidden"
              c:identifier="gvc_mixer_ui_device_should_profiles_be_hidden">
        <source-position filename="gvc-mixer-ui-device.h" line="74"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="device" transfer-ownership="none">
            <type name="MixerUIDevice" c:type="GvcMixerUIDevice*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="card" writable="1" transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="description"
                writable="1"
                transfer-ownership="none"
                getter="get_description"
                default-value="no-name-set">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="icon-name"
                writable="1"
                construct="1"
                transfer-ownership="none"
                getter="get_icon_name"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="origin"
                writable="1"
                transfer-ownership="none"
                getter="get_origin"
                default-value="no-name-set">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="port-available"
                writable="1"
                transfer-ownership="none"
                default-value="FALSE">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="port-name"
                writable="1"
                transfer-ownership="none"
                default-value="NULL">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="stream-id"
                writable="1"
                transfer-ownership="none"
                getter="get_stream_id"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="type"
                writable="1"
                transfer-ownership="none"
                default-value="0">
        <type name="guint" c:type="guint"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="MixerUIDevicePrivate" c:type="GvcMixerUIDevicePrivate*"/>
      </field>
    </class>
    <record name="MixerUIDeviceClass"
            c:type="GvcMixerUIDeviceClass"
            glib:is-gtype-struct-for="MixerUIDevice">
      <source-position filename="gvc-mixer-ui-device.h" line="41"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="MixerUIDeviceDirection"
                 glib:type-name="GvcMixerUIDeviceDirection"
                 glib:get-type="gvc_mixer_ui_device_direction_get_type"
                 c:type="GvcMixerUIDeviceDirection">
      <member name="input"
              value="0"
              c:identifier="UIDeviceInput"
              glib:nick="input"
              glib:name="UIDeviceInput">
      </member>
      <member name="output"
              value="1"
              c:identifier="UIDeviceOutput"
              glib:nick="output"
              glib:name="UIDeviceOutput">
      </member>
    </enumeration>
    <record name="MixerUIDevicePrivate"
            c:type="GvcMixerUIDevicePrivate"
            disguised="1"
            opaque="1">
      <source-position filename="gvc-mixer-ui-device.h" line="36"/>
    </record>
    <function-macro name="channel_map_has_lfe"
                    c:identifier="gvc_channel_map_has_lfe"
                    introspectable="0">
      <source-position filename="gvc-channel-map.h" line="67"/>
      <parameters>
        <parameter name="x">
        </parameter>
      </parameters>
    </function-macro>
  </namespace>
</repository>
