diff options
author | Luis de Bethencourt <luis.debethencourt@collabora.com> | 2011-05-13 19:22:20 +0200 |
---|---|---|
committer | Luis de Bethencourt <luis@debethencourt.com> | 2011-05-13 19:23:22 +0200 |
commit | 16855d966cdbd576593770d32d4def2d83b10c81 (patch) | |
tree | 80d2634568ddd8336e332117a46703173a1be616 | |
parent | 698d0736321b063c078287b863323d73bdd1cbba (diff) |
general: -r prints recent played URIs
added the -r / --recent option to display recent played URIs.
-rw-r--r-- | src/gst_engine.c | 24 | ||||
-rw-r--r-- | src/gst_engine.h | 1 | ||||
-rw-r--r-- | src/snappy.c | 17 |
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; |