summaryrefslogtreecommitdiff
path: root/plugins/converter
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2012-04-08 15:18:36 +0200
committerGravatar waker <wakeroid@gmail.com>2012-04-08 15:18:36 +0200
commita8da758bc87d335036588644d3d03ca0418486ac (patch)
treef43b2cb28bc11d257f207071542f1dffed2f515e /plugins/converter
parent8ea040c539bb7a7d5da19559e744d6c70f2993d2 (diff)
converter: fixed tag writing
Diffstat (limited to 'plugins/converter')
-rw-r--r--plugins/converter/callbacks.c1
-rw-r--r--plugins/converter/callbacks.h4
-rw-r--r--plugins/converter/converter.c5
-rw-r--r--plugins/converter/converter.glade19
-rw-r--r--plugins/converter/convgui.c13
-rw-r--r--plugins/converter/interface.c8
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");