TotemObject

TotemObject — main Totem object

Stability Level

Unstable, unless otherwise indicated

Types and Values

Object Hierarchy

    GObject
    ╰── GApplication
        ╰── GtkApplication
            ╰── TotemObject

Implemented Interfaces

TotemObject implements GActionGroup and GActionMap.

Includes

#include <totem.h>

Description

TotemObject is the core object of Totem; a singleton which controls all Totem's main functions.

Functions

totem_object_show_error ()

void
totem_object_show_error (TotemObject *totem,
                         const char *title,
                         const char *reason);

Displays a non-blocking error dialog with the given title and reason .

Parameters

totem

a TotemObject

 

title

the error dialog title

 

reason

the error dialog text

 

totem_object_exit ()

void
totem_object_exit (TotemObject *totem);

Closes Totem.

Parameters

totem

a TotemObject

 

totem_object_play ()

void
totem_object_play (TotemObject *totem);

Plays the current stream. If Totem is already playing, it continues to play. If the stream cannot be played, and error dialog is displayed.

Parameters

totem

a TotemObject

 

totem_object_play_pause ()

void
totem_object_play_pause (TotemObject *totem);

Gets the current MRL from the playlist and attempts to play it. If the stream is already playing, playback is paused.

Parameters

totem

a TotemObject

 

totem_object_stop ()

void
totem_object_stop (TotemObject *totem);

Stops the current stream.

Parameters

totem

a TotemObject

 

totem_object_seek_next ()

void
totem_object_seek_next (TotemObject *totem);

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.

Parameters

totem

a TotemObject

 

totem_object_seek_previous ()

void
totem_object_seek_previous (TotemObject *totem);

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.

Parameters

totem

a TotemObject

 

totem_object_remote_get_setting ()

gboolean
totem_object_remote_get_setting (TotemObject *totem,
                                 TotemRemoteSetting setting);

Returns the value of setting for this instance of Totem.

Parameters

totem

a TotemObject

 

setting

a TotemRemoteSetting

 

Returns

TRUE if the setting is enabled, FALSE otherwise


totem_object_remote_set_setting ()

void
totem_object_remote_set_setting (TotemObject *totem,
                                 TotemRemoteSetting setting,
                                 gboolean value);

Sets setting to value on this instance of Totem.

Parameters

totem

a TotemObject

 

setting

a TotemRemoteSetting

 

value

the new value for the setting

 

totem_object_seek_time ()

void
totem_object_seek_time (TotemObject *totem,
                        gint64 msec,
                        gboolean accurate);

Seeks to an absolute time in the stream, or displays an error dialog if that's not possible.

Parameters

totem

a TotemObject

 

msec

the time to seek to

 

accurate

whether to use accurate seek, an accurate seek might be slower for some formats (see GStreamer docs)

 

totem_object_seek_relative ()

void
totem_object_seek_relative (TotemObject *totem,
                            gint64 offset,
                            gboolean accurate);

Seeks to an offset from the current position in the stream, or displays an error dialog if that's not possible.

Parameters

totem

a TotemObject

 

offset

the time offset to seek to

 

accurate

whether to use accurate seek, an accurate seek might be slower for some formats (see GStreamer docs)

 

totem_object_set_volume ()

void
totem_object_set_volume (TotemObject *totem,
                         double volume);

Sets the volume, with 1.0 being the maximum, and 0.0 being the minimum level.

Parameters

totem

a TotemObject

 

volume

the new absolute volume value

 

totem_object_remote_command ()

void
totem_object_remote_command (TotemObject *totem,
                             TotemRemoteCommand cmd,
                             const char *url);

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.

Parameters

totem

a TotemObject

 

cmd

a TotemRemoteCommand

 

url

an MRL to play, or NULL

 

totem_object_is_playing ()

gboolean
totem_object_is_playing (TotemObject *totem);

Returns TRUE if Totem is playing a stream.

Parameters

totem

a TotemObject

 

Returns

TRUE if Totem is playing a stream


totem_object_is_paused ()

gboolean
totem_object_is_paused (TotemObject *totem);

Returns TRUE if playback is paused.

Parameters

totem

a TotemObject

 

Returns

TRUE if playback is paused, FALSE otherwise


totem_object_is_seekable ()

gboolean
totem_object_is_seekable (TotemObject *totem);

Returns TRUE if the current stream is seekable.

Parameters

totem

a TotemObject

 

Returns

TRUE if the current stream is seekable


totem_object_get_main_window ()

GtkWindow *
totem_object_get_main_window (TotemObject *totem);

Gets Totem's main window and increments its reference count.

Parameters

totem

a TotemObject

 

Returns

Totem's main window.

[transfer full]


totem_object_get_current_mrl ()

char *
totem_object_get_current_mrl (TotemObject *totem);

