<?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="Atk" version="1.0"/>
  <include name="GLib" version="2.0"/>
  <include name="GModule" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gdk" version="3.0"/>
  <include name="GdkPixbuf" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="Gtk" version="3.0"/>
  <include name="Pango" version="1.0"/>
  <include name="TotemPlParser" version="1.0"/>
  <include name="cairo" version="1.0"/>
  <include name="xlib" version="2.0"/>
  <package name="totem"/>
  <c:include name="totem.h"/>
  <namespace name="Totem"
             version="1.0"
             shared-library="libtotem.so.0.0"
             c:identifier-prefixes="Totem"
             c:symbol-prefixes="totem">
    <record name="" c:type="Totem" disguised="1">
      <doc xml:whitespace="preserve">The #Totem object is a handy synonym for #TotemObject, and the two can be used interchangably.</doc>
    </record>
    <class name="CellRendererVideo"
           c:symbol-prefix="cell_renderer_video"
           c:type="TotemCellRendererVideo"
           parent="Gtk.CellRenderer"
           glib:type-name="TotemCellRendererVideo"
           glib:get-type="totem_cell_renderer_video_get_type"
           glib:type-struct="CellRendererVideoClass">
      <doc xml:whitespace="preserve">All the fields in the #TotemCellRendererVideo structure are private and should never be accessed directly.</doc>
      <constructor name="new" c:identifier="totem_cell_renderer_video_new">
        <doc xml:whitespace="preserve">Creates a new #TotemCellRendererVideo with its #TotemCellRendererVideo:use-placeholder
property set to @use_placeholder. If @use_placeholder is %TRUE,
the renderer will display a generic placeholder thumbnail if a
proper one is not available.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a new #TotemCellRendererVideo</doc>
          <type name="CellRendererVideo" c:type="TotemCellRendererVideo*"/>
        </return-value>
        <parameters>
          <parameter name="use_placeholder" transfer-ownership="none">
            <doc xml:whitespace="preserve">if %TRUE, use a placeholder thumbnail</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="alignment" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">A #PangoAlignment giving the text alignment for the video title.</doc>
        <type name="Pango.Alignment"/>
      </property>
      <property name="thumbnail" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">A #GdkPixbuf of a thumbnail of the video to display. When rendered, it will scale to the width of the parent #GtkTreeView,
so can be as large as reasonable.</doc>
        <type name="GdkPixbuf.Pixbuf"/>
      </property>
      <property name="title" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The title of the video, as it should be displayed.</doc>
        <type name="utf8"/>
      </property>
      <property name="use-placeholder" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">If %TRUE, a placeholder image should be used for the video thumbnail if a #TotemCellRendererVideo:thumbnail isn't provided.</doc>
        <type name="gboolean"/>
      </property>
      <field name="parent">
        <type name="Gtk.CellRenderer" c:type="GtkCellRenderer"/>
      </field>
      <field name="priv">
        <type name="CellRendererVideoPrivate"
              c:type="TotemCellRendererVideoPrivate*"/>
      </field>
    </class>
    <record name="CellRendererVideoClass"
            c:type="TotemCellRendererVideoClass"
            glib:is-gtype-struct-for="CellRendererVideo">
      <doc xml:whitespace="preserve">The class structure for the #TotemCellRendererVideo type.</doc>
      <field name="parent">
        <type name="Gtk.CellRendererClass" c:type="GtkCellRendererClass"/>
      </field>
    </record>
    <record name="CellRendererVideoPrivate"
            c:type="TotemCellRendererVideoPrivate"
            disguised="1">
    </record>
    <constant name="GSETTINGS_SCHEMA"
              value="org.gnome.totem"
              c:type="TOTEM_GSETTINGS_SCHEMA">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <class name="Object"
           c:symbol-prefix="object"
           c:type="TotemObject"
           parent="GObject.Object"
           glib:type-name="TotemObject"
           glib:get-type="totem_object_get_type"
           glib:type-struct="ObjectClass">
      <doc xml:whitespace="preserve">All the fields in the #TotemObject structure are private and should never be accessed directly.</doc>
      <function name="get_version" c:identifier="totem_object_get_version">
        <doc xml:whitespace="preserve">Gets the application name and version (e.g. "Totem 2.28.0").</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a newly-allocated string of the name and version of the application</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
      </function>
      <virtual-method name="file_closed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </virtual-method>
      <virtual-method name="file_opened">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="mrl" transfer-ownership="none">
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="metadata_updated">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="artist" transfer-ownership="none">
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="album" transfer-ownership="none">
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="track_num" transfer-ownership="none">
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="action_error" c:identifier="totem_object_action_error">
        <doc xml:whitespace="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>
          <parameter name="title" transfer-ownership="none">
            <doc xml:whitespace="preserve">the error dialog title</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="reason" transfer-ownership="none">
            <doc xml:whitespace="preserve">the error dialog text</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="action_exit" c:identifier="totem_object_action_exit">
        <doc xml:whitespace="preserve">Closes Totem.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="action_fullscreen_toggle"
              c:identifier="totem_object_action_fullscreen_toggle">
        <doc xml:whitespace="preserve">Toggles Totem's fullscreen state; if Totem is fullscreened, calling
