From 90d2930aacda57538f1e9e05acc18e8e80481de3 Mon Sep 17 00:00:00 2001 From: Daniel Date: Sat, 23 Apr 2011 16:31:43 +0100 Subject: Add option to make genre tags as "Text Only" Quoth Daniel: "I also have a patch which sets the genre tag as a string instead of the genre number. This number is not probably handled by iTunes (it shows the number, not the actual genre name). I've added it as a attachment." This is controlled by an option in the ID3 preferences tab Written-By: Daniel --- src/id3_tag.c | 2 +- src/id3v24_tag.c | 2 +- src/prefs.c | 9 +++++++++ src/prefs.h | 1 + src/setting.c | 1 + src/setting.h | 1 + 6 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/id3_tag.c b/src/id3_tag.c index 4956179..1e9ebba 100644 --- a/src/id3_tag.c +++ b/src/id3_tag.c @@ -290,7 +290,7 @@ gboolean Id3tag_Write_File_v23Tag (ET_File *ETFile) genre_value = Id3tag_String_To_Genre(FileTag->genre); // If genre not defined don't write genre value between brackets! (priority problem noted with some tools) - if (genre_value == ID3_INVALID_GENRE) + if ((genre_value == ID3_INVALID_GENRE)||(FILE_WRITING_ID3V2_TEXT_ONLY_GENRE)) genre_string_tmp = g_strdup_printf("%s",FileTag->genre); else genre_string_tmp = g_strdup_printf("(%d)",genre_value); diff --git a/src/id3v24_tag.c b/src/id3v24_tag.c index 823a5b6..82d1355 100644 --- a/src/id3v24_tag.c +++ b/src/id3v24_tag.c @@ -921,7 +921,7 @@ gboolean Id3tag_Write_File_v24Tag (ET_File *ETFile) if (FileTag->genre) genre_value = Id3tag_String_To_Genre(FileTag->genre); - if (genre_value == ID3_INVALID_GENRE) + if ((genre_value == ID3_INVALID_GENRE)||(FILE_WRITING_ID3V2_TEXT_ONLY_GENRE)) string1 = g_strdup(FileTag->genre); else string1 = g_strdup_printf("%d",genre_value); diff --git a/src/prefs.c b/src/prefs.c index c6eae7f..97ecc30 100644 --- a/src/prefs.c +++ b/src/prefs.c @@ -713,6 +713,12 @@ void Open_OptionsWindow (void) gtk_table_attach(GTK_TABLE(Table),FileWritingId3v2UseCompression,1,2,1,2,GTK_FILL,GTK_FILL,0,0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FileWritingId3v2UseCompression),FILE_WRITING_ID3V2_USE_COMPRESSION); gtk_tooltips_set_tip(Tips,FileWritingId3v2UseCompression,_("Set Compression in the ID3v2 tags"),NULL); + + /* Write Genre in text */ + FileWritingId3v2TextOnlyGenre = gtk_check_button_new_with_label(_("Write Genre in text only")); + gtk_table_attach(GTK_TABLE(Table),FileWritingId3v2TextOnlyGenre,1,2,2,3,GTK_FILL,GTK_FILL,0,0); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(FileWritingId3v2TextOnlyGenre),FILE_WRITING_ID3V2_TEXT_ONLY_GENRE); + gtk_tooltips_set_tip(Tips,FileWritingId3v2TextOnlyGenre,_("Don't use ID3v1 number references in genre tag. Enable this if you see numbers as genre in your music player."),NULL); /* Character Set for writing ID3 tag */ Frame = gtk_frame_new (_("Character Set for writing ID3 tags")); @@ -1511,6 +1517,7 @@ void Change_Id3_Settings_Toggled (void) || !FileWritingId3v2IconvOptionsIgnore || !FileWritingId3v2UseCrc32 || !FileWritingId3v2UseCompression + || !FileWritingId3v2TextOnlyGenre || !ConvertOldId3v2TagVersion || !LabelId3v1Charset || !FileWritingId3v1CharacterSetCombo @@ -1553,6 +1560,7 @@ void Change_Id3_Settings_Toggled (void) gtk_widget_set_sensitive(FileWritingId3v2IconvOptionsIgnore, !active); gtk_widget_set_sensitive(FileWritingId3v2UseCrc32, TRUE); gtk_widget_set_sensitive(FileWritingId3v2UseCompression, TRUE); + gtk_widget_set_sensitive(FileWritingId3v2TextOnlyGenre, TRUE); gtk_widget_set_sensitive(ConvertOldId3v2TagVersion, TRUE); }else @@ -1572,6 +1580,7 @@ void Change_Id3_Settings_Toggled (void) gtk_widget_set_sensitive(FileWritingId3v2IconvOptionsIgnore, FALSE); gtk_widget_set_sensitive(FileWritingId3v2UseCrc32, FALSE); gtk_widget_set_sensitive(FileWritingId3v2UseCompression, FALSE); + gtk_widget_set_sensitive(FileWritingId3v2TextOnlyGenre, FALSE); gtk_widget_set_sensitive(ConvertOldId3v2TagVersion, 0); } diff --git a/src/prefs.h b/src/prefs.h index 5c1e122..b190224 100644 --- a/src/prefs.h +++ b/src/prefs.h @@ -79,6 +79,7 @@ GtkWidget *FileWritingId3v1WriteTag; GtkWidget *WriteId3TagsInFlacFiles; GtkWidget *FileWritingId3v2UseCrc32; GtkWidget *FileWritingId3v2UseCompression; +GtkWidget *FileWritingId3v2TextOnlyGenre; GtkWidget *StripTagWhenEmptyFields; GtkWidget *ConvertOldId3v2TagVersion; diff --git a/src/setting.c b/src/setting.c index 8a368d9..7955541 100644 --- a/src/setting.c +++ b/src/setting.c @@ -710,6 +710,7 @@ void Apply_Changes_Of_Preferences_Window (void) FILE_WRITING_ID3V2_WRITE_TAG = GTK_TOGGLE_BUTTON(FileWritingId3v2WriteTag)->active; FILE_WRITING_ID3V2_USE_CRC32 = GTK_TOGGLE_BUTTON(FileWritingId3v2UseCrc32)->active; FILE_WRITING_ID3V2_USE_COMPRESSION = GTK_TOGGLE_BUTTON(FileWritingId3v2UseCompression)->active; + FILE_WRITING_ID3V2_TEXT_ONLY_GENRE = GTK_TOGGLE_BUTTON(FileWritingId3v2TextOnlyGenre)->active; FILE_WRITING_ID3V2_USE_UNICODE_CHARACTER_SET = GTK_TOGGLE_BUTTON(FileWritingId3v2UseUnicodeCharacterSet)->active; active = gtk_combo_box_get_active(GTK_COMBO_BOX(FileWritingId3v2UnicodeCharacterSetCombo)); diff --git a/src/setting.h b/src/setting.h index 2d8d163..a86b3e1 100644 --- a/src/setting.h +++ b/src/setting.h @@ -107,6 +107,7 @@ gchar *FILE_READING_ID3V1V2_CHARACTER_SET; gint FILE_WRITING_ID3V2_WRITE_TAG; gint FILE_WRITING_ID3V2_USE_CRC32; gint FILE_WRITING_ID3V2_USE_COMPRESSION; +gint FILE_WRITING_ID3V2_TEXT_ONLY_GENRE; gint FILE_WRITING_ID3V2_USE_UNICODE_CHARACTER_SET; gchar *FILE_WRITING_ID3V2_UNICODE_CHARACTER_SET; gchar *FILE_WRITING_ID3V2_NO_UNICODE_CHARACTER_SET; -- cgit v1.2.3