<?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="GLib" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="Gtk" version="3.0"/>
  <include name="TotemPlParser" version="1.0"/>
  <package name="totem"/>
  <c:include name="totem.h"/>
  <namespace name="Totem"
             version="1.0"
             shared-library="libtotem.so.0"
             c:identifier-prefixes="Totem"
             c:symbol-prefixes="totem">
    <constant name="GSETTINGS_SCHEMA"
              value="org.gnome.totem"
              c:type="TOTEM_GSETTINGS_SCHEMA">
      <doc xml:space="preserve">The GSettings schema under which all Totem settings are stored.</doc>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="Object"
           c:symbol-prefix="object"
           c:type="TotemObject"
           parent="Gtk.Application"
           glib:type-name="TotemObject"
           glib:get-type="totem_object_get_type"
           glib:type-struct="ObjectClass">
      <doc xml:space="preserve">All the fields in the #TotemObject structure are private and should never be accessed directly.</doc>
      <implements name="Gio.ActionGroup"/>
      <implements name="Gio.ActionMap"/>
      <function name="get_supported_content_types"
                c:identifier="totem_object_get_supported_content_types"
                version="3.1.5">
        <doc xml:space="preserve">Get the full list of file content types which Totem supports playing.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a %NULL-terminated array of the content types Totem supports</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
      </function>
      <function name="get_supported_uri_schemes"
                c:identifier="totem_object_get_supported_uri_schemes"
                version="3.1.5">
        <doc xml:space="preserve">Get the full list of URI schemes which Totem supports accessing.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a %NULL-terminated array of the URI schemes Totem supports</doc>
          <array c:type="gchar**">
            <type name="utf8"/>
          </array>
        </return-value>
      </function>
      <virtual-method name="file_closed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="file_has_played">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
          <parameter name="mrl" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="file_opened">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
          <parameter name="mrl" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_text_subtitle">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
          <parameter name="mrl" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_user_agent">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
          <parameter name="mrl" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="metadata_updated">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
          <parameter name="artist" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="album" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="track_num" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_to_playlist"
              c:identifier="totem_object_add_to_playlist">
        <doc xml:space="preserve">Add @uri to the playlist and play it immediately.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">the URI to add to the playlist</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="display_name" transfer-ownership="none">
            <doc xml:space="preserve">the display name of the URI</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="play" transfer-ownership="none">
            <doc xml:space="preserve">whether to play the added item</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_to_view" c:identifier="totem_object_add_to_view">
        <doc xml:space="preserve">Adds a local media file to the main view.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">a #GFile representing a media</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:space="preserve">a title for the media, or %NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="clear_playlist" c:identifier="totem_object_clear_playlist">
        <doc xml:space="preserve">Empties the current playlist.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="empty_menu_section"
              c:identifier="totem_object_empty_menu_section">
        <doc xml:space="preserve">Empty the GMenu section pointed to by @id, and remove any
related actions. Note that menu items with specific target
will not have the associated action removed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the ID for the menu section to empty</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="exit" c:identifier="totem_object_exit">
        <doc xml:space="preserve">Closes Totem.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current_mrl"
              c:identifier="totem_object_get_current_mrl">
        <doc xml:space="preserve">Get the MRL of the current stream, or %NULL if nothing's playing.
Free with g_free().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly-allocated string containing the MRL of the current stream</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current_time"
              c:identifier="totem_object_get_current_time">
        <doc xml:space="preserve">Gets the current position's time in the stream as a gint64.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the current position in the stream</doc>
          <type name="gint64" c:type="gint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_main_window"
              c:identifier="totem_object_get_main_window">
        <doc xml:space="preserve">Gets Totem's main window and increments its reference count.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">Totem's main window</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_menu_section"
              c:identifier="totem_object_get_menu_section">
        <doc xml:space="preserve">Get the #GMenu of the given @id from the main Totem #GtkBuilder file.</doc>
        <return-value transfer-ownership="none" nullable="1">
          <doc xml:space="preserve">a #GMenu or %NULL on failure</doc>
          <type name="Gio.Menu" c:type="GMenu*"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve">the ID for the menu section to look up</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_playlist_length"
              c:identifier="totem_object_get_playlist_length">
        <doc xml:space="preserve">Returns the length of the current playlist.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the playlist length</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_playlist_pos"
              c:identifier="totem_object_get_playlist_pos">
        <doc xml:space="preserve">Returns the &lt;code class="literal"&gt;0&lt;/code&gt;-based index of the current entry in the playlist. If