this makes it unfullscreened and vice-versa.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="action_next" c:identifier="totem_object_action_next">
        <doc xml:whitespace="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>
      </method>
      <method name="action_play" c:identifier="totem_object_action_play">
        <doc xml:whitespace="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>
      </method>
      <method name="action_play_pause"
              c:identifier="totem_object_action_play_pause">
        <doc xml:whitespace="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>
      </method>
      <method name="action_previous"
              c:identifier="totem_object_action_previous">
        <doc xml:whitespace="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>
      </method>
      <method name="action_remote" c:identifier="totem_object_action_remote">
        <doc xml:whitespace="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>
          <parameter name="cmd" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #TotemRemoteCommand</doc>
            <type name="RemoteCommand" c:type="TotemRemoteCommand"/>
          </parameter>
          <parameter name="url" transfer-ownership="none">
            <doc xml:whitespace="preserve">an MRL to play, or %NULL</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="action_remote_get_setting"
              c:identifier="totem_object_action_remote_get_setting">
        <doc xml:whitespace="preserve">Returns the value of @setting for this instance of Totem.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the setting is enabled, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #TotemRemoteSetting</doc>
            <type name="RemoteSetting" c:type="TotemRemoteSetting"/>
          </parameter>
        </parameters>
      </method>
      <method name="action_remote_set_setting"
              c:identifier="totem_object_action_remote_set_setting">
        <doc xml:whitespace="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>
          <parameter name="setting" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #TotemRemoteSetting</doc>
            <type name="RemoteSetting" c:type="TotemRemoteSetting"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">the new value for the setting</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="action_seek_time"
              c:identifier="totem_object_action_seek_time">
        <doc xml:whitespace="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>
          <parameter name="msec" transfer-ownership="none">
            <doc xml:whitespace="preserve">the time to seek to</doc>
            <type name="gint64" c:type="gint64"/>
          </parameter>
          <parameter name="accurate" transfer-ownership="none">
            <doc xml:whitespace="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="action_stop" c:identifier="totem_object_action_stop">
        <doc xml:whitespace="preserve">Stops the current stream.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="action_volume" c:identifier="totem_object_action_volume">
        <doc xml:whitespace="preserve">Sets the volume, with %1.0 being the maximum, and %0.0 being the minimum level.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="volume" transfer-ownership="none">
            <doc xml:whitespace="preserve">the new absolute volume value</doc>
            <type name="gdouble" c:type="double"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_sidebar_page"
              c:identifier="totem_object_add_sidebar_page">
        <doc xml:whitespace="preserve">Adds a sidebar page to Totem's sidebar with the given @page_id.
@main_widget is added into the page and shown automatically, while
@title is displayed as the page's title in the tab bar.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="page_id" transfer-ownership="none">
            <doc xml:whitespace="preserve">a string used to identify the page</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:whitespace="preserve">the page's title</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="main_widget" transfer-ownership="none">
            <doc xml:whitespace="preserve">the main widget for the page</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_to_playlist_and_play"
              c:identifier="totem_object_add_to_playlist_and_play">
        <doc xml:whitespace="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>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">the URI to add to the playlist</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="display_name" transfer-ownership="none">
            <doc xml:whitespace="preserve">the display name of the URI</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="add_to_recent" transfer-ownership="none">
            <doc xml:whitespace="preserve">if %TRUE, add the URI to the recent items list</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_current_mrl"
              c:identifier="totem_object_get_current_mrl">
        <doc xml:whitespace="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:whitespace="preserve">a newly-allocated string containing the MRL of the current stream</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
      </method>
      <method name="get_main_window"
              c:identifier="totem_object_get_main_window">
        <doc xml:whitespace="preserve">Gets Totem's main window and increments its reference count.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">Totem's main window</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </return-value>
      </method>
      <method name="get_playlist_length"
              c:identifier="totem_object_get_playlist_length">
        <doc xml:whitespace="preserve">Returns the length of the current playlist.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the playlist length</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_playlist_pos"
              c:identifier="totem_object_get_playlist_pos">
        <doc xml:whitespace="preserve">Returns the %0-based index of the current entry in the playlist. If
