diff options
author | waker <wakeroid@gmail.com> | 2012-04-08 15:18:36 +0200 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2012-04-08 15:18:36 +0200 |
commit | a8da758bc87d335036588644d3d03ca0418486ac (patch) | |
tree | f43b2cb28bc11d257f207071542f1dffed2f515e /plugins/converter | |
parent | 8ea040c539bb7a7d5da19559e744d6c70f2993d2 (diff) |
converter: fixed tag writing
Diffstat (limited to 'plugins/converter')
-rw-r--r-- | plugins/converter/callbacks.c | 1 | ||||
-rw-r--r-- | plugins/converter/callbacks.h | 4 | ||||
-rw-r--r-- | plugins/converter/converter.c | 5 | ||||
-rw-r--r-- | plugins/converter/converter.glade | 19 | ||||
-rw-r--r-- | plugins/converter/convgui.c | 13 | ||||
-rw-r--r-- | plugins/converter/interface.c | 8 |
6 files changed, 46 insertions, 4 deletions
diff --git a/plugins/converter/callbacks.c b/plugins/converter/callbacks.c index b8fb56d3..f609a9a1 100644 --- a/plugins/converter/callbacks.c +++ b/plugins/converter/callbacks.c @@ -9,3 +9,4 @@ #include "support.h" + diff --git a/plugins/converter/callbacks.h b/plugins/converter/callbacks.h index 7e323527..5bb84e85 100644 --- a/plugins/converter/callbacks.h +++ b/plugins/converter/callbacks.h @@ -122,3 +122,7 @@ on_preserve_folder_root_changed (GtkEditable *editable, void on_preserve_root_folder_changed (GtkEditable *editable, gpointer user_data); + +void +on_write_to_source_folder_toggled (GtkToggleButton *togglebutton, + gpointer user_data); diff --git a/plugins/converter/converter.c b/plugins/converter/converter.c index 62cbcf39..3d571f64 100644 --- a/plugins/converter/converter.c +++ b/plugins/converter/converter.c @@ -1019,8 +1019,7 @@ error: DB_playItem_t *out_it = NULL; if (encoder_preset->tag_id3v2 || encoder_preset->tag_id3v1 || encoder_preset->tag_apev2 || encoder_preset->tag_flac || encoder_preset->tag_oggvorbis) { - - DB_playItem_t *out_it = deadbeef->pl_item_alloc (); + out_it = deadbeef->pl_item_alloc (); deadbeef->pl_item_copy (out_it, it); deadbeef->pl_replace_meta (out_it, ":URI", out); deadbeef->pl_delete_meta (out_it, "cuesheet"); @@ -1038,7 +1037,7 @@ error: } if (tagflags) { - tagflags = JUNK_STRIP_ID3V2 | JUNK_STRIP_APEV2 | JUNK_STRIP_ID3V1; + tagflags |= JUNK_STRIP_ID3V2 | JUNK_STRIP_APEV2 | JUNK_STRIP_ID3V1; deadbeef->junk_rewrite_tags (out_it, tagflags, encoder_preset->id3v2_version + 3, "iso8859-1"); } diff --git a/plugins/converter/converter.glade b/plugins/converter/converter.glade index 0bc30b3a..521b1c2c 100644 --- a/plugins/converter/converter.glade +++ b/plugins/converter/converter.glade @@ -161,6 +161,25 @@ </child> <child> + <widget class="GtkCheckButton" id="write_to_source_folder"> + <property name="can_focus">True</property> + <property name="label" translatable="yes">Write to source track folder</property> + <property name="use_underline">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <property name="active">False</property> + <property name="inconsistent">False</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="on_write_to_source_folder_toggled" last_modification_time="Sun, 08 Apr 2012 12:54:30 GMT"/> + </widget> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + + <child> <widget class="GtkHBox" id="hbox100"> <property name="visible">True</property> <property name="homogeneous">False</property> diff --git a/plugins/converter/convgui.c b/plugins/converter/convgui.c index cfd217ae..2827c087 100644 --- a/plugins/converter/convgui.c +++ b/plugins/converter/convgui.c @@ -46,6 +46,7 @@ typedef struct { char *outfolder; char *outfile; int preserve_folder_structure; + int write_to_source_folder; int output_bps; int output_is_float; int overwrite_action; @@ -173,7 +174,7 @@ converter_worker (void *ctx) { char subpath[e-s+1]; memcpy (subpath, s, e-s); subpath[e-s] = 0; - snprintf (outfolder_preserve, sizeof (outfolder_preserve), "%s/%s", conv->outfolder, subpath); + snprintf (outfolder_preserve, sizeof (outfolder_preserve), "%s/%s", conv->outfolder[0] ? conv->outfolder : getenv("HOME"), subpath); } } @@ -240,6 +241,7 @@ converter_process (converter_ctx_t *conv) } conv->outfile = strdup (outfile); conv->preserve_folder_structure = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (lookup_widget (conv->converter, "preserve_folders"))); + conv->write_to_source_folder = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (lookup_widget (conv->converter, "write_to_source_folder"))); conv->overwrite_action = gtk_combo_box_get_active (GTK_COMBO_BOX (lookup_widget (conv->converter, "overwrite_action"))); GtkComboBox *combo = GTK_COMBO_BOX (lookup_widget (conv->converter, "output_format")); @@ -345,6 +347,7 @@ converter_show_cb (void *ctx) { gtk_entry_set_text (GTK_ENTRY (lookup_widget (conv->converter, "output_folder")), deadbeef->conf_get_str_fast ("converter.output_folder", "")); gtk_entry_set_text (GTK_ENTRY (lookup_widget (conv->converter, "output_file")), deadbeef->conf_get_str_fast ("converter.output_file", "")); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lookup_widget (conv->converter, "preserve_folders")), deadbeef->conf_get_int ("converter.preserve_folder_structure", 0)); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (lookup_widget (conv->converter, "write_to_source_folder")), deadbeef->conf_get_int ("converter.write_to_source_folder", 0)); gtk_combo_box_set_active (GTK_COMBO_BOX (lookup_widget (conv->converter, "overwrite_action")), deadbeef->conf_get_int ("converter.overwrite_action", 0)); deadbeef->conf_unlock (); @@ -551,6 +554,14 @@ on_preserve_folders_toggled (GtkToggleButton *togglebutton, deadbeef->conf_save (); } +void +on_write_to_source_folder_toggled (GtkToggleButton *togglebutton, + gpointer user_data) +{ + deadbeef->conf_set_int ("converter.write_to_source_folder", gtk_toggle_button_get_active (togglebutton)); +} + + DB_decoder_t * plug_get_decoder_for_id (const char *id) { DB_decoder_t **plugins = deadbeef->plug_get_decoder_list (); diff --git a/plugins/converter/interface.c b/plugins/converter/interface.c index 18509346..a24de750 100644 --- a/plugins/converter/interface.c +++ b/plugins/converter/interface.c @@ -37,6 +37,7 @@ create_converterdlg (void) GtkWidget *hbox68; GtkWidget *output_folder; GtkWidget *converter_output_browse; + GtkWidget *write_to_source_folder; GtkWidget *hbox100; GtkWidget *label122; GtkWidget *hbox101; @@ -105,6 +106,9 @@ create_converterdlg (void) gtk_widget_show (converter_output_browse); gtk_box_pack_start (GTK_BOX (hbox68), converter_output_browse, FALSE, FALSE, 0); + write_to_source_folder = gtk_check_button_new_with_mnemonic (_("Write to source track folder")); + gtk_box_pack_start (GTK_BOX (vbox26), write_to_source_folder, FALSE, FALSE, 0); + hbox100 = gtk_hbox_new (FALSE, 8); gtk_widget_show (hbox100); gtk_box_pack_start (GTK_BOX (vbox26), hbox100, TRUE, TRUE, 0); @@ -245,6 +249,9 @@ create_converterdlg (void) g_signal_connect ((gpointer) converter_output_browse, "clicked", G_CALLBACK (on_converter_output_browse_clicked), NULL); + g_signal_connect ((gpointer) write_to_source_folder, "toggled", + G_CALLBACK (on_write_to_source_folder_toggled), + NULL); g_signal_connect ((gpointer) output_file, "changed", G_CALLBACK (on_output_file_changed), NULL); @@ -282,6 +289,7 @@ create_converterdlg (void) GLADE_HOOKUP_OBJECT (converterdlg, hbox68, "hbox68"); GLADE_HOOKUP_OBJECT (converterdlg, output_folder, "output_folder"); GLADE_HOOKUP_OBJECT (converterdlg, converter_output_browse, "converter_output_browse"); + GLADE_HOOKUP_OBJECT (converterdlg, write_to_source_folder, "write_to_source_folder"); GLADE_HOOKUP_OBJECT (converterdlg, hbox100, "hbox100"); GLADE_HOOKUP_OBJECT (converterdlg, label122, "label122"); GLADE_HOOKUP_OBJECT (converterdlg, hbox101, "hbox101"); |