aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Daniel <random.mister@gmail.com>2011-04-23 16:31:43 +0100
committerGravatar Alex Bennee <alex@bennee.com>2011-04-23 16:32:00 +0100
commit90d2930aacda57538f1e9e05acc18e8e80481de3 (patch)
treeecb839619a58cf7e80d5342b5fda094fc7bfd42a
parent30a13ab5271ed2ec11a2b876c70c5cdce8b4276c (diff)
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 <random.mister@gmail.com>
-rw-r--r--src/id3_tag.c2
-rw-r--r--src/id3v24_tag.c2
-rw-r--r--src/prefs.c9
-rw-r--r--src/prefs.h1
-rw-r--r--src/setting.c1
-rw-r--r--src/setting.h1
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;