there is no current entry in the playlist, &lt;code class="literal"&gt;-1&lt;/code&gt; is returned.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the index of the current playlist entry, or &lt;code class="literal"&gt;-1&lt;/code&gt;</doc>
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rate" c:identifier="totem_object_get_rate">
        <doc xml:space="preserve">Gets the current playback rate, with `1.0` being the normal playback rate.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the volume level</doc>
          <type name="gfloat" c:type="float"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_short_title"
              c:identifier="totem_object_get_short_title">
        <doc xml:space="preserve">Gets the title of the current entry in the playlist.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the current entry's title, or %NULL; free with g_free()</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_title_at_playlist_pos"
              c:identifier="totem_object_get_title_at_playlist_pos">
        <doc xml:space="preserve">Gets the title of the playlist entry at @index.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the entry title at @index, or %NULL; free with g_free()</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
          <parameter name="playlist_index" transfer-ownership="none">
            <doc xml:space="preserve">the &lt;code class="literal"&gt;0&lt;/code&gt;-based entry index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_video_widget"
              c:identifier="totem_object_get_video_widget">
        <doc xml:space="preserve">Gets Totem's video widget and increments its reference count.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">Totem's video widget</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_volume" c:identifier="totem_object_get_volume">
        <doc xml:space="preserve">Gets the current volume level, as a value between &lt;code class="literal"&gt;0.0&lt;/code&gt; and &lt;code class="literal"&gt;1.0&lt;/code&gt;.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the volume level</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_fullscreen" c:identifier="totem_object_is_fullscreen">
        <doc xml:space="preserve">Returns %TRUE if Totem is fullscreened.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if Totem is fullscreened</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_paused" c:identifier="totem_object_is_paused">
        <doc xml:space="preserve">Returns %TRUE if playback is paused.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if playback is paused, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_playing" c:identifier="totem_object_is_playing">
        <doc xml:space="preserve">Returns %TRUE if Totem is playing a stream.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if Totem is playing a stream</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_seekable" c:identifier="totem_object_is_seekable">
        <doc xml:space="preserve">Returns %TRUE if the current stream is seekable.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the current stream is seekable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="next_angle" c:identifier="totem_object_next_angle">
        <doc xml:space="preserve">Switches to the next angle, if watching a DVD. If not watching a DVD, this is a
no-op.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="pause" c:identifier="totem_object_pause">
        <doc xml:space="preserve">Pauses the current stream. If Totem is already paused, it continues
to be paused.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="play" c:identifier="totem_object_play">
        <doc xml:space="preserve">Plays the current stream. If Totem is already playing, it continues
to play. If the stream cannot be played, and error dialog is displayed.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="play_pause" c:identifier="totem_object_play_pause">
        <doc xml:space="preserve">Gets the current MRL from the playlist and attempts to play it.
If the stream is already playing, playback is paused.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remote_command" c:identifier="totem_object_remote_command">
        <doc xml:space="preserve">Executes the specified @cmd on this instance of Totem. If @cmd
is an operation requiring an MRL, @url is required; it can be %NULL
otherwise.

If Totem's fullscreened and the operation is executed correctly,
the controls will appear as if the user had moved the mouse.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
          <parameter name="cmd" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemRemoteCommand</doc>
            <type name="RemoteCommand" c:type="TotemRemoteCommand"/>
          </parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:space="preserve">an MRL to play, or %NULL</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remote_get_setting"
              c:identifier="totem_object_remote_get_setting">
        <doc xml:space="preserve">Returns the value of @setting for this instance of Totem.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the setting is enabled, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemRemoteSetting</doc>
            <type name="RemoteSetting" c:type="TotemRemoteSetting"/>
          </parameter>
        </parameters>
      </method>
      <method name="remote_set_setting"
              c:identifier="totem_object_remote_set_setting">
        <doc xml:space="preserve">Sets @setting to @value on this instance of Totem.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemRemoteSetting</doc>
            <type name="RemoteSetting" c:type="TotemRemoteSetting"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve">the new value for the setting</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="seek_next" c:identifier="totem_object_seek_next">
        <doc xml:space="preserve">If a DVD is being played, goes to the next chapter. If a normal stream
