Mercurial > audlegacy
comparison src/audacious/ui_skinned_equalizer_slider.c @ 4312:45505a00a6cf
store sliders' values as is
author | Eugene Zagidullin <e.asphyx@gmail.com> |
---|---|
date | Sun, 02 Mar 2008 21:50:02 +0300 |
parents | 172d49b1200b |
children | 772de6f365cf |
comparison
equal
deleted
inserted
replaced
4311:9eee96d071d5 | 4312:45505a00a6cf |
---|---|
43 gboolean scaled; | 43 gboolean scaled; |
44 gint position; | 44 gint position; |
45 gint width, height; | 45 gint width, height; |
46 gboolean pressed; | 46 gboolean pressed; |
47 gint drag_y; | 47 gint drag_y; |
48 gfloat value; /* store gain as is to prevent truncation --asphyx */ | |
48 }; | 49 }; |
49 | 50 |
50 static void ui_skinned_equalizer_slider_class_init (UiSkinnedEqualizerSliderClass *klass); | 51 static void ui_skinned_equalizer_slider_class_init (UiSkinnedEqualizerSliderClass *klass); |
51 static void ui_skinned_equalizer_slider_init (UiSkinnedEqualizerSlider *equalizer_slider); | 52 static void ui_skinned_equalizer_slider_init (UiSkinnedEqualizerSlider *equalizer_slider); |
52 static void ui_skinned_equalizer_slider_destroy (GtkObject *object); | 53 static void ui_skinned_equalizer_slider_destroy (GtkObject *object); |
253 priv->position = 0; | 254 priv->position = 0; |
254 if (priv->position > 50) | 255 if (priv->position > 50) |
255 priv->position = 50; | 256 priv->position = 50; |
256 if (priv->position >= 24 && priv->position <= 26) | 257 if (priv->position >= 24 && priv->position <= 26) |
257 priv->position = 25; | 258 priv->position = 25; |
259 | |
260 priv->value = ((gfloat) (25 - priv->position) * EQUALIZER_MAX_GAIN / 25.0 ); | |
258 equalizerwin_eq_changed(); | 261 equalizerwin_eq_changed(); |
259 } | 262 } |
260 | 263 |
261 ui_skinned_equalizer_slider_set_mainwin_text(es); | 264 ui_skinned_equalizer_slider_set_mainwin_text(es); |
262 gtk_widget_queue_draw(widget); | 265 gtk_widget_queue_draw(widget); |
294 priv->position = 0; | 297 priv->position = 0; |
295 if (priv->position > 50) | 298 if (priv->position > 50) |
296 priv->position = 50; | 299 priv->position = 50; |
297 if (priv->position >= 24 && priv->position <= 26) | 300 if (priv->position >= 24 && priv->position <= 26) |
298 priv->position = 25; | 301 priv->position = 25; |
299 | 302 |
303 priv->value = ((gfloat) (25 - priv->position) * EQUALIZER_MAX_GAIN / 25.0 ); | |
300 ui_skinned_equalizer_slider_set_mainwin_text(es); | 304 ui_skinned_equalizer_slider_set_mainwin_text(es); |
301 equalizerwin_eq_changed(); | 305 equalizerwin_eq_changed(); |
302 gtk_widget_queue_draw(widget); | 306 gtk_widget_queue_draw(widget); |
303 } | 307 } |
304 | 308 |
321 | 325 |
322 if (priv->position > 50) | 326 if (priv->position > 50) |
323 priv->position = 50; | 327 priv->position = 50; |
324 } | 328 } |
325 | 329 |
330 priv->value = ((gfloat) (25 - priv->position) * EQUALIZER_MAX_GAIN / 25.0 ); | |
326 equalizerwin_eq_changed(); | 331 equalizerwin_eq_changed(); |
327 gtk_widget_queue_draw(widget); | 332 gtk_widget_queue_draw(widget); |
328 return TRUE; | 333 return TRUE; |
329 } | 334 } |
330 | 335 |
338 priv->height*(priv->scaled ? cfg.scale_factor : 1)); | 343 priv->height*(priv->scaled ? cfg.scale_factor : 1)); |
339 | 344 |
340 gtk_widget_queue_draw(GTK_WIDGET(equalizer_slider)); | 345 gtk_widget_queue_draw(GTK_WIDGET(equalizer_slider)); |
341 } | 346 } |
342 | 347 |
343 void ui_skinned_equalizer_slider_set_position(GtkWidget *widget, gint pos) { | 348 void ui_skinned_equalizer_slider_set_position(GtkWidget *widget, gfloat pos) { |
344 g_return_if_fail (UI_SKINNED_IS_EQUALIZER_SLIDER (widget)); | 349 g_return_if_fail (UI_SKINNED_IS_EQUALIZER_SLIDER (widget)); |
345 UiSkinnedEqualizerSliderPrivate *priv = UI_SKINNED_EQUALIZER_SLIDER_GET_PRIVATE(widget); | 350 UiSkinnedEqualizerSliderPrivate *priv = UI_SKINNED_EQUALIZER_SLIDER_GET_PRIVATE(widget); |
346 | 351 |
347 if (priv->pressed) | 352 if (priv->pressed) |
348 return; | 353 return; |
349 | 354 |
355 priv->value = pos; | |
350 priv->position = 25 - (gint) ((pos * 25.0) / EQUALIZER_MAX_GAIN); | 356 priv->position = 25 - (gint) ((pos * 25.0) / EQUALIZER_MAX_GAIN); |
351 | 357 |
352 if (priv->position < 0) | 358 if (priv->position < 0) |
353 priv->position = 0; | 359 priv->position = 0; |
354 | 360 |
362 } | 368 } |
363 | 369 |
364 gfloat ui_skinned_equalizer_slider_get_position(GtkWidget *widget) { | 370 gfloat ui_skinned_equalizer_slider_get_position(GtkWidget *widget) { |
365 g_return_val_if_fail (UI_SKINNED_IS_EQUALIZER_SLIDER (widget), -1); | 371 g_return_val_if_fail (UI_SKINNED_IS_EQUALIZER_SLIDER (widget), -1); |
366 UiSkinnedEqualizerSliderPrivate *priv = UI_SKINNED_EQUALIZER_SLIDER_GET_PRIVATE(widget); | 372 UiSkinnedEqualizerSliderPrivate *priv = UI_SKINNED_EQUALIZER_SLIDER_GET_PRIVATE(widget); |
367 return (EQUALIZER_MAX_GAIN - (((gfloat) priv->position * EQUALIZER_MAX_GAIN) / 25.0)); | 373 return priv->value; |
368 } | 374 } |
369 | 375 |
370 void ui_skinned_equalizer_slider_set_mainwin_text(UiSkinnedEqualizerSlider * es) { | 376 void ui_skinned_equalizer_slider_set_mainwin_text(UiSkinnedEqualizerSlider * es) { |
371 gint band = 0; | 377 gint band = 0; |
372 const gchar *bandname[11] = { N_("PREAMP"), N_("60HZ"), N_("170HZ"), | 378 const gchar *bandname[11] = { N_("PREAMP"), N_("60HZ"), N_("170HZ"), |