# HG changeset patch # User yaz # Date 1170919886 28800 # Node ID a7a28782c1b0e62371757ad065a332219ca810e6 # Parent 312bc3bb686e8d616761f1ce4d55ed5da0efed68 [svn] - revise input_id3_get_string() to take encoding of field into account. - restore title_override options I accidentally dropped. - remove unnecessary code. diff -r 312bc3bb686e -r a7a28782c1b0 ChangeLog --- 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 + 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 revision [1318] - aosd: added _NET_WM_WINDOW_TYPE_DOCK to osd window hints diff -r 312bc3bb686e -r a7a28782c1b0 src/madplug/configure.c --- 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; diff -r 312bc3bb686e -r a7a28782c1b0 src/madplug/input.c --- 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) diff -r 312bc3bb686e -r a7a28782c1b0 src/madplug/plugin.c --- 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); }