there is no current entry in the playlist, %-1 is returned.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the index of the current playlist entry, or %-1</doc>
          <type name="gint" c:type="int"/>
        </return-value>
      </method>
      <method name="get_title_at_playlist_pos"
              c:identifier="totem_object_get_title_at_playlist_pos">
        <doc xml:whitespace="preserve">Gets the title of the playlist entry at @index.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the entry title at @index, or %NULL; free with g_free()</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <parameter name="playlist_index" transfer-ownership="none">
            <doc xml:whitespace="preserve">the %0-based entry index</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_ui_manager" c:identifier="totem_object_get_ui_manager">
        <doc xml:whitespace="preserve">Gets Totem's UI manager, but does not change its reference count.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">Totem's UI manager</doc>
          <type name="Gtk.UIManager" c:type="GtkUIManager*"/>
        </return-value>
      </method>
      <method name="get_volume" c:identifier="totem_object_get_volume">
        <doc xml:whitespace="preserve">Gets the current volume level, as a value between %0.0 and %1.0.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the volume level</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
      </method>
      <method name="is_paused" c:identifier="totem_object_is_paused">
        <doc xml:whitespace="preserve">Returns %TRUE if playback is paused.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if playback is paused, %FALSE otherwise</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="is_playing" c:identifier="totem_object_is_playing">
        <doc xml:whitespace="preserve">Returns %TRUE if Totem is playing a stream.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if Totem is playing a stream</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="is_seekable" c:identifier="totem_object_is_seekable">
        <doc xml:whitespace="preserve">Returns %TRUE if the current stream is seekable.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if the current stream is seekable</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="plugins_init" c:identifier="totem_object_plugins_init">
        <doc xml:whitespace="preserve">Initialises the plugin engine and activates all the
enabled plugins.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="plugins_shutdown"
              c:identifier="totem_object_plugins_shutdown">
        <doc xml:whitespace="preserve">Shuts down the plugin engine and deactivates all the
plugins.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="remove_sidebar_page"
              c:identifier="totem_object_remove_sidebar_page">
        <doc xml:whitespace="preserve">Removes the page identified by @page_id from Totem's sidebar.