Get the MRL of the current stream, or NULL if nothing's playing. Free with g_free().

Parameters

totem

a TotemObject

 

Returns

a newly-allocated string containing the MRL of the current stream


totem_object_get_video_widget ()

GtkWidget *
totem_object_get_video_widget (TotemObject *totem);

Gets Totem's video widget and increments its reference count.

Parameters

totem

a TotemObject

 

Returns

Totem's video widget.

[transfer full]


totem_object_set_current_subtitle ()

void
totem_object_set_current_subtitle (TotemObject *totem,
                                   const char *subtitle_uri);

Add the subtitle_uri subtitle file to the playlist, setting it as the subtitle for the current playlist entry.

Parameters

totem

a TotemObject

 

subtitle_uri

the URI of the subtitle file to add

 

totem_object_get_playlist_length ()

guint
totem_object_get_playlist_length (TotemObject *totem);

Returns the length of the current playlist.

Parameters

totem

a TotemObject

 

Returns

the playlist length


totem_object_get_playlist_pos ()

int
totem_object_get_playlist_pos (TotemObject *totem);

Returns the 0-based index of the current entry in the playlist. If there is no current entry in the playlist, -1 is returned.

Parameters

totem

a TotemObject

 

Returns

the index of the current playlist entry, or -1


totem_object_get_title_at_playlist_pos ()

char *
totem_object_get_title_at_playlist_pos
                               (TotemObject *totem,
                                guint playlist_index);

Gets the title of the playlist entry at index .

Parameters

totem

a TotemObject

 

playlist_index

the 0-based entry index

 

Returns

the entry title at index , or NULL; free with g_free()


totem_object_get_volume ()

double
totem_object_get_volume (TotemObject *totem);

Gets the current volume level, as a value between 0.0 and 1.0.

Parameters

totem

a TotemObject

 

Returns

the volume level


totem_object_get_supported_content_types ()

const gchar * const *
totem_object_get_supported_content_types
                               (void);

Get the full list of file content types which Totem supports playing.

Returns

a NULL-terminated array of the content types Totem supports.

[array zero-terminated=1][transfer none]

Since: 3.1.5


totem_object_get_supported_uri_schemes ()

const gchar * const *
totem_object_get_supported_uri_schemes
                               (void);

Get the full list of URI schemes which Totem supports accessing.

Returns

a NULL-terminated array of the URI schemes Totem supports.

[array zero-terminated=1][transfer none]

Since: 3.1.5


totem_object_get_rate ()

float
totem_object_get_rate (TotemObject *totem);

Gets the current playback rate, with 1.0 being the normal playback rate.

Parameters

totem

a TotemObject

 

Returns

the volume level


totem_object_set_rate ()

gboolean
totem_object_set_rate (TotemObject *totem,
                       float rate);

Sets the playback rate, with 1.0 being the normal playback rate.

Parameters

totem

a TotemObject

 

rate

the new absolute playback rate

 

Returns

TRUE on success, FALSE on failure.

Types and Values

Totem

typedef struct _TotemObject Totem;

The Totem object is a handy synonym for TotemObject, and the two can be used interchangably.


TotemObject

typedef struct _TotemObject TotemObject;

All the fields in the TotemObject structure are private and should never be accessed directly.


enum TotemRemoteCommand

Represents a command which can be sent to a running Totem instance remotely.

Members

TOTEM_REMOTE_COMMAND_UNKNOWN

unknown command

 

TOTEM_REMOTE_COMMAND_PLAY

play the current stream

 

TOTEM_REMOTE_COMMAND_PAUSE

pause the current stream

 

TOTEM_REMOTE_COMMAND_STOP

stop playing the current stream

 

TOTEM_REMOTE_COMMAND_PLAYPAUSE

toggle play/pause on the current stream

 

TOTEM_REMOTE_COMMAND_NEXT

play the next playlist item

 

TOTEM_REMOTE_COMMAND_PREVIOUS

play the previous playlist item

 

TOTEM_REMOTE_COMMAND_SEEK_FORWARD

seek forwards in the current stream

 

TOTEM_REMOTE_COMMAND_SEEK_BACKWARD

seek backwards in the current stream

 

TOTEM_REMOTE_COMMAND_VOLUME_UP

increase the volume

 

TOTEM_REMOTE_COMMAND_VOLUME_DOWN

decrease the volume

 

TOTEM_REMOTE_COMMAND_FULLSCREEN

toggle fullscreen mode

 

TOTEM_REMOTE_COMMAND_QUIT

quit the instance of Totem

 

TOTEM_REMOTE_COMMAND_ENQUEUE

enqueue a new playlist item

 

TOTEM_REMOTE_COMMAND_REPLACE

replace an item in the playlist

 

TOTEM_REMOTE_COMMAND_SHOW

