changeset 618:a7a28782c1b0 trunk

[svn] - revise input_id3_get_string() to take encoding of field into account. - restore title_override options I accidentally dropped. - remove unnecessary code.
author yaz
date Wed, 07 Feb 2007 23:31:26 -0800
parents 312bc3bb686e
children ca4cd00ca0c8
files ChangeLog src/madplug/configure.c src/madplug/input.c src/madplug/plugin.c
diffstat 4 files changed, 40 insertions(+), 141 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Feb 07 18:26:47 2007 -0800
+++ b/ChangeLog	Wed Feb 07 23:31:26 2007 -0800
@@ -1,3 +1,10 @@
+2007-02-08 02:26:47 +0000  Giacomo Lozito <james@develia.org>
+  revision [1320]
+  - aosd: added window class hints (aosd.Audacious)
+  trunk/src/aosd/ghosd.c |   16 +++++++++++-----
+  1 file changed, 11 insertions(+), 5 deletions(-)
+
+
 2007-02-08 01:46:12 +0000  Giacomo Lozito <james@develia.org>
   revision [1318]
   - aosd: added _NET_WM_WINDOW_TYPE_DOCK to osd window hints
--- a/src/madplug/configure.c	Wed Feb 07 18:26:47 2007 -0800
+++ b/src/madplug/configure.c	Wed Feb 07 23:31:26 2007 -0800
@@ -105,116 +105,6 @@
     gtk_widget_set_sensitive(title_tag_desc, override);
 }
 
