From 6e47ec49dfbf7541842460e93880fc3203829860 Mon Sep 17 00:00:00 2001 From: Bryan Schumaker Date: Mon, 22 Aug 2011 08:27:34 -0400 Subject: [PATCH] libsaria: Added a stop function I stop playback, and seek to the beginning. I do this as to different function calls in the Libsaria class so callbacks will still trigger (once they have been implemented). --- include/libsaria/audio.h | 1 + include/libsaria/libsaria.h | 2 ++ libsaria/audio/controls.cpp | 13 +++++++++++++ libsaria/controls.cpp | 11 +++++++++++ 4 files changed, 27 insertions(+) diff --git a/include/libsaria/audio.h b/include/libsaria/audio.h index 3066449f..43697cd5 100644 --- a/include/libsaria/audio.h +++ b/include/libsaria/audio.h @@ -27,6 +27,7 @@ class Audio /* Control functions */ void play(); void pause(); + void seek(); }; void audio_init(int, char **); diff --git a/include/libsaria/libsaria.h b/include/libsaria/libsaria.h index f469a875..f95918b7 100644 --- a/include/libsaria/libsaria.h +++ b/include/libsaria/libsaria.h @@ -16,6 +16,8 @@ class Libsaria /* Control functions */ void play(); void pause(); + void stop(); + void seek(); }; class Libsaria *libsaria_get(); diff --git a/libsaria/audio/controls.cpp b/libsaria/audio/controls.cpp index ad1be539..49db47c7 100644 --- a/libsaria/audio/controls.cpp +++ b/libsaria/audio/controls.cpp @@ -15,3 +15,16 @@ void Audio::pause() { change_state(GST_STATE_PAUSED); } + +/* + * Right now I just seek to the beginning of the song. + * Eventually I should allow the user to seek anywhere. + */ +void Audio::seek() +{ + gst_element_seek_simple(GST_ELEMENT(player), + GST_FORMAT_TIME, + GST_SEEK_FLAG_FLUSH, + // Convert seconds to nano-seconds + 0 * GST_SECOND); +} diff --git a/libsaria/controls.cpp b/libsaria/controls.cpp index f892c04c..c5b81402 100644 --- a/libsaria/controls.cpp +++ b/libsaria/controls.cpp @@ -11,3 +11,14 @@ void Libsaria::pause() { audio.pause(); } + +void Libsaria::stop() +{ + pause(); + seek(); +} + +void Libsaria::seek() +{ + audio.seek(); +}