Mercurial > hg > xmms-sid
changeset 577:fdddab8f0c1b
Scrubbing through the filter configuration code; Configuration dialog
window delete event was not handled and caused problems if WM's "close window"
was used, fixed.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 20 Mar 2007 13:43:00 +0000 |
parents | 7d08a5adc162 |
children | d9290bd40037 |
files | src/xs_config.c src/xs_genui.c src/xs_genui.h src/xs_sidplay2.cc xmms-sid.glade |
diffstat | 5 files changed, 105 insertions(+), 19 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xs_config.c Tue Mar 20 13:14:02 2007 +0000 +++ b/src/xs_config.c Tue Mar 20 13:43:00 2007 +0000 @@ -292,8 +292,6 @@ g_snprintf(tmpKey, sizeof(tmpKey), "filter%dNPoints", nFilter); if (!XS_CFG_GET_INT(cfg, XS_CONFIG_IDENT, tmpKey, &(pResult->npoints))) return FALSE; - if (pResult->npoints > XS_SIDPLAY2_NFPOINTS) - return FALSE; g_snprintf(tmpKey, sizeof(tmpKey), "filter%dName", nFilter); if (!XS_CFG_GET_STRING(cfg, XS_CONFIG_IDENT, tmpKey, &tmpStr)) @@ -473,7 +471,8 @@ } } -xs_filter_load_into(cfg, 0, &xs_cfg.sid2Filter); + /* Filters and presets are a special case */ + xs_filter_load_into(cfg, 0, &xs_cfg.sid2Filter); XS_CONFIG_FREE(cfg); @@ -481,7 +480,6 @@ XSDEBUG("OK\n"); } -#include "tmp.c" /* Write the current configuration */ @@ -498,6 +496,7 @@ #ifndef AUDACIOUS_PLUGIN if (!cfg) cfg = xmms_cfg_new(); + if (!cfg) return -1; #endif /* Write the new settings to XMMS configuration file */ @@ -529,10 +528,6 @@ } } -xs_filter_save(cfg, &testFilter6581R4, 0); -xs_filter_save(cfg, &testFilter6581R1, 1); -xs_filters_export("paske.filters", &testFilter6581R1, 1); - XS_CONFIG_WRITE(cfg); XS_CONFIG_FREE(cfg); @@ -939,6 +934,21 @@ } +gboolean xs_configwin_delete(GtkWidget * widget, GdkEvent * event, gpointer user_data) +{ + (void) widget; + (void) event; + (void) user_data; + + XSDEBUG("config::delete_event\n"); + if (xs_configwin) { + gtk_widget_destroy(xs_configwin); + xs_configwin = NULL; + } + return FALSE; +} + + /* Execute the configuration panel */ void xs_configure(void) @@ -946,10 +956,10 @@ gint i; gfloat tmpValue; gchar tmpStr[32]; - GtkWidget *c; + GtkWidget *tmpCurve; /* Check if the window already exists */ - if (xs_configwin != NULL) { + if (xs_configwin) { gdk_window_raise(xs_configwin->window); return; } @@ -961,19 +971,20 @@ XS_MUTEX_LOCK(xs_cfg); /* Create the custom filter curve widget for libSIDPlay2 */ - c = xs_curve_new(); - xs_curve_reset(XS_CURVE(c)); - xs_curve_set_range(XS_CURVE(c), + tmpCurve = xs_curve_new(); + xs_curve_reset(XS_CURVE(tmpCurve)); + xs_curve_set_range(XS_CURVE(tmpCurve), 0,0, XS_SIDPLAY2_NFPOINTS, XS_SIDPLAY2_FMAX); - xs_curve_set_points(XS_CURVE(c), + + xs_curve_set_points(XS_CURVE(tmpCurve), xs_cfg.sid2Filter.points, xs_cfg.sid2Filter.npoints); - gtk_widget_set_name(c, "cfg_sp2_filter_curve"); - gtk_widget_ref(c); + gtk_widget_set_name(tmpCurve, "cfg_sp2_filter_curve"); + gtk_widget_ref(tmpCurve); gtk_object_set_data_full(GTK_OBJECT(xs_configwin), - "cfg_sp2_filter_curve", c, (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show(c); - gtk_container_add(GTK_CONTAINER(LUW("cfg_sp2_filter_frame")), c); + "cfg_sp2_filter_curve", tmpCurve, (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show(tmpCurve); + gtk_container_add(GTK_CONTAINER(LUW("cfg_sp2_filter_frame")), tmpCurve); /* Based on available optional parts, gray out options */
--- a/src/xs_genui.c Tue Mar 20 13:14:02 2007 +0000 +++ b/src/xs_genui.c Tue Mar 20 13:43:00 2007 +0000 @@ -39,3 +39,43 @@ { } + + +void +xs_filter_import_fs_ok (GtkButton *button, + gpointer user_data) +{ + +} + + +void +xs_filter_import_fs_cancel (GtkButton *button, + gpointer user_data) +{ + +} + + +void +xs_filter_export_fs_ok (GtkButton *button, + gpointer user_data) +{ + +} + + +void +xs_filter_export_fs_cancel (GtkButton *button, + gpointer user_data) +{ + +} + + +void +xs_cfg_sp2_filter_delete (GtkButton *button, + gpointer user_data) +{ + +}
--- a/src/xs_genui.h Tue Mar 20 13:14:02 2007 +0000 +++ b/src/xs_genui.h Tue Mar 20 13:43:00 2007 +0000 @@ -133,3 +133,28 @@ void xs_cfg_hvsc_fs_cancel (GtkButton *button, gpointer user_data); + +void +xs_filter_import_fs_ok (GtkButton *button, + gpointer user_data); + +void +xs_filter_import_fs_cancel (GtkButton *button, + gpointer user_data); + +void +xs_filter_export_fs_ok (GtkButton *button, + gpointer user_data); + +void +xs_filter_export_fs_cancel (GtkButton *button, + gpointer user_data); + +void +xs_cfg_sp2_filter_delete (GtkButton *button, + gpointer user_data); + +gboolean +xs_configwin_delete (GtkWidget *widget, + GdkEvent *event, + gpointer user_data);
--- a/src/xs_sidplay2.cc Tue Mar 20 13:14:02 2007 +0000 +++ b/src/xs_sidplay2.cc Tue Mar 20 13:43:00 2007 +0000 @@ -204,6 +204,11 @@ /* Convert filter */ f = &(xs_cfg.sid2Filter); XSDEBUG("using filter '%s', %d points\n", f->name, f->npoints); + if (f->npoints > XS_SIDPLAY2_NFPOINTS) { + xs_error(_("[SIDPlay2] Invalid number of filter curve points (%d > %d)\n"), + f->npoints, XS_SIDPLAY2_NFPOINTS); + f->npoints = XS_SIDPLAY2_NFPOINTS; + } tmpFilter.points = f->npoints; for (i = 0; i < f->npoints; i++) {
--- a/xmms-sid.glade Tue Mar 20 13:14:02 2007 +0000 +++ b/xmms-sid.glade Tue Mar 20 13:43:00 2007 +0000 @@ -24,6 +24,11 @@ <widget> <class>GtkWindow</class> <name>xs_configwin</name> + <signal> + <name>delete_event</name> + <handler>xs_configwin_delete</handler> + <last_modification_time>Tue, 20 Mar 2007 13:23:53 GMT</last_modification_time> + </signal> <title>XMMS-SID configuration</title> <type>GTK_WINDOW_DIALOG</type> <position>GTK_WIN_POS_NONE</position>