If @page_id doesn't exist in the sidebar, this function does
nothing.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="page_id" transfer-ownership="none">
            <doc xml:whitespace="preserve">a string used to identify the page</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_current_subtitle"
              c:identifier="totem_object_set_current_subtitle">
        <doc xml:whitespace="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>
          <parameter name="subtitle_uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">the URI of the subtitle file to add</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </method>
      <property name="autoload-subtitles"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">If %TRUE, Totem will automatically load any subtitle files it finds for each newly opened video.</doc>
        <type name="gboolean"/>
      </property>
      <property name="current-mrl" transfer-ownership="none">
        <doc xml:whitespace="preserve">The MRL of the current stream.</doc>
        <type name="utf8"/>
      </property>
      <property name="current-time" transfer-ownership="none">
        <doc xml:whitespace="preserve">The player's position (time) in the current stream, in milliseconds.</doc>
        <type name="gint64"/>
      </property>
      <property name="fullscreen" transfer-ownership="none">
        <doc xml:whitespace="preserve">If %TRUE, Totem is in fullscreen mode.</doc>
        <type name="gboolean"/>
      </property>
      <property name="playing" transfer-ownership="none">
        <doc xml:whitespace="preserve">If %TRUE, Totem is playing an audio or video file.</doc>
        <type name="gboolean"/>
      </property>
      <property name="remember-position"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">If %TRUE, Totem will remember the position it was at last time a given file was opened.</doc>
        <type name="gboolean"/>
      </property>
      <property name="seekable" transfer-ownership="none">
        <doc xml:whitespace="preserve">If %TRUE, the current stream is seekable.</doc>
        <type name="gboolean"/>
      </property>
      <property name="stream-length" transfer-ownership="none">
        <doc xml:whitespace="preserve">The length of the current stream, in milliseconds.</doc>
        <type name="gint64"/>
      </property>
      <glib:signal name="file-closed" when="last">
        <doc xml:whitespace="preserve">The #TotemObject::file-closed signal is emitted when Totem closes a stream.</doc>
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="file-opened" when="last">
        <doc xml:whitespace="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"/>
        </return-value>
        <parameters>
          <parameter name="mrl" transfer-ownership="none">
            <doc xml:whitespace="preserve">the MRL of the opened stream</doc>
            <type name="utf8"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="metadata-updated" when="last">
        <doc xml:whitespace="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"/>
        </return-value>
        <parameters>
          <parameter name="artist" transfer-ownership="none">
            <doc xml:whitespace="preserve">the name of the artist, or %NULL</doc>
            <type name="utf8"/>
          </parameter>
          <parameter name="title" transfer-ownership="none">
            <doc xml:whitespace="preserve">the stream title, or %NULL</doc>
            <type name="utf8"/>
          </parameter>
          <parameter name="album" transfer-ownership="none">
            <doc xml:whitespace="preserve">the name of the stream's album, or %NULL</doc>
            <type name="utf8"/>
          </parameter>
          <parameter name="track_number" transfer-ownership="none">
            <doc xml:whitespace="preserve">the stream's track number</doc>
            <type name="guint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ObjectClass"
            c:type="TotemObjectClass"
            glib:is-gtype-struct-for="Object">
      <doc xml:whitespace="preserve">The class structure for the #TotemPlParser type.</doc>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </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="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="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="char*"/>
            </parameter>
            <parameter name="title" transfer-ownership="none">
              <type name="utf8" c:type="char*"/>
            </parameter>
            <parameter name="album" transfer-ownership="none">
              <type name="utf8" c:type="char*"/>
            </parameter>
            <parameter name="track_num" transfer-ownership="none">
              <type name="guint" c:type="guint"/>
            </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:whitespace="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"/>
      <member name="play"
              value="1"
              c:identifier="TOTEM_REMOTE_COMMAND_PLAY"
              glib:nick="play"/>
      <member name="pause"
              value="2"
              c:identifier="TOTEM_REMOTE_COMMAND_PAUSE"
              glib:nick="pause"/>
      <member name="stop"
              value="3"
              c:identifier="TOTEM_REMOTE_COMMAND_STOP"
              glib:nick="stop"/>
      <member name="play_pause"
              value="4"
              c:identifier="TOTEM_REMOTE_COMMAND_PLAYPAUSE"
              glib:nick="play-pause"/>
      <member name="next"
              value="5"
              c:identifier="TOTEM_REMOTE_COMMAND_NEXT"
              glib:nick="next"/>
      <member name="previous"
              value="6"
              c:identifier="TOTEM_REMOTE_COMMAND_PREVIOUS"
              glib:nick="previous"/>
      <member name="seek_forward"
              value="7"
              c:identifier="TOTEM_REMOTE_COMMAND_SEEK_FORWARD"
              glib:nick="seek-forward"/>
      <member name="seek_backward"
              value="8"
              c:identifier="TOTEM_REMOTE_COMMAND_SEEK_BACKWARD"
              glib:nick="seek-backward"/>
      <member name="volume_up"
              value="9"
              c:identifier="TOTEM_REMOTE_COMMAND_VOLUME_UP"
              glib:nick="volume-up"/>
      <member name="volume_down"
              value="10"
              c:identifier="TOTEM_REMOTE_COMMAND_VOLUME_DOWN"
              glib:nick="volume-down"/>
      <member name="fullscreen"
              value="11"
              c:identifier="TOTEM_REMOTE_COMMAND_FULLSCREEN"
              glib:nick="fullscreen"/>
      <member name="quit"
              value="12"
              c:identifier="TOTEM_REMOTE_COMMAND_QUIT"
              glib:nick="quit"/>
      <member name="enqueue"
              value="13"
              c:identifier="TOTEM_REMOTE_COMMAND_ENQUEUE"
              glib:nick="enqueue"/>
      <member name="replace"
              value="14"
              c:identifier="TOTEM_REMOTE_COMMAND_REPLACE"
              glib:nick="replace"/>
      <member name="show"
              value="15"
              c:identifier="TOTEM_REMOTE_COMMAND_SHOW"
              glib:nick="show"/>
      <member name="toggle_controls"
              value="16"
              c:identifier="TOTEM_REMOTE_COMMAND_TOGGLE_CONTROLS"
              glib:nick="toggle-controls"/>
      <member name="up"
              value="17"
              c:identifier="TOTEM_REMOTE_COMMAND_UP"
              glib:nick="up"/>
      <member name="down"
              value="18"
              c:identifier="TOTEM_REMOTE_COMMAND_DOWN"
              glib:nick="down"/>
      <member name="left"
              value="19"
              c:identifier="TOTEM_REMOTE_COMMAND_LEFT"
              glib:nick="left"/>
      <member name="right"
              value="20"
              c:identifier="TOTEM_REMOTE_COMMAND_RIGHT"
              glib:nick="right"/>
      <member name="select"
              value="21"
              c:identifier="TOTEM_REMOTE_COMMAND_SELECT"
              glib:nick="select"/>
      <member name="dvd_menu"
              value="22"
              c:identifier="TOTEM_REMOTE_COMMAND_DVD_MENU"
              glib:nick="dvd-menu"/>
      <member name="zoom_up"
              value="23"
              c:identifier="TOTEM_REMOTE_COMMAND_ZOOM_UP"
              glib:nick="zoom-up"/>
      <member name="zoom_down"
              value="24"
              c:identifier="TOTEM_REMOTE_COMMAND_ZOOM_DOWN"
              glib:nick="zoom-down"/>
      <member name="eject"
              value="25"
              c:identifier="TOTEM_REMOTE_COMMAND_EJECT"
              glib:nick="eject"/>
      <member name="play_dvd"
              value="26"
              c:identifier="TOTEM_REMOTE_COMMAND_PLAY_DVD"
              glib:nick="play-dvd"/>
      <member name="mute"
              value="27"
              c:identifier="TOTEM_REMOTE_COMMAND_MUTE"
              glib:nick="mute"/>
      <member name="toggle_aspect_ratio"
              value="28"
              c:identifier="TOTEM_REMOTE_COMMAND_TOGGLE_ASPECT"
              glib:nick="toggle-aspect-ratio"/>
      <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:whitespace="preserve">Represents a boolean setting or preference on a remote Totem instance.</doc>
      <member name="shuffle"
              value="0"
              c:identifier="TOTEM_REMOTE_SETTING_SHUFFLE"
              glib:nick="shuffle"/>
      <member name="repeat"
              value="1"
              c:identifier="TOTEM_REMOTE_SETTING_REPEAT"
              glib:nick="repeat"/>
      <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>
    <class name="VideoList"
           c:symbol-prefix="video_list"
           c:type="TotemVideoList"
           parent="Gtk.TreeView"
           glib:type-name="TotemVideoList"
           glib:get-type="totem_video_list_get_type"
           glib:type-struct="VideoListClass">
      <doc xml:whitespace="preserve">All the fields in the #TotemVideoList structure are private and should never be accessed directly.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Scrollable"/>
      <constructor name="new" c:identifier="totem_video_list_new">
        <doc xml:whitespace="preserve">Creates a new #TotemVideoList with default properties.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">a new #TotemVideoList</doc>
          <type name="VideoList" c:type="TotemVideoList*"/>
        </return-value>
      </constructor>
      <virtual-method name="starting_video">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="path" transfer-ownership="none">
            <type name="Gtk.TreePath" c:type="GtkTreePath*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_ui_manager"
              c:identifier="totem_video_list_get_ui_manager">
        <doc xml:whitespace="preserve">Returns the #GtkUIManager in use by @self.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">@self's #GtkUIManager</doc>
          <type name="Gtk.UIManager" c:type="GtkUIManager*"/>
        </return-value>
      </method>
      <property name="mrl-column" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The column number of the #GtkTreeModel column containing MRLs of the videos in the video list.