is being played, plays the next entry in the playlist.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="seek_previous" c:identifier="totem_object_seek_previous">
        <doc xml:space="preserve">If a DVD is being played, goes to the previous chapter. If a normal stream
is being played, goes to the start of the stream if possible. If seeking is
not possible, plays the previous entry in the playlist.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="seek_relative" c:identifier="totem_object_seek_relative">
        <doc xml:space="preserve">Seeks to an @offset from the current position in the stream,
or displays an error dialog if that's not possible.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
          <parameter name="offset" transfer-ownership="none">
            <doc xml:space="preserve">the time offset to seek to</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="accurate" transfer-ownership="none">
            <doc xml:space="preserve">whether to use accurate seek, an accurate seek might be slower for some formats (see GStreamer docs)</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="seek_time" c:identifier="totem_object_seek_time">
        <doc xml:space="preserve">Seeks to an absolute time in the stream, or displays an
error dialog if that's not possible.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
          <parameter name="msec" transfer-ownership="none">
            <doc xml:space="preserve">the time to seek to</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="accurate" transfer-ownership="none">
            <doc xml:space="preserve">whether to use accurate seek, an accurate seek might be slower for some formats (see GStreamer docs)</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_current_subtitle"
              c:identifier="totem_object_set_current_subtitle">
        <doc xml:space="preserve">Add the @subtitle_uri subtitle file to the playlist, setting it as the subtitle for the current
playlist entry.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
          <parameter name="subtitle_uri" transfer-ownership="none">
            <doc xml:space="preserve">the URI of the subtitle file to add</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rate" c:identifier="totem_object_set_rate">
        <doc xml:space="preserve">Sets the playback rate, with `1.0` being the normal playback rate.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE on success, %FALSE on failure.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
          <parameter name="rate" transfer-ownership="none">
            <doc xml:space="preserve">the new absolute playback rate</doc>
            <type name="gfloat" c:type="float"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_volume" c:identifier="totem_object_set_volume">
        <doc xml:space="preserve">Sets the volume, with &lt;code class="literal"&gt;1.0&lt;/code&gt; being the maximum, and &lt;code class="literal"&gt;0.0&lt;/code&gt; being the minimum level.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
          <parameter name="volume" transfer-ownership="none">
            <doc xml:space="preserve">the new absolute volume value</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="show_error" c:identifier="totem_object_show_error">
        <doc xml:space="preserve">Displays a non-blocking error dialog with the
given @title and @reason.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:space="preserve">the error dialog title</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="reason" transfer-ownership="none">
            <doc xml:space="preserve">the error dialog text</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="stop" c:identifier="totem_object_stop">
        <doc xml:space="preserve">Stops the current stream.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="totem" transfer-ownership="none">
            <doc xml:space="preserve">a #TotemObject</doc>
            <type name="Object" c:type="TotemObject*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="current-content-type" transfer-ownership="none">
        <doc xml:space="preserve">The content-type of the current stream.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="current-display-name" transfer-ownership="none">
        <doc xml:space="preserve">The display name of the current stream.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="current-mrl" transfer-ownership="none">
        <doc xml:space="preserve">The MRL of the current stream.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="current-time" transfer-ownership="none">
        <doc xml:space="preserve">The player's position (time) in the current stream, in milliseconds.</doc>
        <type name="gint64" c:type="gint64"/>
      </property>
      <property name="fullscreen" transfer-ownership="none">
        <doc xml:space="preserve">If %TRUE, Totem is in fullscreen mode.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="playing" transfer-ownership="none">
        <doc xml:space="preserve">If %TRUE, Totem is playing an audio or video file.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="seekable" transfer-ownership="none">
        <doc xml:space="preserve">If %TRUE, the current stream is seekable.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="stream-length" transfer-ownership="none">
        <doc xml:space="preserve">The length of the current stream, in milliseconds.</doc>
        <type name="gint64" c:type="gint64"/>
      </property>
      <glib:signal name="file-closed" when="last">
        <doc xml:space="preserve">The #TotemObject::file-closed signal is emitted when Totem closes a stream.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="file-has-played" when="last">
        <doc xml:space="preserve">The #TotemObject::file-has-played signal is emitted when a new stream has started playing in Totem.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="mrl" transfer-ownership="none">
            <doc xml:space="preserve">the MRL of the opened stream</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="file-opened" when="last">
        <doc xml:space="preserve">The #TotemObject::file-opened signal is emitted when a new stream is opened by Totem.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="mrl" transfer-ownership="none">
            <doc xml:space="preserve">the MRL of the opened stream</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="get-text-subtitle" when="last">
        <doc xml:space="preserve">The #TotemObject::get-text-subtitle signal is emitted before opening a stream, so that plugins
