summaryrefslogtreecommitdiff
path: root/src/totem-object.c
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2019-02-23 00:48:33 +0100
committerBastien Nocera <hadess@hadess.net>2019-02-23 16:12:26 +0000
commit6e03fd3f36bb36081db41213feed68b78773430e (patch)
treef36dde846d07dd98118d130dbb4fdc451d04846d /src/totem-object.c
parenta134dd051486e6dec7e69085035c508fc86ca8ee (diff)
downloadtotem-6e03fd3f36bb36081db41213feed68b78773430e.tar.gz
main: Add a useful totem_object_stop() API
Which behaves like the Stop button on a CD player.
Diffstat (limited to 'src/totem-object.c')
-rw-r--r--src/totem-object.c41
1 files changed, 26 insertions, 15 deletions
diff --git a/src/totem-object.c b/src/totem-object.c
index f97c7d040..3a02c7e61 100644
--- a/src/totem-object.c
+++ b/src/totem-object.c
@@ -1574,6 +1574,30 @@ totem_object_play_pause (TotemObject *totem)
}
/**
+ * totem_object_stop:
+ * @totem: a #TotemObject
+ *
+ * Stops playback, and sets the playlist back at the start.
+ */
+void
+totem_object_stop (TotemObject *totem)
+{
+ char *mrl, *subtitle;
+
+ totem_playlist_set_at_start (totem->playlist);
+ update_buttons (totem);
+ bacon_video_widget_stop (totem->bvw);
+ play_pause_set_label (totem, STATE_STOPPED);
+ mrl = totem_playlist_get_current_mrl (totem->playlist, &subtitle);
+ if (mrl != NULL) {
+ totem_object_set_mrl (totem, mrl, subtitle);
+ bacon_video_widget_pause (totem->bvw);
+ g_free (mrl);
+ g_free (subtitle);
+ }
+}
+
+/**
* totem_object_pause:
* @totem: a #TotemObject
*
@@ -2807,22 +2831,9 @@ totem_object_remote_command (TotemObject *totem, TotemRemoteCommand cmd, const c
case TOTEM_REMOTE_COMMAND_PAUSE:
totem_object_pause (totem);
break;
- case TOTEM_REMOTE_COMMAND_STOP: {
- char *mrl, *subtitle;
-
- totem_playlist_set_at_start (totem->playlist);
- update_buttons (totem);
- bacon_video_widget_stop (totem->bvw);
- play_pause_set_label (totem, STATE_STOPPED);
- mrl = totem_playlist_get_current_mrl (totem->playlist, &subtitle);
- if (mrl != NULL) {
- totem_object_set_mrl (totem, mrl, subtitle);
- bacon_video_widget_pause (totem->bvw);
- g_free (mrl);
- g_free (subtitle);
- }
+ case TOTEM_REMOTE_COMMAND_STOP:
+ totem_object_stop (totem);
break;
- };
case TOTEM_REMOTE_COMMAND_SEEK_FORWARD: {
double offset = 0;