If it's set to -1, video rows will not be activatable (e.g. by double-clicking them).</doc>
        <type name="gint"/>
      </property>
      <property name="show-tooltip-uri"
                version="2.90.6"
                writable="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">If this is %TRUE, the URI of each video will be displayed in the tooltip for that video (or a message saying "No video URI" will be
displayed if the URI is unset); otherwise, the tooltip will only display the video name.</doc>
        <type name="gboolean"/>
      </property>
      <property name="tooltip-column" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">The column number of the #GtkTreeModel column containing tooltips to be displayed by the video list.
If it's set to -1, no tooltips shall be displayed.</doc>
        <type name="gint"/>
      </property>
      <property name="totem" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">A #TotemObject for integration purposes.</doc>
        <type name="Object"/>
      </property>
      <field name="parent">
        <type name="Gtk.TreeView" c:type="GtkTreeView"/>
      </field>
      <field name="priv">
        <type name="VideoListPrivate" c:type="TotemVideoListPrivate*"/>
      </field>
      <glib:signal name="starting-video" when="last">
        <doc xml:whitespace="preserve">The #TotemVideoList::starting-video signal is emitted when a video row is activated, just before the video is
added to the playlist. It allows for the video's MRL in the #GtkTreeModel to be modified, for example.

If this returns %TRUE, the video will be played; otherwise, it will not.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="tree_path" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GtkTreePath of the video row about to be played</doc>
            <type name="Gtk.TreePath"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="VideoListClass"
            c:type="TotemVideoListClass"
            glib:is-gtype-struct-for="VideoList">
      <doc xml:whitespace="preserve">The class structure for the #TotemVideoList type.</doc>
      <field name="parent">
        <type name="Gtk.TreeViewClass" c:type="GtkTreeViewClass"/>
      </field>
      <field name="starting_video">
        <callback name="starting_video">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="video_list" transfer-ownership="none">
              <type name="VideoList" c:type="TotemVideoList*"/>
            </parameter>
            <parameter name="path" transfer-ownership="none">
              <type name="Gtk.TreePath" c:type="GtkTreePath*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="VideoListPrivate"
            c:type="TotemVideoListPrivate"
            disguised="1">
    </record>
    <function name="action_fullscreen" c:identifier="totem_action_fullscreen">
      <doc xml:whitespace="preserve">Sets Totem's fullscreen state according to @state.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
        <parameter name="state" transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if Totem should be fullscreened</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="action_get_aspect_ratio"
              c:identifier="totem_action_get_aspect_ratio">
      <doc xml:whitespace="preserve">Gets the current aspect ratio as defined in #BvwAspectRatio.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">the current aspect ratio</doc>
        <type name="gint" c:type="int"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
      </parameters>
    </function>
    <function name="action_next_angle" c:identifier="totem_action_next_angle">
      <doc xml:whitespace="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>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
      </parameters>
    </function>
    <function name="action_pause" c:identifier="totem_action_pause">
      <doc xml:whitespace="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>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
      </parameters>
    </function>
    <function name="action_play_media" c:identifier="totem_action_play_media">
      <doc xml:whitespace="preserve">Attempts to play the media found on @device (for example, a DVD in a drive or a DVB
tuner) by first adding it to the playlist, then playing it.