have the opportunity to detect or download text subtitles for the stream if necessary.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">allocated string representing the URI of the subtitle to use for @mrl</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="mrl" transfer-ownership="none">
            <doc xml:space="preserve">the MRL of the opened stream</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="get-user-agent" when="last">
        <doc xml:space="preserve">The #TotemObject::get-user-agent signal is emitted before opening a stream, so that plugins
have the opportunity to return the user-agent to be set.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">allocated string representing the user-agent to use for @mrl</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="mrl" transfer-ownership="none">
            <doc xml:space="preserve">the MRL of the opened stream</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="metadata-updated" when="last">
        <doc xml:space="preserve">The #TotemObject::metadata-updated signal is emitted when the metadata of a stream is updated, typically
when it's being loaded.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="artist" transfer-ownership="none">
            <doc xml:space="preserve">the name of the artist, or %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:space="preserve">the stream title, or %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="album" transfer-ownership="none">
            <doc xml:space="preserve">the name of the stream's album, or %NULL</doc>
            <type name="utf8" c:type="gchar*"/>
          </parameter>
          <parameter name="track_number" transfer-ownership="none">
            <doc xml:space="preserve">the stream's track number</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ObjectClass"
            c:type="TotemObjectClass"
            glib:is-gtype-struct-for="Object">
      <field name="parent_class">
        <type name="Gtk.ApplicationClass" c:type="GtkApplicationClass"/>
      </field>
      <field name="file_opened">
        <callback name="file_opened">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="totem" transfer-ownership="none">
              <type name="Object" c:type="TotemObject*"/>
            </parameter>
            <parameter name="mrl" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="file_closed">
        <callback name="file_closed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="totem" transfer-ownership="none">
              <type name="Object" c:type="TotemObject*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="file_has_played">
        <callback name="file_has_played">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="totem" transfer-ownership="none">
              <type name="Object" c:type="TotemObject*"/>
            </parameter>
            <parameter name="mrl" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="metadata_updated">
        <callback name="metadata_updated">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="totem" transfer-ownership="none">
              <type name="Object" c:type="TotemObject*"/>
            </parameter>
            <parameter name="artist" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="title" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="album" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="track_num" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_user_agent">
        <callback name="get_user_agent">
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="char*"/>
          </return-value>
          <parameters>
            <parameter name="totem" transfer-ownership="none">
              <type name="Object" c:type="TotemObject*"/>
            </parameter>
            <parameter name="mrl" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_text_subtitle">
        <callback name="get_text_subtitle">
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="char*"/>
          </return-value>
          <parameters>
            <parameter name="totem" transfer-ownership="none">
              <type name="Object" c:type="TotemObject*"/>
            </parameter>
            <parameter name="mrl" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <enumeration name="RemoteCommand"
                 glib:type-name="TotemRemoteCommand"
                 glib:get-type="totem_remote_command_get_type"
                 c:type="TotemRemoteCommand">
      <doc xml:space="preserve">Represents a command which can be sent to a running Totem instance remotely.</doc>
      <member name="unknown"
              value="0"
              c:identifier="TOTEM_REMOTE_COMMAND_UNKNOWN"
              glib:nick="unknown">
        <doc xml:space="preserve">unknown command</doc>
      </member>
      <member name="play"
              value="1"
              c:identifier="TOTEM_REMOTE_COMMAND_PLAY"
              glib:nick="play">
        <doc xml:space="preserve">play the current stream</doc>
      </member>
      <member name="pause"
              value="2"
              c:identifier="TOTEM_REMOTE_COMMAND_PAUSE"
              glib:nick="pause">
        <doc xml:space="preserve">pause the current stream</doc>
      </member>
      <member name="stop"
              value="3"
              c:identifier="TOTEM_REMOTE_COMMAND_STOP"
              glib:nick="stop">
        <doc xml:space="preserve">stop playing the current stream</doc>
      </member>
      <member name="play_pause"
              value="4"
              c:identifier="TOTEM_REMOTE_COMMAND_PLAYPAUSE"
              glib:nick="play-pause">
        <doc xml:space="preserve">toggle play/pause on the current stream</doc>
      </member>
      <member name="next"
              value="5"
              c:identifier="TOTEM_REMOTE_COMMAND_NEXT"
              glib:nick="next">
        <doc xml:space="preserve">play the next playlist item</doc>
      </member>
      <member name="previous"
              value="6"
              c:identifier="TOTEM_REMOTE_COMMAND_PREVIOUS"
              glib:nick="previous">
        <doc xml:space="preserve">play the previous playlist item</doc>
      </member>
      <member name="seek_forward"
              value="7"
              c:identifier="TOTEM_REMOTE_COMMAND_SEEK_FORWARD"
              glib:nick="seek-forward">
        <doc xml:space="preserve">seek forwards in the current stream</doc>
      </member>
      <member name="seek_backward"
              value="8"
              c:identifier="TOTEM_REMOTE_COMMAND_SEEK_BACKWARD"
              glib:nick="seek-backward">
        <doc xml:space="preserve">seek backwards in the current stream</doc>
      </member>
      <member name="volume_up"
              value="9"
              c:identifier="TOTEM_REMOTE_COMMAND_VOLUME_UP"
              glib:nick="volume-up">
        <doc xml:space="preserve">increase the volume</doc>
      </member>
      <member name="volume_down"
              value="10"
              c:identifier="TOTEM_REMOTE_COMMAND_VOLUME_DOWN"
              glib:nick="volume-down">
        <doc xml:space="preserve">decrease the volume</doc>
      </member>
      <member name="fullscreen"
              value="11"
              c:identifier="TOTEM_REMOTE_COMMAND_FULLSCREEN"
              glib:nick="fullscreen">
        <doc xml:space="preserve">toggle fullscreen mode</doc>
      </member>
      <member name="quit"
              value="12"
              c:identifier="TOTEM_REMOTE_COMMAND_QUIT"
              glib:nick="quit">
        <doc xml:space="preserve">quit the instance of Totem</doc>
      </member>
      <member name="enqueue"
              value="13"
              c:identifier="TOTEM_REMOTE_COMMAND_ENQUEUE"
              glib:nick="enqueue">
        <doc xml:space="preserve">enqueue a new playlist item</doc>
      </member>
      <member name="replace"
              value="14"
              c:identifier="TOTEM_REMOTE_COMMAND_REPLACE"
              glib:nick="replace">
        <doc xml:space="preserve">replace an item in the playlist</doc>
      </member>
      <member name="show"
              value="15"
              c:identifier="TOTEM_REMOTE_COMMAND_SHOW"
              glib:nick="show">
        <doc xml:space="preserve">show the Totem instance</doc>
      </member>
      <member name="up"
              value="16"
              c:identifier="TOTEM_REMOTE_COMMAND_UP"
              glib:nick="up">
        <doc xml:space="preserve">go up (DVD controls)</doc>
      </member>
      <member name="down"
              value="17"
              c:identifier="TOTEM_REMOTE_COMMAND_DOWN"
              glib:nick="down">
        <doc xml:space="preserve">go down (DVD controls)</doc>
      </member>
      <member name="left"
              value="18"
              c:identifier="TOTEM_REMOTE_COMMAND_LEFT"
              glib:nick="left">
        <doc xml:space="preserve">go left (DVD controls)</doc>
      </member>
      <member name="right"
              value="19"
              c:identifier="TOTEM_REMOTE_COMMAND_RIGHT"
              glib:nick="right">
        <doc xml:space="preserve">go right (DVD controls)</doc>
      </member>
      <member name="select"
              value="20"
              c:identifier="TOTEM_REMOTE_COMMAND_SELECT"
              glib:nick="select">
        <doc xml:space="preserve">select the current item (DVD controls)</doc>
      </member>
      <member name="dvd_menu"
              value="21"
              c:identifier="TOTEM_REMOTE_COMMAND_DVD_MENU"
              glib:nick="dvd-menu">
        <doc xml:space="preserve">go to the DVD menu</doc>
      </member>
      <member name="zoom_up"
              value="22"
              c:identifier="TOTEM_REMOTE_COMMAND_ZOOM_UP"
              glib:nick="zoom-up">
        <doc xml:space="preserve">increase the zoom level</doc>
      </member>
      <member name="zoom_down"
              value="23"
              c:identifier="TOTEM_REMOTE_COMMAND_ZOOM_DOWN"
              glib:nick="zoom-down">
        <doc xml:space="preserve">decrease the zoom level</doc>
      </member>
      <member name="eject"
              value="24"
              c:identifier="TOTEM_REMOTE_COMMAND_EJECT"
              glib:nick="eject">
        <doc xml:space="preserve">eject the current disc</doc>
      </member>
      <member name="play_dvd"
              value="25"
              c:identifier="TOTEM_REMOTE_COMMAND_PLAY_DVD"
              glib:nick="play-dvd">
        <doc xml:space="preserve">play a DVD in a drive</doc>
      </member>
      <member name="mute"
              value="26"
              c:identifier="TOTEM_REMOTE_COMMAND_MUTE"
              glib:nick="mute">
        <doc xml:space="preserve">toggle mute</doc>
      </member>
      <member name="toggle_aspect_ratio"
              value="27"
              c:identifier="TOTEM_REMOTE_COMMAND_TOGGLE_ASPECT"
              glib:nick="toggle-aspect-ratio">
        <doc xml:space="preserve">toggle the aspect ratio</doc>
      </member>
      <function name="quark" c:identifier="totem_remote_command_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <enumeration name="RemoteSetting"
                 glib:type-name="TotemRemoteSetting"
                 glib:get-type="totem_remote_setting_get_type"
                 c:type="TotemRemoteSetting">
      <doc xml:space="preserve">Represents a boolean setting or preference on a remote Totem instance.</doc>
      <member name="repeat"
              value="0"
              c:identifier="TOTEM_REMOTE_SETTING_REPEAT"
              glib:nick="repeat">
        <doc xml:space="preserve">whether repeat is enabled</doc>
      </member>
      <function name="quark" c:identifier="totem_remote_setting_quark">
        <return-value transfer-ownership="none">
          <type name="GLib.Quark" c:type="GQuark"/>
        </return-value>
      </function>
    </enumeration>
    <function name="get_plugin_paths"
              c:identifier="totem_get_plugin_paths"
              version="2.90.0">
      <doc xml:space="preserve">Return a %NULL-terminated array of paths to directories which can contain Totem plugins. This respects the GSettings disable_user_plugins setting.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a %NULL-terminated array of paths to plugin directories</doc>
        <array c:type="char**">
          <type name="utf8"/>
        </array>
      </return-value>
    </function>
    <function name="interface_create_header_button"
              c:identifier="totem_interface_create_header_button">
      <doc xml:space="preserve">Put the given @icon_name into @button, and pack @button into @header
