aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/scan.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/scan.c')
-rw-r--r--src/scan.c40
1 files changed, 37 insertions, 3 deletions
diff --git a/src/scan.c b/src/scan.c
index c0cb13f..b41769c 100644
--- a/src/scan.c
+++ b/src/scan.c
@@ -67,6 +67,7 @@ GtkListStore *ScanTagListModel;
GtkWidget *ProcessFileNameField;
GtkWidget *ProcessTitleField;
GtkWidget *ProcessArtistField;
+GtkWidget *ProcessAlbumArtistField;
GtkWidget *ProcessAlbumField;
GtkWidget *ProcessGenreField;
GtkWidget *ProcessCommentField;
@@ -1162,6 +1163,23 @@ void Scan_Process_Fields (ET_File *ETFile)
g_free(string);
}
+ // Album Artist field
+ if (st_filetag->album_artist && GTK_TOGGLE_BUTTON(ProcessAlbumArtistField)->active)
+ {
+ if (!FileTag)
+ {
+ FileTag = ET_File_Tag_Item_New();
+ ET_Copy_File_Tag_Item(ETFile,FileTag);
+ }
+
+ string = g_strdup(st_filetag->album_artist);
+
+ Scan_Process_Fields_Functions(&string);
+
+ ET_Set_Field_File_Tag_Item(&FileTag->album_artist,string);
+
+ g_free(string);
+ }
// Album field
if (st_filetag->album && GTK_TOGGLE_BUTTON(ProcessAlbumField)->active)
{
@@ -2238,6 +2256,8 @@ gchar **Scan_Return_File_Tag_Field_From_Mask_Code (File_Tag *FileTag, gchar code
return &FileTag->url;
case 'e': /* Encoded by */
return &FileTag->encoded_by;
+ case 'z': /* Album Artist */
+ return &FileTag->album_artist;
case 'i': /* Ignored */
return NULL;
default:
@@ -2550,7 +2570,10 @@ void Open_ScannerWindow (gint scanner_type)
// Advice for Translators : set the first letter of artist translated
ProcessArtistField = gtk_toggle_button_new_with_label( _("Ar"));
gtk_tooltips_set_tip(Tips,ProcessArtistField, _("Process file artist field"),NULL);
- // Advice for Translators : set the first letter of album translated
+ // Advice for Translators : set the first letter of album artist translated
+ ProcessAlbumArtistField = gtk_toggle_button_new_with_label( _("AA"));
+ gtk_tooltips_set_tip(Tips,ProcessAlbumArtistField, _("Process album artist field"),NULL);
+ // Advice for Translators : set the first letter of album translated
ProcessAlbumField = gtk_toggle_button_new_with_label( _("Al"));
gtk_tooltips_set_tip(Tips,ProcessAlbumField, _("Process album field"),NULL);
// Advice for Translators : set the first letter of genre translated
@@ -2577,6 +2600,7 @@ void Open_ScannerWindow (gint scanner_type)
gtk_box_pack_start(GTK_BOX(hbox),ProcessFileNameField, TRUE,TRUE,2);
gtk_box_pack_start(GTK_BOX(hbox),ProcessTitleField, TRUE,TRUE,2);
gtk_box_pack_start(GTK_BOX(hbox),ProcessArtistField, TRUE,TRUE,2);
+ gtk_box_pack_start(GTK_BOX(hbox),ProcessAlbumArtistField,TRUE,TRUE,2);
gtk_box_pack_start(GTK_BOX(hbox),ProcessAlbumField, TRUE,TRUE,2);
gtk_box_pack_start(GTK_BOX(hbox),ProcessGenreField, TRUE,TRUE,2);
gtk_box_pack_start(GTK_BOX(hbox),ProcessCommentField, TRUE,TRUE,2);
@@ -2588,6 +2612,7 @@ void Open_ScannerWindow (gint scanner_type)
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessFileNameField), PROCESS_FILENAME_FIELD);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessTitleField), PROCESS_TITLE_FIELD);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessArtistField), PROCESS_ARTIST_FIELD);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessAlbumArtistField),PROCESS_ALBUM_ARTIST_FIELD);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessAlbumField), PROCESS_ALBUM_FIELD);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessGenreField), PROCESS_GENRE_FIELD);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessCommentField), PROCESS_COMMENT_FIELD);
@@ -2599,6 +2624,7 @@ void Open_ScannerWindow (gint scanner_type)
g_signal_connect(G_OBJECT(ProcessFileNameField), "toggled",G_CALLBACK(Select_Fields_Set_Sensitive),NULL);
g_signal_connect(G_OBJECT(ProcessTitleField), "toggled",G_CALLBACK(Select_Fields_Set_Sensitive),NULL);
g_signal_connect(G_OBJECT(ProcessArtistField), "toggled",G_CALLBACK(Select_Fields_Set_Sensitive),NULL);
+ g_signal_connect(G_OBJECT(ProcessAlbumArtistField),"toggled",G_CALLBACK(Select_Fields_Set_Sensitive),NULL);
g_signal_connect(G_OBJECT(ProcessAlbumField), "toggled",G_CALLBACK(Select_Fields_Set_Sensitive),NULL);
g_signal_connect(G_OBJECT(ProcessGenreField), "toggled",G_CALLBACK(Select_Fields_Set_Sensitive),NULL);
g_signal_connect(G_OBJECT(ProcessCommentField), "toggled",G_CALLBACK(Select_Fields_Set_Sensitive),NULL);
@@ -2780,12 +2806,15 @@ void Open_ScannerWindow (gint scanner_type)
Label = gtk_label_new(_("%a : artist"));
gtk_table_attach_defaults(GTK_TABLE(Table),Label,0,1,0,1);
gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
- Label = gtk_label_new(_("%b : album"));
+ Label = gtk_label_new(_("%z : album artist"));
gtk_table_attach_defaults(GTK_TABLE(Table),Label,0,1,1,2);
gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
- Label = gtk_label_new(_("%c : comment"));
+ Label = gtk_label_new(_("%b : album"));
gtk_table_attach_defaults(GTK_TABLE(Table),Label,0,1,2,3);
gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
+ Label = gtk_label_new(_("%c : comment"));
+ gtk_table_attach_defaults(GTK_TABLE(Table),Label,0,1,3,4);
+ gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
Label = gtk_label_new(_("%p : composer"));
gtk_table_attach_defaults(GTK_TABLE(Table),Label,0,1,3,4);
gtk_misc_set_alignment(GTK_MISC(Label),0,0.5);
@@ -3092,6 +3121,7 @@ void ScannerWindow_Apply_Changes (void)
PROCESS_FILENAME_FIELD = GTK_TOGGLE_BUTTON(ProcessFileNameField)->active;
PROCESS_TITLE_FIELD = GTK_TOGGLE_BUTTON(ProcessTitleField)->active;
PROCESS_ARTIST_FIELD = GTK_TOGGLE_BUTTON(ProcessArtistField)->active;
+ PROCESS_ALBUM_ARTIST_FIELD= GTK_TOGGLE_BUTTON(ProcessAlbumArtistField)->active;
PROCESS_ALBUM_FIELD = GTK_TOGGLE_BUTTON(ProcessAlbumField)->active;
PROCESS_GENRE_FIELD = GTK_TOGGLE_BUTTON(ProcessGenreField)->active;
PROCESS_COMMENT_FIELD = GTK_TOGGLE_BUTTON(ProcessCommentField)->active;
@@ -3378,6 +3408,8 @@ void Select_Fields_Invert_Selection (void)
!GTK_TOGGLE_BUTTON(ProcessTitleField)->active);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessArtistField),
!GTK_TOGGLE_BUTTON(ProcessArtistField)->active);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessAlbumArtistField),
+ !GTK_TOGGLE_BUTTON(ProcessAlbumArtistField)->active);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessAlbumField),
!GTK_TOGGLE_BUTTON(ProcessAlbumField)->active);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessGenreField),
@@ -3402,6 +3434,7 @@ void Select_Fields_Select_Unselect_All (void)
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessFileNameField), state);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessTitleField), state);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessArtistField), state);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessAlbumArtistField),state);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessAlbumField), state);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessGenreField), state);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(ProcessCommentField), state);
@@ -3421,6 +3454,7 @@ void Select_Fields_Set_Sensitive (void)
if (GTK_TOGGLE_BUTTON(ProcessFileNameField)->active
|| GTK_TOGGLE_BUTTON(ProcessTitleField)->active
|| GTK_TOGGLE_BUTTON(ProcessArtistField)->active
+ || GTK_TOGGLE_BUTTON(ProcessAlbumArtistField)->active
|| GTK_TOGGLE_BUTTON(ProcessAlbumField)->active
|| GTK_TOGGLE_BUTTON(ProcessGenreField)->active
|| GTK_TOGGLE_BUTTON(ProcessCommentField)->active