An error dialog will be displayed if Totem cannot support media of @type.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
        <parameter name="type" transfer-ownership="none">
          <doc xml:whitespace="preserve">the type of disc media</doc>
          <type name="TotemPlParser.MediaType" c:type="TotemDiscMediaType"/>
        </parameter>
        <parameter name="device" transfer-ownership="none">
          <doc xml:whitespace="preserve">the media's device path</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="action_play_media_device"
              c:identifier="totem_action_play_media_device">
      <doc xml:whitespace="preserve">Attempts to play the media device (for example, a DVD drive or CD drive)
with the given @device path by first adding it to the playlist, then
playing it.

An error dialog will be displayed if Totem cannot read or play what's on
the media device.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
        <parameter name="device" transfer-ownership="none">
          <doc xml:whitespace="preserve">the media device's path</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="action_seek_relative"
              c:identifier="totem_action_seek_relative">
      <doc xml:whitespace="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>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
        <parameter name="offset" transfer-ownership="none">
          <doc xml:whitespace="preserve">the time offset to seek to</doc>
          <type name="gint64" c:type="gint64"/>
        </parameter>
        <parameter name="accurate" transfer-ownership="none">
          <doc xml:whitespace="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>
    </function>
    <function name="action_set_aspect_ratio"
              c:identifier="totem_action_set_aspect_ratio">
      <doc xml:whitespace="preserve">Sets the aspect ratio selected in the menu to @ratio,
as defined in #BvwAspectRatio.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
        <parameter name="ratio" transfer-ownership="none">
          <doc xml:whitespace="preserve">the aspect ratio to use</doc>
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="action_set_mrl" c:identifier="totem_action_set_mrl">
      <doc xml:whitespace="preserve">Calls totem_action_set_mrl_with_warning() with warnings enabled.
For more information, see the documentation for totem_action_set_mrl_with_warning().</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">%TRUE on success</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
        <parameter name="mrl" transfer-ownership="none">
          <doc xml:whitespace="preserve">the MRL to load</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="subtitle" transfer-ownership="none">
          <doc xml:whitespace="preserve">a subtitle file to load, or %NULL</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="action_set_mrl_and_play"
              c:identifier="totem_action_set_mrl_and_play">
      <doc xml:whitespace="preserve">Loads the specified @mrl and plays it, if possible.
