Mercurial > audlegacy
diff src/audacious/ui_svis.c @ 4216:75d99359357b
doublesize -> custom scale:
* initial work, just got it to compile
* doublesize is broken at all
author | Cristi Magherusan <majeru@atheme.org> |
---|---|
date | Sun, 27 Jan 2008 19:43:53 +0200 |
parents | f02623377013 |
children | f1074a07ec09 |
line wrap: on
line diff
--- a/src/audacious/ui_svis.c Sun Jan 27 15:15:03 2008 +0200 +++ b/src/audacious/ui_svis.c Sun Jan 27 19:43:53 2008 +0200 @@ -69,7 +69,7 @@ static void ui_svis_size_request (GtkWidget *widget, GtkRequisition *requisition); static void ui_svis_size_allocate (GtkWidget *widget, GtkAllocation *allocation); static gboolean ui_svis_expose (GtkWidget *widget, GdkEventExpose *event); -static void ui_svis_toggle_doublesize (UiSVis *svis); +static void ui_svis_toggle_scaled (UiSVis *svis); static GtkWidgetClass *parent_class = NULL; static guint vis_signals[LAST_SIGNAL] = { 0 }; @@ -112,11 +112,11 @@ widget_class->size_request = ui_svis_size_request; widget_class->size_allocate = ui_svis_size_allocate; - klass->doubled = ui_svis_toggle_doublesize; + klass->scaled = ui_svis_toggle_scaled; vis_signals[DOUBLED] = - g_signal_new ("toggle-double-size", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET (UiSVisClass, doubled), NULL, NULL, + g_signal_new ("toggle-scaled", G_OBJECT_CLASS_TYPE (object_class), G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION, + G_STRUCT_OFFSET (UiSVisClass, scaled), NULL, NULL, gtk_marshal_VOID__VOID, G_TYPE_NONE, 0); } @@ -134,7 +134,7 @@ svis->height = SVIS_HEIGHT; svis->fixed = fixed; - svis->double_size = FALSE; + svis->scaled = FALSE; svis->visible_window = TRUE; svis->event_window = NULL; @@ -242,16 +242,16 @@ static void ui_svis_size_request(GtkWidget *widget, GtkRequisition *requisition) { UiSVis *svis = UI_SVIS(widget); - requisition->width = svis->width*(1+svis->double_size); - requisition->height = svis->height*(1+svis->double_size); + requisition->width = svis->width*(1+svis->scaled); + requisition->height = svis->height*(1+svis->scaled); } static void ui_svis_size_allocate(GtkWidget *widget, GtkAllocation *allocation) { UiSVis *svis = UI_SVIS (widget); widget->allocation = *allocation; - widget->allocation.x *= (1+svis->double_size); - widget->allocation.y *= (1+svis->double_size); + widget->allocation.x *= (1+svis->scaled); + widget->allocation.y *= (1+svis->scaled); if (GTK_WIDGET_REALIZED (widget)) { if (svis->event_window != NULL) @@ -260,8 +260,8 @@ gdk_window_move_resize(widget->window, widget->allocation.x, widget->allocation.y, allocation->width, allocation->height); } - svis->x = widget->allocation.x/(svis->double_size ? 2 : 1); - svis->y = widget->allocation.y/(svis->double_size ? 2 : 1); + svis->x = widget->allocation.x/(svis->scaled ? 2 : 1); + svis->y = widget->allocation.y/(svis->scaled ? 2 : 1); } static gboolean ui_svis_expose(GtkWidget *widget, GdkEventExpose *event) { @@ -290,7 +290,7 @@ } cmap = gdk_rgb_cmap_new(colors, 24); - if (!cfg.doublesize) { + if (!cfg.scaled) { memset(rgb_data, 0, SVIS_WIDTH * SVIS_HEIGHT); if (cfg.vis_type == VIS_ANALYZER && !playback_get_paused() && playback_get_playing()){ for(y=0; y < SVIS_HEIGHT; y++){ @@ -352,16 +352,16 @@ } } - else { /* doublesize */ + else { /* svis scaling is disabled for now - memset(rgb_data, 0, SVIS_WIDTH * 2 * SVIS_HEIGHT * 2); - if (cfg.vis_type == VIS_ANALYZER && !playback_get_paused() && playback_get_playing()){ + memset(rgb_data, 0, SVIS_WIDTH * cfg.scale_factor * SVIS_HEIGHT * cfg.scale_factor); + if (cfg.vis_type == VIS_ANALYZER && !playback_get_paused() && playback_get_playing()){ for(y=0; y < SVIS_HEIGHT; y++){ if (cfg.analyzer_type == ANALYZER_BARS){ for(x=0;x< SVIS_WIDTH; x++){ if(svis->data[x] > y << 1) { - ptr = rgb_data + x * 6 + (SVIS_HEIGHT * 2 - y * 2) * SVIS_WIDTH * 2; + ptr = rgb_data + x * 6 + (SVIS_HEIGHT * 2 - y * 2) * SVIS_WIDTH *2; DRAW_DS_PIXEL(ptr, 23); DRAW_DS_PIXEL(ptr + 2, 23); } @@ -418,15 +418,16 @@ } } - +*/ } GdkPixmap *obj = NULL; GdkGC *gc; - obj = gdk_pixmap_new(NULL, svis->width*(1+svis->double_size), svis->height*(1+svis->double_size), gdk_rgb_get_visual()->depth); + obj = gdk_pixmap_new(NULL, svis->width* ( svis->scaled ? cfg.scale_factor : 1), + svis->height*(svis->scaled ? cfg.scale_factor : 1), gdk_rgb_get_visual()->depth); gc = gdk_gc_new(obj); - if (!svis->double_size) { + if (!svis->scaled) { gdk_draw_indexed_image(obj, gc, 0, 0, svis->width, svis->height, GDK_RGB_DITHER_NORMAL, (guchar *) rgb_data, 38, cmap); @@ -440,18 +441,19 @@ gdk_rgb_cmap_free(cmap); gdk_draw_drawable (widget->window, gc, obj, 0, 0, 0, 0, - svis->width*(1+svis->double_size), svis->height*(1+svis->double_size)); + svis->width*(svis->scaled ? cfg.scale_factor : 1), + svis->height*(svis->scaled ? cfg.scale_factor : 1)); g_object_unref(obj); g_object_unref(gc); return FALSE; } -static void ui_svis_toggle_doublesize(UiSVis *svis) { +static void ui_svis_toggle_scaled(UiSVis *svis) { GtkWidget *widget = GTK_WIDGET (svis); - svis->double_size = !svis->double_size; + svis->scaled = !svis->scaled; - gtk_widget_set_size_request(widget, svis->width*(1+svis->double_size), svis->height*(1+svis->double_size)); + gtk_widget_set_size_request(widget, svis->width* cfg.scale_factor, svis->height * cfg.scale_factor); gtk_widget_queue_draw(widget); }