[Xfce4-commits] <parole:master> Save stream tags when stream playback finished, should be safer.
Ali Abdallah
noreply at xfce.org
Sat Nov 21 14:34:02 CET 2009
Updating branch refs/heads/master
to 6b8227e356147a92c141cf9e5269fe79b5d68443 (commit)
from 11b9a581afb233fb71a64c2fbebaa672d65e6353 (commit)
commit 6b8227e356147a92c141cf9e5269fe79b5d68443
Author: Ali Abdallah <ali at ali-xfce.org>
Date: Fri Nov 20 15:50:21 2009 +0100
Save stream tags when stream playback finished, should be safer.
plugins/properties/stream-properties.c | 21 ++++++++++++++++++++-
1 files changed, 20 insertions(+), 1 deletions(-)
diff --git a/plugins/properties/stream-properties.c b/plugins/properties/stream-properties.c
index f49f331..27f30e7 100644
--- a/plugins/properties/stream-properties.c
+++ b/plugins/properties/stream-properties.c
@@ -47,6 +47,7 @@ typedef struct
TagLib_File *tag_file;
gchar *filename;
guint changed;
+ gboolean need_save;
#endif
gboolean block_edit_signal;
@@ -126,6 +127,7 @@ init_media_tag_entries (PluginData *data)
#ifdef HAVE_TAGLIBC
gtk_widget_set_tooltip_text (data->save, NULL);
data->changed = 0;
+ data->need_save = FALSE;
if ( data->filename )
{
g_free (data->filename);
@@ -151,6 +153,9 @@ save_media_tags (PluginData *data)
if ( !data->tag_file )
return;
+ if ( !data->need_save )
+ return;
+
tag = taglib_file_tag (data->tag_file);
if ( !tag )
@@ -192,11 +197,21 @@ save_media_tags (PluginData *data)
taglib_file_save (data->tag_file);
data->changed = 0;
+ data->need_save = FALSE;
taglib_tag_free_strings ();
}
#endif
+
+#ifdef HAVE_TAGLIBC
+static void
+save_media_clicked_cb (PluginData *data)
+{
+ data->need_save = TRUE;
+}
+#endif
+
static GtkWidget *create_properties_widget (PluginData *data)
{
PangoFontDescription *pfd;
@@ -319,7 +334,7 @@ static GtkWidget *create_properties_widget (PluginData *data)
2, 8);
g_signal_connect_swapped (data->save, "clicked",
- G_CALLBACK (save_media_tags), data);
+ G_CALLBACK (save_media_clicked_cb), data);
g_signal_connect_swapped (data->title, "changed",
G_CALLBACK (title_entry_edited), data);
@@ -342,6 +357,10 @@ static GtkWidget *create_properties_widget (PluginData *data)
static void
state_changed_cb (ParolePlugin *plugin, const ParoleStream *stream, ParoleState state, PluginData *data)
{
+#ifdef HAVE_TAGLIBC
+ save_media_tags (data);
+#endif
+
if ( state <= PAROLE_STATE_PLAYBACK_FINISHED )
init_media_tag_entries (data);
}
More information about the Xfce4-commits
mailing list