Calls totem_action_set_mrl() then totem_action_play().
For more information, see the documentation for totem_action_set_mrl_with_warning().</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
        <parameter name="mrl" transfer-ownership="none">
          <doc xml:whitespace="preserve">the MRL to play</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="subtitle" transfer-ownership="none">
          <doc xml:whitespace="preserve">a subtitle file to load, or %NULL</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="action_set_mrl_with_warning"
              c:identifier="totem_action_set_mrl_with_warning">
      <doc xml:whitespace="preserve">Loads the specified @mrl and optionally the specified subtitle
file. If @subtitle is %NULL Totem will attempt to auto-locate
any subtitle files for @mrl.

If a stream is already playing, it will be stopped and closed.

If any errors are encountered, error dialogs will only be displayed
if @warn is %TRUE.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">%TRUE on success</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
        <parameter name="mrl" transfer-ownership="none">
          <doc xml:whitespace="preserve">the MRL to play</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="subtitle" transfer-ownership="none">
          <doc xml:whitespace="preserve">a subtitle file to load, or %NULL</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="warn" transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if error dialogs should be displayed</doc>
          <type name="gboolean" c:type="gboolean"/>
        </parameter>
      </parameters>
    </function>
    <function name="action_set_playlist_index"
              c:identifier="totem_action_set_playlist_index">
      <doc xml:whitespace="preserve">Sets the %0-based playlist index to @index, causing Totem to load and
start playing that playlist entry.

If @index is higher than the current length of the playlist, this
has the effect of restarting the current playlist entry.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
        <parameter name="index" transfer-ownership="none">
          <doc xml:whitespace="preserve">the new playlist index</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="action_set_scale_ratio"
              c:identifier="totem_action_set_scale_ratio">
      <doc xml:whitespace="preserve">Sets the video scale ratio, as a float where, for example,
1.0 is 1:1 and 2.0 is 2:1.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
        <parameter name="ratio" transfer-ownership="none">
          <doc xml:whitespace="preserve">the scale ratio to use</doc>
          <type name="gfloat" c:type="gfloat"/>
        </parameter>
      </parameters>
    </function>
    <function name="action_toggle_aspect_ratio"
              c:identifier="totem_action_toggle_aspect_ratio">
      <doc xml:whitespace="preserve">Toggles the aspect ratio selected in the menu to the
next one in the list.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
      </parameters>
    </function>
    <function name="action_toggle_controls"
              c:identifier="totem_action_toggle_controls">
      <doc xml:whitespace="preserve">If Totem's not fullscreened, this toggles the state of the "Show Controls"
menu entry, and consequently shows or hides the controls in the UI.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
      </parameters>
    </function>
    <function name="action_volume_relative"
              c:identifier="totem_action_volume_relative">
      <doc xml:whitespace="preserve">Sets the volume relative to its current level, with %1.0 being the
maximum, and %0.0 being the minimum level.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
        <parameter name="off_pct" transfer-ownership="none">
          <doc xml:whitespace="preserve">the value by which to increase or decrease the volume</doc>
          <type name="gdouble" c:type="double"/>
        </parameter>
      </parameters>
    </function>
    <function name="action_volume_toggle_mute"
              c:identifier="totem_action_volume_toggle_mute">
      <doc xml:whitespace="preserve">Toggles the mute status.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
      </parameters>
    </function>
    <function name="file_closed" c:identifier="totem_file_closed">
      <doc xml:whitespace="preserve">Emits the #TotemObject::file-closed signal on @totem.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
      </parameters>
    </function>
    <function name="file_opened" c:identifier="totem_file_opened">
      <doc xml:whitespace="preserve">Emits the #TotemObject::file-opened signal on @totem, with the
specified @mrl.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
        <parameter name="mrl" transfer-ownership="none">
          <doc xml:whitespace="preserve">the MRL opened</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_current_time" c:identifier="totem_get_current_time">
      <doc xml:whitespace="preserve">Gets the current position's time in the stream as a gint64.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">the current position in the stream</doc>
        <type name="gint64" c:type="gint64"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_plugin_paths"
              c:identifier="totem_get_plugin_paths"
              version="2.90.0">
      <doc xml:whitespace="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:whitespace="preserve">a %NULL-terminated array of paths to plugin directories</doc>
        <array c:type="char**">
          <type name="utf8"/>
        </array>
      </return-value>
    </function>
    <function name="get_short_title" c:identifier="totem_get_short_title">
      <doc xml:whitespace="preserve">Gets the title of the current entry in the playlist.</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">the current entry's title, or %NULL; free with g_free()</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_video_widget" c:identifier="totem_get_video_widget">
      <doc xml:whitespace="preserve">Gets Totem's video widget and increments its reference count.</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">Totem's video widget</doc>
        <type name="Gtk.Widget" c:type="GtkWidget*"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_video_widget_backend_name"
              c:identifier="totem_get_video_widget_backend_name">
      <doc xml:whitespace="preserve">Gets the name string of the backend video widget, typically the video library's
