TotemObject

TotemObject — main Totem object

Stability Level

Unstable, unless otherwise indicated

Synopsis

#include <totem.h>

typedef             Totem;
                    TotemObject;
enum                TotemRemoteCommand;
enum                TotemRemoteSetting;
#define             TOTEM_GSETTINGS_SCHEMA
void                totem_object_show_error             (TotemObject *totem,
                                                         const char *title,
                                                         const char *reason);
void                totem_object_exit                   (TotemObject *totem);
void                totem_object_play                   (TotemObject *totem);
void                totem_object_play_pause             (TotemObject *totem);
void                totem_object_stop                   (TotemObject *totem);
void                totem_object_seek_next              (TotemObject *totem);
void                totem_object_seek_previous          (TotemObject *totem);
gboolean            totem_object_remote_get_setting     (TotemObject *totem,
                                                         TotemRemoteSetting setting);
void                totem_object_remote_set_setting     (TotemObject *totem,
                                                         TotemRemoteSetting setting,
                                                         gboolean value);
void                totem_object_seek_time              (TotemObject *totem,
                                                         gint64 msec,
                                                         gboolean accurate);
void                totem_object_seek_relative          (TotemObject *totem,
                                                         gint64 offset,
                                                         gboolean accurate);
void                totem_object_set_volume             (TotemObject *totem,
                                                         double volume);
void                totem_object_remote_command         (TotemObject *totem,
                                                         TotemRemoteCommand cmd,
                                                         const char *url);
gboolean            totem_object_is_playing             (TotemObject *totem);
gboolean            totem_object_is_paused              (TotemObject *totem);
gboolean            totem_object_is_seekable            (TotemObject *totem);
GtkWindow *         totem_object_get_main_window        (TotemObject *totem);
GtkUIManager *      totem_object_get_ui_manager         (TotemObject *totem);
char *              totem_object_get_current_mrl        (TotemObject *totem);
GtkWidget *         totem_object_get_video_widget       (TotemObject *totem);
void                totem_object_set_current_subtitle   (TotemObject *totem,
                                                         const char *subtitle_uri);
guint               totem_object_get_playlist_length    (TotemObject *totem);
int                 totem_object_get_playlist_pos       (TotemObject *totem);
char *              totem_object_get_title_at_playlist_pos
                                                        (TotemObject *totem,
                                                         guint playlist_index);
double              totem_object_get_volume             (TotemObject *totem);
void                totem_object_add_sidebar_page       (TotemObject *totem,
                                                         const char *page_id,
                                                         const char *title,
                                                         GtkWidget *main_widget);
void                totem_object_remove_sidebar_page    (TotemObject *totem,
                                                         const char *page_id);
const gchar * const * totem_object_get_supported_content_types
                                                        (void);
const gchar * const * totem_object_get_supported_uri_schemes
                                                        (void);

Object Hierarchy

  GObject
   +----GApplication
         +----GtkApplication
               +----TotemObject

Implemented Interfaces

TotemObject implements GActionGroup and GActionMap.

Properties

  "current-content-type"     gchar*                : Read
  "current-display-name"     gchar*                : Read
  "current-mrl"              gchar*                : Read
  "current-time"             gint64                : Read
  "fullscreen"               gboolean              : Read
  "playing"                  gboolean              : Read
  "seekable"                 gboolean              : Read
  "stream-length"            gint64                : Read

Signals

  "file-closed"                                    : Run Last
  "file-has-played"                                : Run Last
  "file-opened"                                    : Run Last
  "get-text-subtitle"                              : Run Last
  "get-user-agent"                                 : Run Last
  "metadata-updated"                               : Run Last

Description

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

Details

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

