# HG changeset patch # User giacomo # Date 1169424210 28800 # Node ID 0dd1ff7e5ba770f0302db8859f2d3517b03de662 # Parent 9fc8b269e811ddae10377215ee2e90131cf4890d [svn] flac 112 plugin: stability fixes and a new option to disable bitrate update in player window during playback (saves cpu, this is the solution for most people playing flac and reporting high cpu usage) diff -r 9fc8b269e811 -r 0dd1ff7e5ba7 ChangeLog --- a/ChangeLog Sun Jan 21 15:34:56 2007 -0800 +++ b/ChangeLog Sun Jan 21 16:03:30 2007 -0800 @@ -1,3 +1,10 @@ +2007-01-21 23:34:56 +0000 Giacomo Lozito + revision [1068] + flac 113 plugin: small fixes + trunk/src/flac113/plugin.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + + 2007-01-21 23:33:20 +0000 Giacomo Lozito revision [1066] flac 112 plugin: disabled built-in http stream support diff -r 9fc8b269e811 -r 0dd1ff7e5ba7 src/flac112/configure.c --- a/src/flac112/configure.c Sun Jan 21 15:34:56 2007 -0800 +++ b/src/flac112/configure.c Sun Jan 21 16:03:30 2007 -0800 @@ -46,7 +46,8 @@ FALSE, /* tag_override */ NULL, /* tag_format */ FALSE, /* convert_char_set */ - NULL /* user_char_set */ + NULL, /* user_char_set */ + FALSE /* disable bitrate update */ }, /* stream */ { @@ -92,7 +93,7 @@ static GtkWidget *flac_configurewin = NULL; static GtkWidget *vbox, *notebook; -static GtkWidget *title_tag_override, *title_tag_box, *title_tag_entry, *title_desc; +static GtkWidget *title_tag_override, *title_tag_box, *title_tag_entry, *title_desc, *title_disable_bitrate_update; static GtkWidget *convert_char_set, *fileCharacterSetEntry, *userCharacterSetEntry; static GtkWidget *replaygain_enable, *replaygain_album_mode; static GtkWidget *replaygain_preamp_hscale, *replaygain_preamp_label, *replaygain_hard_limit; @@ -126,12 +127,14 @@ (void)widget, (void)data; /* unused arguments */ g_free(flac_cfg.title.tag_format); + g_free(flac_cfg.title.user_char_set); flac_cfg.title.tag_format = g_strdup(gtk_entry_get_text(GTK_ENTRY(title_tag_entry))); - flac_cfg.title.user_char_set = Charset_Get_Name_From_Title(gtk_entry_get_text_1(userCharacterSetEntry)); + flac_cfg.title.user_char_set = g_strdup(Charset_Get_Name_From_Title(gtk_entry_get_text_1(userCharacterSetEntry))); db = bmp_cfg_db_open(); /* title */ bmp_cfg_db_set_bool(db, "flac", "title.tag_override", flac_cfg.title.tag_override); + bmp_cfg_db_set_bool(db, "flac", "title.disable_bitrate_update", flac_cfg.title.disable_bitrate_update); bmp_cfg_db_set_string(db, "flac", "title.tag_format", flac_cfg.title.tag_format); bmp_cfg_db_set_bool(db, "flac", "title.convert_char_set", flac_cfg.title.convert_char_set); bmp_cfg_db_set_string(db, "flac", "title.user_char_set", flac_cfg.title.user_char_set); @@ -198,6 +201,12 @@ gtk_widget_set_sensitive(userCharacterSetEntry, flac_cfg.title.convert_char_set); } +static void disable_bitrate_update_cb(GtkWidget *widget, gpointer data) +{ + (void)widget, (void)data; /* unused arguments */ + flac_cfg.title.disable_bitrate_update = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(title_disable_bitrate_update)); +} + static void replaygain_enable_cb(GtkWidget *widget, gpointer data) { (void)widget, (void)data; /* unused arguments */ @@ -378,6 +387,12 @@ gtk_widget_set_sensitive(title_desc, flac_cfg.title.tag_override); gtk_box_pack_start(GTK_BOX(title_tag_vbox), title_desc, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(title_tag_vbox), gtk_hseparator_new(), FALSE, FALSE, 0); + title_disable_bitrate_update = gtk_check_button_new_with_label(_("Disable bitrate update during playback (saves cpu)")); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(title_disable_bitrate_update), flac_cfg.title.disable_bitrate_update); + gtk_signal_connect(GTK_OBJECT(title_disable_bitrate_update), "clicked", (GCallback)disable_bitrate_update_cb, NULL); + gtk_box_pack_start(GTK_BOX(title_tag_vbox), title_disable_bitrate_update, FALSE, FALSE, 0); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), title_frame, gtk_label_new(_("Title"))); /* Output config.. */ diff -r 9fc8b269e811 -r 0dd1ff7e5ba7 src/flac112/configure.h --- a/src/flac112/configure.h Sun Jan 21 15:34:56 2007 -0800 +++ b/src/flac112/configure.h Sun Jan 21 16:03:30 2007 -0800 @@ -29,6 +29,7 @@ gchar *tag_format; gboolean convert_char_set; gchar *user_char_set; + gboolean disable_bitrate_update; } title; struct { diff -r 9fc8b269e811 -r 0dd1ff7e5ba7 src/flac112/plugin.c --- a/src/flac112/plugin.c Sun Jan 21 15:34:56 2007 -0800 +++ b/src/flac112/plugin.c Sun Jan 21 16:03:30 2007 -0800 @@ -239,6 +239,8 @@ bmp_cfg_db_get_bool(db, "flac", "title.tag_override", &flac_cfg.title.tag_override); + bmp_cfg_db_get_bool(db, "flac", "title.disable_bitrate_update", &flac_cfg.title.disable_bitrate_update); + if(!bmp_cfg_db_get_string(db, "flac", "title.tag_format", &flac_cfg.title.tag_format)) flac_cfg.title.tag_format = g_strdup("%p - %t"); @@ -447,28 +449,28 @@ flac_ip.description = NULL; if (flac_cfg.title.tag_format) { - free(flac_cfg.title.tag_format); + g_free(flac_cfg.title.tag_format); flac_cfg.title.tag_format = NULL; } if (flac_cfg.title.user_char_set) { - free(flac_cfg.title.user_char_set); + g_free(flac_cfg.title.user_char_set); flac_cfg.title.user_char_set = NULL; } if (flac_cfg.stream.proxy_host) { - free(flac_cfg.stream.proxy_host); + g_free(flac_cfg.stream.proxy_host); flac_cfg.stream.proxy_host = NULL; } if (flac_cfg.stream.proxy_user) { - free(flac_cfg.stream.proxy_user); + g_free(flac_cfg.stream.proxy_user); flac_cfg.stream.proxy_user = NULL; } if (flac_cfg.stream.proxy_pass) { - free(flac_cfg.stream.proxy_pass); + g_free(flac_cfg.stream.proxy_pass); flac_cfg.stream.proxy_pass = NULL; } @@ -587,7 +589,8 @@ sample_buffer_first_ = sample_buffer_last_ = 0; } } - else { + else if ( !flac_cfg.title.disable_bitrate_update ) + { /* display the right bitrate from history */ unsigned bh_index_o = flac_ip.output->output_time() / BITRATE_HIST_SEGMENT_MSEC % BITRATE_HIST_SIZE; if(bh_index_o != bh_index_last_o && bh_index_o != bh_index_last_w && bh_index_o != (bh_index_last_w + 1) % BITRATE_HIST_SIZE) {