-#if 0
-// derived from xmms-mad.
-void audmad_configure(void)
-{
-    GtkWidget *bbox, *ok, *cancel;
-    GtkWidget *label, *RG_default_hbox, *pregain_hbox;
-
-    if (configure_win != NULL) {
-        gdk_window_raise(configure_win->window);
-        return;
-    }
-
-    configure_win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-    gtk_signal_connect(GTK_OBJECT(configure_win), "destroy",
-                       GTK_SIGNAL_FUNC(gtk_widget_destroyed),
-                       &configure_win);
-    gtk_signal_connect(GTK_OBJECT(configure_win), "destroy",
-                       GTK_SIGNAL_FUNC(configure_destroy), &configure_win);
-    gtk_window_set_title(GTK_WINDOW(configure_win),
-                         "MAD Input Plugin Configuration");
-    gtk_window_set_policy(GTK_WINDOW(configure_win), FALSE, FALSE, FALSE);
-    gtk_container_border_width(GTK_CONTAINER(configure_win), 10);
-
-    vbox = gtk_vbox_new(FALSE, 10);
-    gtk_container_add(GTK_CONTAINER(configure_win), vbox);
-
-    fast_playback =
-        gtk_check_button_new_with_label("Use fast playtime calculation");
-    gtk_box_pack_start(GTK_BOX(vbox), fast_playback, TRUE, TRUE, 0);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(fast_playback),
-                                 audmad_config.fast_play_time_calc);
-
-    use_xing = gtk_check_button_new_with_label("Parse XING headers");
-    gtk_box_pack_start(GTK_BOX(vbox), use_xing, TRUE, TRUE, 0);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(use_xing),
-                                 audmad_config.use_xing);
-
-    dither =
-        gtk_check_button_new_with_label
-        ("Dither output when rounding to 16-bit");
-    gtk_box_pack_start(GTK_BOX(vbox), dither, TRUE, TRUE, 0);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(dither),
-                                 audmad_config.dither);
-
-    sjis = gtk_check_button_new_with_label("Use SJIS to write ID3 tags instead of UTF-8");
-    gtk_box_pack_start(GTK_BOX(vbox), sjis, TRUE, TRUE, 0);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(sjis), audmad_config.sjis);
-
-    /* SKR added config : */
-    RG_enable = gtk_check_button_new_with_label("Enable replaygain");
-    gtk_box_pack_start(GTK_BOX(vbox), RG_enable, TRUE, TRUE, 0);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(RG_enable),
-                                 audmad_config.replaygain.enable);
-    RG_track_mode =
-        gtk_check_button_new_with_label("Prefer TRACK replaygain");
-    gtk_box_pack_start(GTK_BOX(vbox), RG_track_mode, TRUE, TRUE, 0);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(RG_track_mode),
-                                 audmad_config.replaygain.track_mode);
-
-    hard_limit =
-        gtk_check_button_new_with_label
-        ("hard-limit samples (prevent clipping)");
-    gtk_box_pack_start(GTK_BOX(vbox), hard_limit, TRUE, TRUE, 0);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(hard_limit),
-                                 audmad_config.hard_limit);
-
-    label = gtk_label_new("gain to use if no RG tag (dB):");
-    RG_default_hbox = gtk_hbox_new(FALSE, 5);
-    gtk_box_pack_start(GTK_BOX(vbox), RG_default_hbox, TRUE, TRUE, 0);
-    RG_default = gtk_entry_new();
-    gtk_widget_set_usize(RG_default, 80, -1);
-    gtk_entry_set_text(GTK_ENTRY(RG_default),
-                       audmad_config.replaygain.default_db);
-    gtk_box_pack_start(GTK_BOX(RG_default_hbox), label, FALSE, TRUE, 0);
-    gtk_box_pack_start(GTK_BOX(RG_default_hbox), RG_default, FALSE, TRUE,
-                       0);
-
-    label = gtk_label_new("Pre-gain (dB):");
-    pregain_hbox = gtk_hbox_new(FALSE, 5);
-    gtk_box_pack_start(GTK_BOX(vbox), pregain_hbox, TRUE, TRUE, 0);
-    pregain = gtk_entry_new();
-    gtk_widget_set_usize(pregain, 80, -1);
-    gtk_entry_set_text(GTK_ENTRY(pregain), audmad_config.pregain_db);
-    gtk_box_pack_start(GTK_BOX(pregain_hbox), label, FALSE, TRUE, 0);
-    gtk_box_pack_start(GTK_BOX(pregain_hbox), pregain, FALSE, TRUE, 0);
-
-
-    bbox = gtk_hbutton_box_new();
-    gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
-    gtk_button_box_set_spacing(GTK_BUTTON_BOX(bbox), 5);
-    gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
-
-    ok = gtk_button_new_with_label("Ok");
-    gtk_signal_connect(GTK_OBJECT(ok), "clicked",
-                       GTK_SIGNAL_FUNC(configure_win_ok), NULL);
-    GTK_WIDGET_SET_FLAGS(ok, GTK_CAN_DEFAULT);
-    gtk_box_pack_start(GTK_BOX(bbox), ok, TRUE, TRUE, 0);
-    gtk_widget_grab_default(ok);
-
-    cancel = gtk_button_new_with_label("Cancel");
-    gtk_signal_connect_object(GTK_OBJECT(cancel), "clicked",
-                              GTK_SIGNAL_FUNC(gtk_widget_destroy),
-                              GTK_OBJECT(configure_win));
-    GTK_WIDGET_SET_FLAGS(cancel, GTK_CAN_DEFAULT);
-    gtk_box_pack_start(GTK_BOX(bbox), cancel, TRUE, TRUE, 0);
-
-    gtk_widget_show_all(configure_win);
-}
-#endif
-
 void audmad_configure(void)
 {
     GtkWidget *bbox, *ok, *cancel;
--- a/src/madplug/input.c	Wed Feb 07 18:26:47 2007 -0800
+++ b/src/madplug/input.c	Wed Feb 07 23:31:26 2007 -0800
@@ -258,23 +258,24 @@
     return ret;
 }
 