according to @pack_type.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve">the button passed as input</doc>
        <type name="Gtk.Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="header" transfer-ownership="none">
          <doc xml:space="preserve">The header widget to put the button in</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="button" transfer-ownership="none">
          <doc xml:space="preserve">The button to use in the header</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </parameter>
        <parameter name="icon_name" transfer-ownership="none">
          <doc xml:space="preserve">The icon name for the button image</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="pack_type" transfer-ownership="none">
          <doc xml:space="preserve">A #GtkPackType to tell us where to include the button</doc>
          <type name="Gtk.PackType" c:type="GtkPackType"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_error" c:identifier="totem_interface_error">
      <doc xml:space="preserve">Display a modal error dialogue with @title as its primary error text, and @reason
as its secondary text.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="title" transfer-ownership="none">
          <doc xml:space="preserve">the error title</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="reason" transfer-ownership="none">
          <doc xml:space="preserve">the error reason (secondary text)</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="parent" transfer-ownership="none">
          <doc xml:space="preserve">the error dialogue's parent #GtkWindow</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_error_blocking"
              c:identifier="totem_interface_error_blocking">
      <doc xml:space="preserve">Display a modal error dialogue like totem_interface_error() which blocks until the user has
dismissed it.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="title" transfer-ownership="none">
          <doc xml:space="preserve">the error title</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="reason" transfer-ownership="none">
          <doc xml:space="preserve">the error reason (secondary text)</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="parent" transfer-ownership="none">
          <doc xml:space="preserve">the error dialogue's parent #GtkWindow</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_error_with_link"
              c:identifier="totem_interface_error_with_link">
      <doc xml:space="preserve">Display a modal error dialogue like totem_interface_error(),
