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"),