version string (e.g. what's returned by gst_version_string()). Free with g_free().</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">a newly-allocated string of the name of the backend video widget</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_error" c:identifier="totem_interface_error">
      <doc xml:whitespace="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:whitespace="preserve">the error title</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="reason" transfer-ownership="none">
          <doc xml:whitespace="preserve">the error reason (secondary text)</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="parent" transfer-ownership="none">
          <doc xml:whitespace="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:whitespace="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:whitespace="preserve">the error title</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="reason" transfer-ownership="none">
          <doc xml:whitespace="preserve">the error reason (secondary text)</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="parent" transfer-ownership="none">
          <doc xml:whitespace="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:whitespace="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:whitespace="preserve">the error title</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="reason" transfer-ownership="none">
          <doc xml:whitespace="preserve">the error reason (secondary text)</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:whitespace="preserve">the URI to open</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="label" transfer-ownership="none">
          <doc xml:whitespace="preserve">a label for the URI's button, or %NULL to use @uri as the label</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="parent" transfer-ownership="none">
          <doc xml:whitespace="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="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_get_license"
              c:identifier="totem_interface_get_license">
      <return-value transfer-ownership="full">
        <type name="utf8" c:type="char*"/>
      </return-value>
    </function>
    <function name="interface_load" c:identifier="totem_interface_load">
      <doc xml:whitespace="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:whitespace="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:whitespace="preserve">the #GtkBuilder UI file to load</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="fatal" transfer-ownership="none">
          <doc xml:whitespace="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" allow-none="1">
          <doc xml:whitespace="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" allow-none="1">
          <doc xml:whitespace="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:whitespace="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:whitespace="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:whitespace="preserve">the image file name</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="interface_load_with_full_path"
              c:identifier="totem_interface_load_with_full_path">
      <doc xml:whitespace="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:whitespace="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:whitespace="preserve">the #GtkBuilder UI file path to load</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="fatal" transfer-ownership="none">
          <doc xml:whitespace="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" allow-none="1">
          <doc xml:whitespace="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" allow-none="1">
          <doc xml:whitespace="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_set_transient_for"
              c:identifier="totem_interface_set_transient_for">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="window" transfer-ownership="none">
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="parent" transfer-ownership="none">
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
      </parameters>
    </function>
    <function name="is_fullscreen" c:identifier="totem_is_fullscreen">
      <doc xml:whitespace="preserve">Returns %TRUE if Totem is fullscreened.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">%TRUE if Totem is fullscreened</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
      </parameters>
    </function>
    <function name="metadata_updated" c:identifier="totem_metadata_updated">
      <doc xml:whitespace="preserve">Emits the #TotemObject::metadata-updated signal on @totem,
with the specified stream data.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="totem" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #TotemObject</doc>
          <type name="Object" c:type="TotemObject*"/>
        </parameter>
        <parameter name="artist" transfer-ownership="none">
          <doc xml:whitespace="preserve">the stream's artist, or %NULL</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="title" transfer-ownership="none">
          <doc xml:whitespace="preserve">the stream's title, or %NULL</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="album" transfer-ownership="none">
          <doc xml:whitespace="preserve">the stream's album, or %NULL</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="track_num" transfer-ownership="none">
          <doc xml:whitespace="preserve">the track number of the stream</doc>
          <type name="guint" c:type="guint"/>
        </parameter>
      </parameters>
    </function>
    <function name="plugin_find_file" c:identifier="totem_plugin_find_file">
      <doc xml:whitespace="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:whitespace="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:whitespace="preserve">the plugin name</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="file" transfer-ownership="none">
          <doc xml:whitespace="preserve">the file to find</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="plugin_load_interface"
              c:identifier="totem_plugin_load_interface">
      <doc xml:whitespace="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:whitespace="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:whitespace="preserve">the plugin name</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="name" transfer-ownership="none">
          <doc xml:whitespace="preserve">interface filename</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="fatal" transfer-ownership="none">
          <doc xml:whitespace="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" allow-none="1">
          <doc xml:whitespace="preserve">the interface's parent #GtkWindow</doc>
          <type name="Gtk.Window" c:type="GtkWindow*"/>
        </parameter>
        <parameter name="user_data" transfer-ownership="none" allow-none="1">
          <doc xml:whitespace="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>
