<?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:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <namespace name="Playerctl"
             version="1.0"
             shared-library="libplayerctl-1.0.so.0"
             c:identifier-prefixes="Playerctl"
             c:symbol-prefixes="playerctl">
    <class name="Player"
           c:symbol-prefix="player"
           c:type="PlayerctlPlayer"
           parent="GObject.Object"
           glib:type-name="PlayerctlPlayer"
           glib:get-type="playerctl_player_get_type"
           glib:type-struct="PlayerClass">
      <constructor name="new" c:identifier="playerctl_player_new" throws="1">
        <doc xml:space="preserve">Allocates a new #PlayerctlPlayer and tries to connect to the bus name
"org.mpris.MediaPlayer2.[name]"</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #PlayerctlPlayer connected to the bus name or
NULL if an error occurred</doc>
          <type name="Player" c:type="PlayerctlPlayer*"/>
        </return-value>
        <parameters>
          <parameter name="name"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">The name to use to find the bus name of the player</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_album"
              c:identifier="playerctl_player_get_album"
              throws="1">
        <doc xml:space="preserve">Gets the album from the metadata of the current track, or empty string if
no track is playing.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The album from the metadata of the current track</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #PlayerctlPlayer</doc>
            <type name="Player" c:type="PlayerctlPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_artist"
              c:identifier="playerctl_player_get_artist"
              throws="1">
        <doc xml:space="preserve">Gets the artist from the metadata of the current track, or empty string if
no track is playing.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The artist from the metadata of the current track</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #PlayerctlPlayer</doc>
            <type name="Player" c:type="PlayerctlPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title"
              c:identifier="playerctl_player_get_title"
              throws="1">
        <doc xml:space="preserve">Gets the title from the metadata of the current track, or empty string if
no track is playing.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The title from the metadata of the current track</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #PlayerctlPlayer</doc>
            <type name="Player" c:type="PlayerctlPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="next" c:identifier="playerctl_player_next" throws="1">
        <doc xml:space="preserve">Command the player to go to the next track</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #PlayerctlPlayer for chaining</doc>
          <type name="Player" c:type="PlayerctlPlayer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #PlayerctlPlayer</doc>
            <type name="Player" c:type="PlayerctlPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="on" c:identifier="playerctl_player_on" throws="1">
        <doc xml:space="preserve">A convenience function for bindings to subscribe an event with a callback</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #PlayerctlPlayer for chaining</doc>
          <type name="Player" c:type="PlayerctlPlayer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an #PlayerctlPlayer</doc>
            <type name="Player" c:type="PlayerctlPlayer*"/>
          </instance-parameter>
          <parameter name="event" transfer-ownership="none">
            <doc xml:space="preserve">the event to subscribe to</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="callback" transfer-ownership="none">
            <doc xml:space="preserve">the callback to run on the event</doc>
            <type name="GObject.Closure" c:type="GClosure*"/>
          </parameter>
        </parameters>
      </method>
      <method name="pause" c:identifier="playerctl_player_pause" throws="1">
        <doc xml:space="preserve">Command the player to pause</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #PlayerctlPlayer for chaining</doc>
          <type name="Player" c:type="PlayerctlPlayer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #PlayerctlPlayer
@err (allow-none): the location of a GError or NULL</doc>
            <type name="Player" c:type="PlayerctlPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="play" c:identifier="playerctl_player_play" throws="1">
        <doc xml:space="preserve">Command the player to play</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #PlayerctlPlayer for chaining</doc>
          <type name="Player" c:type="PlayerctlPlayer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #PlayerctlPlayer
@err (allow-none): the location of a GError or NULL</doc>
            <type name="Player" c:type="PlayerctlPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="play_pause"
              c:identifier="playerctl_player_play_pause"
              throws="1">
        <doc xml:space="preserve">Command the player to play if it is playing or pause if it is paused</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #PlayerctlPlayer for chaining</doc>
          <type name="Player" c:type="PlayerctlPlayer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #PlayerctlPlayer
@err (allow-none): the location of a GError or NULL</doc>
            <type name="Player" c:type="PlayerctlPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="previous"
              c:identifier="playerctl_player_previous"
              throws="1">
        <doc xml:space="preserve">Command the player to go to the previous track</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #PlayerctlPlayer for chaining</doc>
          <type name="Player" c:type="PlayerctlPlayer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #PlayerctlPlayer</doc>
            <type name="Player" c:type="PlayerctlPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="print_metadata_prop"
              c:identifier="playerctl_player_print_metadata_prop"
              throws="1">
        <doc xml:space="preserve">Gets the artist from the metadata of the current track, or empty string if
no track is playing.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">The artist from the metadata of the current track</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #PlayerctlPlayer</doc>
            <type name="Player" c:type="PlayerctlPlayer*"/>
          </instance-parameter>
          <parameter name="property"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the property from the metadata to print</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="seek" c:identifier="playerctl_player_seek" throws="1">
        <doc xml:space="preserve">Command the player to seek</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #PlayerctlPlayer for chaining</doc>
          <type name="Player" c:type="PlayerctlPlayer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #PlayerctlPlayer
@err (allow-none): the location of a GError or NULL</doc>
            <type name="Player" c:type="PlayerctlPlayer*"/>
          </instance-parameter>
          <parameter name="offset" transfer-ownership="none">
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_position"
              c:identifier="playerctl_player_set_position"
              throws="1">
        <doc xml:space="preserve">Sets the position of the current track to the given position in microseconds.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #PlayerctlPlayer</doc>
            <type name="Player" c:type="PlayerctlPlayer*"/>
          </instance-parameter>
          <parameter name="position" transfer-ownership="none">
            <type name="gint64" c:type="gint64"/>
          </parameter>
        </parameters>
      </method>
      <method name="stop" c:identifier="playerctl_player_stop" throws="1">
        <doc xml:space="preserve">Command the player to stop</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #PlayerctlPlayer for chaining</doc>
          <type name="Player" c:type="PlayerctlPlayer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a #PlayerctlPlayer
@err (allow-none): the location of a GError or NULL</doc>
            <type name="Player" c:type="PlayerctlPlayer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="metadata" transfer-ownership="none">
        <type name="GLib.Variant"/>
      </property>
      <property name="player-name"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="position" transfer-ownership="none">
        <type name="gint64" c:type="gint64"/>
      </property>
      <property name="status" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="volume" writable="1" transfer-ownership="none">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <field name="parent_instance">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="PlayerPrivate" c:type="PlayerctlPlayerPrivate*"/>
      </field>
      <glib:signal name="exit" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="metadata" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="GLib.Variant"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="pause" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="play" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="stop" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="PlayerClass"
            c:type="PlayerctlPlayerClass"
            glib:is-gtype-struct-for="Player">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="PlayerPrivate" c:type="PlayerctlPlayerPrivate" disguised="1">
    </record>
  </namespace>
</repository>