typedef enum {
	TOTEM_REMOTE_COMMAND_UNKNOWN = 0,
	TOTEM_REMOTE_COMMAND_PLAY,
	TOTEM_REMOTE_COMMAND_PAUSE,
	TOTEM_REMOTE_COMMAND_STOP,
	TOTEM_REMOTE_COMMAND_PLAYPAUSE,
	TOTEM_REMOTE_COMMAND_NEXT,
	TOTEM_REMOTE_COMMAND_PREVIOUS,
	TOTEM_REMOTE_COMMAND_SEEK_FORWARD,
	TOTEM_REMOTE_COMMAND_SEEK_BACKWARD,
	TOTEM_REMOTE_COMMAND_VOLUME_UP,
	TOTEM_REMOTE_COMMAND_VOLUME_DOWN,
	TOTEM_REMOTE_COMMAND_FULLSCREEN,
	TOTEM_REMOTE_COMMAND_QUIT,
	TOTEM_REMOTE_COMMAND_ENQUEUE,
	TOTEM_REMOTE_COMMAND_REPLACE,
	TOTEM_REMOTE_COMMAND_SHOW,
	TOTEM_REMOTE_COMMAND_UP,
	TOTEM_REMOTE_COMMAND_DOWN,
	TOTEM_REMOTE_COMMAND_LEFT,
	TOTEM_REMOTE_COMMAND_RIGHT,
	TOTEM_REMOTE_COMMAND_SELECT,
	TOTEM_REMOTE_COMMAND_DVD_MENU,
	TOTEM_REMOTE_COMMAND_ZOOM_UP,
	TOTEM_REMOTE_COMMAND_ZOOM_DOWN,
	TOTEM_REMOTE_COMMAND_EJECT,
	TOTEM_REMOTE_COMMAND_PLAY_DVD,
	TOTEM_REMOTE_COMMAND_MUTE,
	TOTEM_REMOTE_COMMAND_TOGGLE_ASPECT
} TotemRemoteCommand;

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

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

typedef enum {
	TOTEM_REMOTE_SETTING_REPEAT
} TotemRemoteSetting;

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

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.


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.

totem :

a TotemObject

title :

the error dialog title

reason :

the error dialog text

totem_object_exit ()

void                totem_object_exit                   (TotemObject *totem);

Closes Totem.

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.

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.

totem :

a TotemObject

totem_object_stop ()

void                totem_object_stop                   (TotemObject *totem);

Stops the current stream.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

totem :

a TotemObject

Returns :

Totem's main window. [transfer full]

totem_object_get_ui_manager ()

GtkUIManager *      totem_object_get_ui_manager         (TotemObject *totem);

Gets Totem's UI manager, but does not change its reference count.

totem :

a TotemObject

Returns :

Totem's UI manager. [transfer none]

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().

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.

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.

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.

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.

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.

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.

totem :

a TotemObject

Returns :

the volume level

totem_object_add_sidebar_page ()

void                totem_object_add_sidebar_page       (TotemObject *totem,
                                                         const char *page_id,
                                                         const char *title,
                                                         GtkWidget *main_widget);

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.

totem :

a TotemObject

page_id :

a string used to identify the page

title :

the page's title

main_widget :

the main widget for the page

totem_object_remove_sidebar_page ()

void                totem_object_remove_sidebar_page    (TotemObject *totem,
                                                         const char *page_id);

Removes the page identified by page_id from Totem's sidebar. If page_id doesn't exist in the sidebar, this function does nothing.

totem :

a TotemObject

page_id :

a string used to identify the page

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

Property Details

The "current-content-type" property

  "current-content-type"     gchar*                : Read

The content-type of the current stream.

Default value: NULL


The "current-display-name" property

  "current-display-name"     gchar*                : Read

The display name of the current stream.

Default value: NULL


The "current-mrl" property

  "current-mrl"              gchar*                : Read

The MRL of the current stream.

Default value: NULL


The "current-time" property

  "current-time"             gint64                : Read

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

Default value: 0


The "fullscreen" property

  "fullscreen"               gboolean              : Read

If TRUE, Totem is in fullscreen mode.

Default value: FALSE


The "playing" property

  "playing"                  gboolean              : Read

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

Default value: FALSE


The "seekable" property

  "seekable"                 gboolean              : Read

If TRUE, the current stream is seekable.

Default value: FALSE


The "stream-length" property

  "stream-length"            gint64                : Read

The length of the current stream, in milliseconds.

Default value: 0

Signal Details

The "file-closed" signal

void                user_function                      (TotemObject *totem,
                                                        gpointer     user_data)      : Run Last

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

totem :

the TotemObject which received the signal

user_data :

user data set when the signal handler was connected.

The "file-has-played" signal

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

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

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.

The "file-opened" signal

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

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

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.

The "get-text-subtitle" signal

gchar*              user_function                      (TotemObject *totem,
                                                        gchar       *mrl,
                                                        gpointer     user_data)      : Run Last

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.

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

The "get-user-agent" signal

gchar*              user_function                      (TotemObject *totem,
                                                        gchar       *mrl,
                                                        gpointer     user_data)      : Run Last

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.

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

The "metadata-updated" signal

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

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

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.