Re: [PATCH] Save/load session settings patch
Emmanuel Saracco <[email protected]>
| Newsgroups | gmane.comp.audio.jamin.devel |
|---|---|
| Message-ID | <[email protected]> |
Emmanuel Saracco a écrit : Oops, here is the good one (settings only needs to be set at session file load time, not at show time!). Bye > Hi all, > > This patch actually fix two issues: > > ----- > * Issue 1: > > Crossover type is not saved/loaded to/from JAMin session file. > > * Solution: > > Save/load crossover type. > > ----- > * Issue 2: > > Preferences dialog does not really display current session parameters. > > * Solution: > > Refresh preference dialog properties at show time. > > Tell me if it is ok for you. ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Jamin-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jamin-devel
jamin-pref-save_restore.patch
(text/x-patch, 6.8 KB)
diff -BruNa jamin_orig/src/preferences.c jamin/src/preferences.c
--- jamin_orig/src/preferences.c 2007-07-01 17:33:18.000000000 +0200
+++ jamin/src/preferences.c 2008-02-02 19:18:03.000000000 +0100
@@ -31,6 +31,7 @@
#include "preferences.h"
+#include "callbacks.h"
#include "hdeq.h"
#include "geq.h"
#include "main.h"
@@ -57,6 +58,11 @@
static GdkColor color[COLORS];
static int color_id;
static GtkComboBox *l_limiter_combo, *l_SpectrumComboBox, *l_ColorsComboBox;
+static GtkSpinButton *l_hdeq_lower_gain, *l_hdeq_upper_gain, *l_crossfade_time,
+ *l_inmeter_warn, *l_spectrum_freq, *l_rms_time_slice,
+ *l_xo_delay_time_low, *l_xo_delay_time_mid;
+static GtkToggleButton *l_out_meter_peak, *l_out_meter_full, *l_rms_meter_peak,
+ *l_rms_meter_full, *l_fft, *l_iir;
static gboolean initialized = FALSE;
@@ -112,6 +118,22 @@
gtk_combo_box_set_active (l_limiter_combo, process_get_limiter_plugin ());
+ l_hdeq_lower_gain = GTK_SPIN_BUTTON (lookup_widget (pref_dialog, "MinGainSpin"));
+ l_hdeq_upper_gain = GTK_SPIN_BUTTON (lookup_widget (pref_dialog, "MaxGainSpin"));
+ l_crossfade_time = GTK_SPIN_BUTTON (lookup_widget (pref_dialog, "CrossfadeTimeSpin"));
+ l_inmeter_warn = GTK_SPIN_BUTTON (lookup_widget (pref_dialog, "warningLevelSpinButton"));
+ l_spectrum_freq = GTK_SPIN_BUTTON (lookup_widget (pref_dialog, "UpdateFrequencySpin"));
+ l_rms_time_slice = GTK_SPIN_BUTTON (lookup_widget (pref_dialog, "rmsTimeValue"));
+ l_xo_delay_time_low = GTK_SPIN_BUTTON (lookup_widget (pref_dialog, "LowDelaySpinButton"));
+ l_xo_delay_time_mid = GTK_SPIN_BUTTON (lookup_widget (pref_dialog, "MidDelaySpinButton"));
+
+ l_out_meter_peak = GTK_TOGGLE_BUTTON (lookup_widget (pref_dialog, "out_meter_peak_button"));
+ l_out_meter_full = GTK_TOGGLE_BUTTON (lookup_widget (pref_dialog, "out_meter_full_button"));
+ l_rms_meter_peak = GTK_TOGGLE_BUTTON (lookup_widget (pref_dialog, "rms_meter_peak_button"));
+ l_rms_meter_full = GTK_TOGGLE_BUTTON (lookup_widget (pref_dialog, "rms_meter_full_button"));
+ l_fft = GTK_TOGGLE_BUTTON (lookup_widget (pref_dialog, "FFTButton"));
+ l_iir = GTK_TOGGLE_BUTTON (lookup_widget (pref_dialog, "IIRButton"));
+
color_dialog = create_colorselectiondialog1 ();
@@ -262,6 +284,42 @@
initialized = TRUE;
}
+void pref_set_all_values ()
+{
+ gtk_spin_button_set_value (l_hdeq_lower_gain, hdeq_get_lower_gain ());
+ gtk_spin_button_set_value (l_hdeq_upper_gain, hdeq_get_upper_gain ());
+ gtk_spin_button_set_value (l_crossfade_time, s_get_crossfade_time ());
+ gtk_spin_button_set_value (l_inmeter_warn, intrim_inmeter_get_warn ());
+ gtk_spin_button_set_value (l_spectrum_freq, get_spectrum_freq ());
+ gtk_spin_button_set_value (l_rms_time_slice, process_get_rms_time_slice ());
+ gtk_spin_button_set_value (l_xo_delay_time_low, process_get_xo_delay_time (XO_LOW));
+ gtk_spin_button_set_value (l_xo_delay_time_mid, process_get_xo_delay_time (XO_MID));
+
+ g_signal_handlers_block_by_func (l_out_meter_peak, on_out_meter_peak_button_clicked, NULL);
+ g_signal_handlers_block_by_func (l_out_meter_full, on_out_meter_full_button_clicked, NULL);
+ g_signal_handlers_block_by_func (l_rms_meter_peak, on_rms_meter_peak_button_clicked, NULL);
+ g_signal_handlers_block_by_func (l_rms_meter_full, on_rms_meter_full_button_clicked, NULL);
+ g_signal_handlers_block_by_func (l_fft, on_FFTButton_clicked, NULL);
+ g_signal_handlers_block_by_func (l_iir, on_IIRButton_clicked, NULL);
+
+ gtk_toggle_button_set_active (l_out_meter_peak, intrim_get_out_meter_peak_pref ());
+ gtk_toggle_button_set_active (l_out_meter_full, !intrim_get_out_meter_peak_pref ());
+ gtk_toggle_button_set_active (l_rms_meter_peak, intrim_get_rms_meter_peak_pref ());
+ gtk_toggle_button_set_active (l_rms_meter_full, !intrim_get_rms_meter_peak_pref ());
+ gtk_toggle_button_set_active (l_fft, (process_get_crossover_type () == FFT));
+ gtk_toggle_button_set_active (l_iir, (process_get_crossover_type () == IIR));
+
+ g_signal_handlers_unblock_by_func (l_out_meter_peak, on_out_meter_peak_button_clicked, NULL);
+ g_signal_handlers_unblock_by_func (l_out_meter_full, on_out_meter_full_button_clicked, NULL);
+ g_signal_handlers_unblock_by_func (l_rms_meter_peak, on_rms_meter_peak_button_clicked, NULL);
+ g_signal_handlers_unblock_by_func (l_rms_meter_full, on_rms_meter_full_button_clicked, NULL);
+ g_signal_handlers_unblock_by_func (l_fft, on_FFTButton_clicked, NULL);
+ g_signal_handlers_unblock_by_func (l_iir, on_IIRButton_clicked, NULL);
+
+ gtk_combo_box_set_active (l_SpectrumComboBox, process_get_spec_mode ());
+ gtk_combo_box_set_active (l_limiter_combo, process_get_limiter_plugin ());
+}
+
GdkColor *get_color (int color_id)
{
diff -BruNa jamin_orig/src/preferences.h jamin/src/preferences.h
--- jamin_orig/src/preferences.h 2007-06-24 19:48:42.000000000 +0200
+++ jamin/src/preferences.h 2008-02-02 19:18:03.000000000 +0100
@@ -49,6 +49,6 @@
void pref_force_color_change ();
void pref_write_jamin_defaults ();
void pref_reset_all_colors ();
-
+void pref_set_all_values ();
#endif
diff -BruNa jamin_orig/src/state.c jamin/src/state.c
--- jamin_orig/src/state.c 2008-01-31 16:47:38.000000000 +0100
+++ jamin/src/state.c 2008-02-02 19:18:04.000000000 +0100
@@ -103,6 +103,7 @@
int gang_ra[XO_BANDS];
int gang_kn[XO_BANDS];
int gang_ma[XO_BANDS];
+ int iir_xover;
} xml_global_params;
void state_init()
@@ -563,6 +564,7 @@
s_save_global_float(doc, "mid delay time", process_get_xo_delay_time(XO_MID));
s_save_global_int(doc, "mid delay state", process_get_xo_delay_state (XO_MID));
+ s_save_global_int (doc, "crossover type", process_get_crossover_type ());
/* record the current gang state of the compressor controls */
@@ -723,6 +725,7 @@
gp.xo_delay_state[XO_LOW] = 0;
gp.xo_delay_time[XO_MID] = 0.5;
gp.xo_delay_state[XO_MID] = 0;
+ gp.iir_xover = FFT;
for (i = 0 ; i < XO_BANDS ; i++) {
gp.gang_at[i] = FALSE;
gp.gang_re[i] = FALSE;
@@ -791,6 +794,7 @@
process_set_rms_time_slice (gp.rms_time_slice);
+ process_set_crossover_type (gp.iir_xover);
/* This is the active scene. */
@@ -832,6 +836,7 @@
set_EQ_curve_values (0, 0.0);
s_clear_history();
+ pref_set_all_values ();
}
void s_startElement(void *user_data, const xmlChar *name, const xmlChar **attrs)
@@ -936,6 +941,9 @@
gp->xo_delay_state[XO_LOW] = atoi(value);
} else if (!strcmp(symbol, "mid delay state")) {
gp->xo_delay_state[XO_MID] = atoi(value);
+ } else if (!strcmp(symbol, "crossover type")) {
+ gp->iir_xover = atoi(value);
+ } else if (!strcmp(symbol, "mid delay state")) {
} else if ((const char *)strstr(symbol, "gang_") == symbol) {
int ind = index ? atoi(index) : -1;
int val = atoi(value);