but add a button which will open @uri in a browser window.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="title" transfer-ownership="none">
          <doc xml:space="preserve">the error title</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="reason" transfer-ownership="none">
          <doc xml:space="preserve">the error reason (secondary text)</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:space="preserve">the URI to open</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="label" transfer-ownership="none">
          <doc xml:space="preserve">a label for the URI's button, or %NULL to use @uri as the label</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="parent" transfer-ownership="none">
          <doc xml:space="preserve">the error dialogue's parent #GtkWindow</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_get_full_path"
              c:identifier="totem_interface_get_full_path">
      <return-value transfer-ownership="full">
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_load" c:identifier="totem_interface_load">
      <doc xml:space="preserve">Load a #GtkBuilder UI file with the given name and return the #GtkBuilder instance for it. If loading the file fails, an error dialogue is shown.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">the loaded #GtkBuilder object, or %NULL</doc>
        <type name="Gtk.Builder" c:type="GtkBuilder*"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve">the #GtkBuilder UI file to load</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="fatal" transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if errors loading the file should be fatal, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="parent"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">the parent window to use when displaying error dialogues, or %NULL</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">the user data to pass to gtk_builder_connect_signals(), or %NULL</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_load_pixbuf"
              c:identifier="totem_interface_load_pixbuf">
      <doc xml:space="preserve">Load the image called @name in the directory given by totem_interface_get_full_path() into a #GdkPixbuf.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">the loaded pixbuf, or %NULL</doc>
        <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve">the image file name</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_load_with_full_path"
              c:identifier="totem_interface_load_with_full_path">
      <doc xml:space="preserve">Load a #GtkBuilder UI file from the given path and return the #GtkBuilder instance for it. If loading the file fails, an error dialogue is shown.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">the loaded #GtkBuilder object, or %NULL</doc>
        <type name="Gtk.Builder" c:type="GtkBuilder*"/>
      </return-value>
      <parameters>
        <parameter name="filename" transfer-ownership="none">
          <doc xml:space="preserve">the #GtkBuilder UI file path to load</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="fatal" transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if errors loading the file should be fatal, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="parent"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">the parent window to use when displaying error dialogues, or %NULL</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">the user data to pass to gtk_builder_connect_signals(), or %NULL</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="plugin_find_file" c:identifier="totem_plugin_find_file">
      <doc xml:space="preserve">Finds the specified @file by looking in the plugin paths
