summaryrefslogtreecommitdiff
path: root/plugins/gtkui
diff options
context:
space:
mode:
authorGravatar Alexey Yakovenko <wakeroid@gmail.com>2010-03-28 14:06:46 +0200
committerGravatar Alexey Yakovenko <wakeroid@gmail.com>2010-03-28 14:06:46 +0200
commitf5d56e5257193e21483135a3595fab52862d629c (patch)
tree473dabb531c6fd994ed1383ca70a29910cb8ea3f /plugins/gtkui
parent3e8bb0dcf945a1e8c741f2a134f59c2695634bbf (diff)
added id3v2.3 text frame editing support
Diffstat (limited to 'plugins/gtkui')
-rw-r--r--plugins/gtkui/trkproperties.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/plugins/gtkui/trkproperties.c b/plugins/gtkui/trkproperties.c
index 216f414e..287da90c 100644
--- a/plugins/gtkui/trkproperties.c
+++ b/plugins/gtkui/trkproperties.c
@@ -198,7 +198,11 @@ void
on_write_tags_clicked (GtkButton *button,
gpointer user_data)
{
- return;
+ fprintf (stderr, "on_write_tags_clicked\n");
+ if (!deadbeef->conf_get_int ("enable_tag_writing", 0)) {
+ fprintf (stderr, "tag writing disabled\n");
+ return;
+ }
DB_id3v2_tag_t tag;
memset (&tag, 0, sizeof (tag));
DB_FILE *fp = deadbeef->fopen (track->fname);
@@ -207,11 +211,25 @@ on_write_tags_clicked (GtkButton *button,
fprintf (stderr, "failed to read tags from %s\n", track->fname);
goto error;
}
+ fprintf (stderr, "writing id3v2.%d.%d\n", tag.version[0], tag.version[1]);
+ if (tag.version[0] == 3) {
+ // remove frames
+ deadbeef->junk_id3v2_remove_frames (&tag, "TPE1");
+ deadbeef->junk_id3v2_remove_frames (&tag, "TIT2");
+
+ // add frames
+ deadbeef->junk_id3v2_add_text_frame_23 (&tag, "TPE1", "test title");
+ deadbeef->junk_id3v2_add_text_frame_23 (&tag, "TIT2", "название на русском");
+ }
+
if (deadbeef->junk_write_id3v2 (track->fname, &tag) < 0) {
fprintf (stderr, "failed to write tags to %s\n", track->fname);
goto error;
}
}
+ else {
+ fprintf (stderr, "failed to open %s\n", track->fname);
+ }
error:
if (fp) {
deadbeef->fclose (fp);