show the Totem instance

 

TOTEM_REMOTE_COMMAND_UP

go up (DVD controls)

 

TOTEM_REMOTE_COMMAND_DOWN

go down (DVD controls)

 

TOTEM_REMOTE_COMMAND_LEFT

go left (DVD controls)

 

TOTEM_REMOTE_COMMAND_RIGHT

go right (DVD controls)

 

TOTEM_REMOTE_COMMAND_SELECT

select the current item (DVD controls)

 

TOTEM_REMOTE_COMMAND_DVD_MENU

go to the DVD menu

 

TOTEM_REMOTE_COMMAND_ZOOM_UP

increase the zoom level

 

TOTEM_REMOTE_COMMAND_ZOOM_DOWN

decrease the zoom level

 

TOTEM_REMOTE_COMMAND_EJECT

eject the current disc

 

TOTEM_REMOTE_COMMAND_PLAY_DVD

play a DVD in a drive

 

TOTEM_REMOTE_COMMAND_MUTE

toggle mute

 

TOTEM_REMOTE_COMMAND_TOGGLE_ASPECT

toggle the aspect ratio

 

enum TotemRemoteSetting

Represents a boolean setting or preference on a remote Totem instance.

Members

TOTEM_REMOTE_SETTING_REPEAT

whether repeat is enabled

 

TOTEM_GSETTINGS_SCHEMA

#define TOTEM_GSETTINGS_SCHEMA "org.gnome.totem"

The GSettings schema under which all Totem settings are stored.

Property Details

The “current-content-type” property

  “current-content-type”     gchar *

The content-type of the current stream.

Flags: Read

Default value: NULL


The “current-display-name” property

  “current-display-name”     gchar *

The display name of the current stream.

Flags: Read

Default value: NULL


The “current-mrl” property

  “current-mrl”              gchar *

The MRL of the current stream.

Flags: Read

Default value: NULL


The “current-time” property

  “current-time”             gint64

The player's position (time) in the current stream, in milliseconds.

Flags: Read

Default value: 0


The “fullscreen” property

  “fullscreen”               gboolean

If TRUE, Totem is in fullscreen mode.

Flags: Read

Default value: FALSE


The “playing” property

  “playing”                  gboolean

If TRUE, Totem is playing an audio or video file.

Flags: Read

Default value: FALSE


The “seekable” property

  “seekable”                 gboolean

If TRUE, the current stream is seekable.

Flags: Read

Default value: FALSE


The “stream-length” property

  “stream-length”            gint64

The length of the current stream, in milliseconds.

Flags: Read

Default value: 0

Signal Details

The “file-closed” signal

void
user_function (TotemObject *totem,
               gpointer     user_data)

The “file-closed” signal is emitted when Totem closes a stream.

Parameters

totem

the TotemObject which received the signal

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “file-has-played” signal

void
user_function (TotemObject *totem,
               gchar       *mrl,
               gpointer     user_data)

The “file-has-played” signal is emitted when a new stream has started playing in Totem.

Parameters

totem

the TotemObject which received the signal

 

mrl

the MRL of the opened stream

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “file-opened” signal

void
user_function (TotemObject *totem,
               gchar       *mrl,
               gpointer     user_data)

The “file-opened” signal is emitted when a new stream is opened by Totem.

Parameters

totem

the TotemObject which received the signal

 

mrl

the MRL of the opened stream

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last


The “get-text-subtitle” signal

gchar*
user_function (TotemObject *totem,
               gchar       *mrl,
               gpointer     user_data)

The “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.

Parameters

totem

the TotemObject which received the signal

 

mrl

the MRL of the opened stream

 

user_data

user data set when the signal handler was connected.

 

Returns

allocated string representing the URI of the subtitle to use for mrl

Flags: Run Last


The “get-user-agent” signal

gchar*
user_function (TotemObject *totem,
               gchar       *mrl,
               gpointer     user_data)

The “get-user-agent” signal is emitted before opening a stream, so that plugins have the opportunity to return the user-agent to be set.

Parameters

totem

the TotemObject which received the signal

 

mrl

the MRL of the opened stream

 

user_data

user data set when the signal handler was connected.

 

Returns

allocated string representing the user-agent to use for mrl

Flags: Run Last


The “metadata-updated” signal

void
user_function (TotemObject *totem,
               gchar       *artist,
               gchar       *title,
               gchar       *album,
               guint        track_number,
               gpointer     user_data)

The “metadata-updated” signal is emitted when the metadata of a stream is updated, typically when it's being loaded.

Parameters

totem

the TotemObject which received the signal

 

artist

the name of the artist, or NULL

 

title

the stream title, or NULL

 

album

the name of the stream's album, or NULL

 

track_number

the stream's track number

 

user_data

user data set when the signal handler was connected.

 

Flags: Run Last