listed by totem_get_plugin_paths() and then in the system
Totem data directory.

This should be used by plugins to find plugin-specific
resource files.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a newly-allocated absolute path for the file, or %NULL</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="plugin_name" transfer-ownership="none">
          <doc xml:space="preserve">the plugin name</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="file" transfer-ownership="none">
          <doc xml:space="preserve">the file to find</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="plugin_load_interface"
              c:identifier="totem_plugin_load_interface">
      <doc xml:space="preserve">Loads an interface file (GtkBuilder UI file) for a plugin, given its filename and
assuming it's installed in the plugin's data directory.

This should be used instead of attempting to load interfaces manually in plugins.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">the #GtkBuilder instance for the interface</doc>
        <type name="Gtk.Builder" c:type="GtkBuilder*"/>
      </return-value>
      <parameters>
        <parameter name="plugin_name" transfer-ownership="none">
          <doc xml:space="preserve">the plugin name</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve">interface filename</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="fatal" transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if it's a fatal error if the interface can't be loaded</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
        <parameter name="parent"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">the interface's parent #GtkWindow</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve">a pointer to be passed to each signal handler in the interface when they're called</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="remote_command_quark"
              c:identifier="totem_remote_command_quark"
              moved-to="RemoteCommand.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="remote_setting_quark"
              c:identifier="totem_remote_setting_quark"
              moved-to="RemoteSetting.quark">
      <return-value transfer-ownership="none">
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
  </namespace>
</repository>