-
 gchar *input_id3_get_string(struct id3_tag * tag, char *frame_name)
 {
-    gchar *rtn;
-    gchar *rtn2;
+    gchar *rtn0 = NULL, *rtn = NULL;
     const id3_ucs4_t *string_const;
     id3_ucs4_t *string;
-    id3_ucs4_t *ucsptr;
     struct id3_frame *frame;
     union id3_field *field;
-    gboolean flagutf = FALSE;
+    int encoding = -1;
 
     frame = id3_tag_findframe(tag, frame_name, 0);
     if (!frame)
         return NULL;
 
-    if (!strcmp(frame_name, ID3_FRAME_COMMENT))
+    field = id3_frame_field(frame, 0);
+    encoding = id3_field_gettextencoding(field);
+    g_print("encoding = %d\n", encoding);
+
+    if (frame_name == ID3_FRAME_COMMENT)
         field = id3_frame_field(frame, 3);
     else
         field = id3_frame_field(frame, 1);
@@ -282,7 +283,7 @@
     if (!field)
         return NULL;
 
-    if (!strcmp(frame_name, ID3_FRAME_COMMENT))
+    if (frame_name == ID3_FRAME_COMMENT)
         string_const = id3_field_getfullstring(field);
     else
         string_const = id3_field_getstrings(field, 0);
@@ -292,38 +293,35 @@
 
     string = mad_ucs4dup((id3_ucs4_t *)string_const);
 
-    if (!strcmp(frame_name, ID3_FRAME_GENRE)) {
+    if (frame_name == ID3_FRAME_GENRE) {
         id3_ucs4_t *string2 = NULL;
         string2 = mad_parse_genre(string);
         g_free((void *)string);
         string = string2;
     }
 
-    ucsptr = (id3_ucs4_t *)string;
-    while (*ucsptr) {
-        if (*ucsptr > 0x000000ffL) {
-            flagutf = TRUE;
-            break;
-        }
-        ucsptr++;
+    switch (encoding) {
+    case ID3_FIELD_TEXTENCODING_ISO_8859_1:
+        g_print("latin1\n");
+        rtn0 = id3_ucs4_latin1duplicate(string);
+        break;
+    case ID3_FIELD_TEXTENCODING_UTF_16:
+    case ID3_FIELD_TEXTENCODING_UTF_16BE:
+        g_print("UTF16\n");
+        rtn0 = id3_ucs4_utf16duplicate(string);
+        break;
+    case ID3_FIELD_TEXTENCODING_UTF_8:
+    default:
+        g_print("UTF8\n");
+        rtn0 = id3_ucs4_utf8duplicate(string);
+        break;
     }
 
-    if (flagutf) {
+    rtn = str_to_utf8(rtn0);
+    g_free(rtn0);
+        
 #ifdef DEBUG
-        g_print("aud-mad: flagutf!\n");
-#endif
-        rtn = (gchar *)id3_ucs4_utf8duplicate(string);
-    }
-    else {
-        rtn = (gchar *)id3_ucs4_latin1duplicate(string);
-        rtn2 = str_to_utf8(rtn);
-        free(rtn);
-        rtn = rtn2;
-    }
-    g_free(string);
-    string = NULL;
-#ifdef DEBUG
-    g_print("string = %s\n", rtn);
+    g_print("i: string = %s\n", rtn);
 #endif
     return rtn;
 }
@@ -465,7 +463,7 @@
 #endif
 #endif
     /* simply read to data from the file */
-    len = vfs_fread(buffer, 1, buffer_size, madinfo->infile); //vfs_fread returns num of element.
+    len = vfs_fread(buffer, 1, buffer_size, madinfo->infile); //vfs_fread returns num of elements.
 
     if(len == 0){
 	    if(madinfo->playback)
--- a/src/madplug/plugin.c	Wed Feb 07 18:26:47 2007 -0800
+++ b/src/madplug/plugin.c	Wed Feb 07 23:31:26 2007 -0800
@@ -127,6 +127,10 @@
                             &audmad_config.replaygain.track_mode);
         bmp_cfg_db_get_string(db, "MAD", "RG.default_db",
                               &audmad_config.replaygain.default_db);
+        bmp_cfg_db_get_bool(db, "MAD", "title_override",
+                            &audmad_config.title_override);
+        bmp_cfg_db_get_string(db, "MAD", "id3_format",
+                              &audmad_config.id3_format);
 
         bmp_cfg_db_close(db);
     }