summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuis de Bethencourt <luis.debethencourt@collabora.com>2011-05-13 19:22:20 +0200
committerLuis de Bethencourt <luis@debethencourt.com>2011-05-13 19:23:22 +0200
commit16855d966cdbd576593770d32d4def2d83b10c81 (patch)
tree80d2634568ddd8336e332117a46703173a1be616
parent698d0736321b063c078287b863323d73bdd1cbba (diff)
general: -r prints recent played URIs
added the -r / --recent option to display recent played URIs.
-rw-r--r--src/gst_engine.c24
-rw-r--r--src/gst_engine.h1
-rw-r--r--src/snappy.c17
3 files changed, 41 insertions, 1 deletions
diff --git a/src/gst_engine.c b/src/gst_engine.c
index 8b75979..4771528 100644
--- a/src/gst_engine.c
+++ b/src/gst_engine.c
@@ -442,6 +442,30 @@ frame_stepping (GstEngine * engine, gboolean foward)
return FALSE;
}
+gchar **
+get_recently_played ()
+{
+ const gchar *config_dir;
+ gchar *path;
+ gchar **recent = NULL;
+ gsize length;
+ GKeyFile *keyfile;
+ GKeyFileFlags flags;
+
+ keyfile = g_key_file_new ();
+ flags = G_KEY_FILE_KEEP_COMMENTS;
+
+ // config file path
+ config_dir = g_get_user_config_dir ();
+ path = g_strdup_printf ("%s/snappy/history", config_dir);
+
+ if (g_key_file_load_from_file (keyfile, path, flags, NULL))
+ if (g_key_file_has_group (keyfile, "history"))
+ recent = g_key_file_get_keys (keyfile, "history", &length, NULL);
+
+ return recent;
+}
+
GstState
get_state (GstEngine * engine)
{
diff --git a/src/gst_engine.h b/src/gst_engine.h
index 64f0582..5fb291e 100644
--- a/src/gst_engine.h
+++ b/src/gst_engine.h
@@ -52,6 +52,7 @@ gboolean bus_call (GstBus * bus, GstMessage * msg, gpointer data);
gboolean engine_init (GstEngine * engine, GstElement * sink);
gboolean engine_load_uri (GstEngine * engine, gchar * uri);
gboolean frame_stepping (GstEngine * engine, gboolean foward);
+gchar **get_recently_played ();
GstState get_state (GstEngine * engine);
gint64 query_position (GstEngine * engine);
gboolean seek (GstEngine * engine, gint64 position);
diff --git a/src/snappy.c b/src/snappy.c
index 33e0573..bb7e062 100644
--- a/src/snappy.c
+++ b/src/snappy.c
@@ -69,11 +69,13 @@ gboolean
process_args (int argc, char *argv[],
gchar * file_list[], gboolean * fullscreen, GOptionContext * context)
{
- gboolean version = FALSE;
+ gboolean recent = FALSE, version = FALSE;
guint c, index, pos = 0;
GOptionEntry entries[] = {
{"fullscreen", 'f', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, fullscreen,
"Fullscreen mode", NULL},
+ {"recent", 'r', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &recent,
+ "Recently played", NULL},
{"version", 'v', G_OPTION_FLAG_IN_MAIN, G_OPTION_ARG_NONE, &version,
"Print version", NULL},
{NULL}
@@ -91,6 +93,19 @@ process_args (int argc, char *argv[],
goto quit;
}
+ if (recent) {
+ gchar **recent = NULL;
+
+ g_print ("These are the recently played URIs: \n\n");
+
+ recent = get_recently_played ();
+
+ for (c = 0; recent[c] != NULL; c++)
+ g_print ("%d: %s \n", c + 1, recent[c]);
+
+ goto quit;
+ }
+
if (version) {
g_print ("snappy version %s\n", VERSION);
goto quit;