# HG changeset patch # User Eugene Zagidullin # Date 1204483802 -10800 # Node ID 45505a00a6cf77e3c02e0316be2a1e02da4fbf47 # Parent 9eee96d071d5b1a6944cbfb218e4be672b54ac46 store sliders' values as is diff -r 9eee96d071d5 -r 45505a00a6cf src/audacious/ui_skinned_equalizer_slider.c --- a/src/audacious/ui_skinned_equalizer_slider.c Wed Feb 27 17:47:06 2008 +0900 +++ b/src/audacious/ui_skinned_equalizer_slider.c Sun Mar 02 21:50:02 2008 +0300 @@ -45,6 +45,7 @@ gint width, height; gboolean pressed; gint drag_y; + gfloat value; /* store gain as is to prevent truncation --asphyx */ }; static void ui_skinned_equalizer_slider_class_init (UiSkinnedEqualizerSliderClass *klass); @@ -255,6 +256,8 @@ priv->position = 50; if (priv->position >= 24 && priv->position <= 26) priv->position = 25; + + priv->value = ((gfloat) (25 - priv->position) * EQUALIZER_MAX_GAIN / 25.0 ); equalizerwin_eq_changed(); } @@ -296,7 +299,8 @@ priv->position = 50; if (priv->position >= 24 && priv->position <= 26) priv->position = 25; - + + priv->value = ((gfloat) (25 - priv->position) * EQUALIZER_MAX_GAIN / 25.0 ); ui_skinned_equalizer_slider_set_mainwin_text(es); equalizerwin_eq_changed(); gtk_widget_queue_draw(widget); @@ -323,6 +327,7 @@ priv->position = 50; } + priv->value = ((gfloat) (25 - priv->position) * EQUALIZER_MAX_GAIN / 25.0 ); equalizerwin_eq_changed(); gtk_widget_queue_draw(widget); return TRUE; @@ -340,13 +345,14 @@ gtk_widget_queue_draw(GTK_WIDGET(equalizer_slider)); } -void ui_skinned_equalizer_slider_set_position(GtkWidget *widget, gint pos) { +void ui_skinned_equalizer_slider_set_position(GtkWidget *widget, gfloat pos) { g_return_if_fail (UI_SKINNED_IS_EQUALIZER_SLIDER (widget)); UiSkinnedEqualizerSliderPrivate *priv = UI_SKINNED_EQUALIZER_SLIDER_GET_PRIVATE(widget); if (priv->pressed) return; + priv->value = pos; priv->position = 25 - (gint) ((pos * 25.0) / EQUALIZER_MAX_GAIN); if (priv->position < 0) @@ -364,7 +370,7 @@ gfloat ui_skinned_equalizer_slider_get_position(GtkWidget *widget) { g_return_val_if_fail (UI_SKINNED_IS_EQUALIZER_SLIDER (widget), -1); UiSkinnedEqualizerSliderPrivate *priv = UI_SKINNED_EQUALIZER_SLIDER_GET_PRIVATE(widget); - return (EQUALIZER_MAX_GAIN - (((gfloat) priv->position * EQUALIZER_MAX_GAIN) / 25.0)); + return priv->value; } void ui_skinned_equalizer_slider_set_mainwin_text(UiSkinnedEqualizerSlider * es) { diff -r 9eee96d071d5 -r 45505a00a6cf src/audacious/ui_skinned_equalizer_slider.h --- a/src/audacious/ui_skinned_equalizer_slider.h Wed Feb 27 17:47:06 2008 +0900 +++ b/src/audacious/ui_skinned_equalizer_slider.h Sun Mar 02 21:50:02 2008 +0300 @@ -50,7 +50,7 @@ GtkWidget* ui_skinned_equalizer_slider_new(GtkWidget *fixed, gint x, gint y); GtkType ui_skinned_equalizer_slider_get_type(void); -void ui_skinned_equalizer_slider_set_position(GtkWidget *widget, gint pos); +void ui_skinned_equalizer_slider_set_position(GtkWidget *widget, gfloat pos); gfloat ui_skinned_equalizer_slider_get_position(GtkWidget *widget); #ifdef __cplusplus