diff src/skins/ui_vis.c @ 2584:c9e40418a74c

use plugin's own config
author Tomasz Mon <desowin@gmail.com>
date Tue, 20 May 2008 19:41:12 +0200
parents 8fba3fbf1a0f
children c2603047a1a3
line wrap: on
line diff
--- a/src/skins/ui_vis.c	Tue May 20 16:34:06 2008 +0200
+++ b/src/skins/ui_vis.c	Tue May 20 19:41:12 2008 +0200
@@ -27,6 +27,7 @@
 #include "ui_skin.h"
 #include "ui_vis.h"
 #include "util.h"
+#include "skins_cfg.h"
 #include <audacious/plugin.h>
 
 static const gfloat vis_afalloff_speeds[] = { 0.34, 0.5, 1.0, 1.3, 1.6 };
@@ -224,16 +225,16 @@
 static void ui_vis_size_request(GtkWidget *widget, GtkRequisition *requisition) {
     UiVis *vis = UI_VIS(widget);
 
-    requisition->width = vis->width*(vis->scaled ? aud_cfg->scale_factor : 1);
-    requisition->height = vis->height*(vis->scaled ? aud_cfg->scale_factor : 1);
+    requisition->width = vis->width*(vis->scaled ? config.scale_factor : 1);
+    requisition->height = vis->height*(vis->scaled ? config.scale_factor : 1);
 }
 
 static void ui_vis_size_allocate(GtkWidget *widget, GtkAllocation *allocation) {
     UiVis *vis = UI_VIS (widget);
 
     widget->allocation = *allocation;
-    widget->allocation.x *= (vis->scaled ? aud_cfg->scale_factor : 1);
-    widget->allocation.y *= (vis->scaled ? aud_cfg->scale_factor : 1);
+    widget->allocation.x *= (vis->scaled ? config.scale_factor : 1);
+    widget->allocation.y *= (vis->scaled ? config.scale_factor : 1);
     if (GTK_WIDGET_REALIZED (widget))
     {
         if (vis->event_window != NULL)
@@ -242,8 +243,8 @@
             gdk_window_move_resize(widget->window, widget->allocation.x, widget->allocation.y, allocation->width, allocation->height);
     }
 
-    vis->x = widget->allocation.x/(vis->scaled ? aud_cfg->scale_factor : 1);
-    vis->y = widget->allocation.y/(vis->scaled ? aud_cfg->scale_factor : 1);
+    vis->x = widget->allocation.x/(vis->scaled ? config.scale_factor : 1);
+    vis->y = widget->allocation.y/(vis->scaled ? config.scale_factor : 1);
 }
 
 static gboolean ui_vis_expose(GtkWidget *widget, GdkEventExpose *event) {
@@ -277,7 +278,7 @@
     cmap = gdk_rgb_cmap_new(colors, 24);
 
     if (!vis->scaled) {
-      if(aud_cfg->vis_type == VIS_VOICEPRINT /*&& aud_cfg->voiceprint_mode != VOICEPRINT_NORMAL*/){
+      if(config.vis_type == VIS_VOICEPRINT /*&& aud_cfg->voiceprint_mode != VOICEPRINT_NORMAL*/){
 	memset(rgb_data, 0, 76 * 16 * 3);
       }
       else{
@@ -290,33 +291,33 @@
       }
     }
     else{
-      if(aud_cfg->vis_type == VIS_VOICEPRINT /*&& aud_cfg->voiceprint_mode != VOICEPRINT_NORMAL*/){
+      if(config.vis_type == VIS_VOICEPRINT /*&& aud_cfg->voiceprint_mode != VOICEPRINT_NORMAL*/){
 	memset(rgb_data, 0, 3 * 4 * 16 * 76);
       }
       else{
-	memset(rgb_data, 0, (guint)(76 * aud_cfg->scale_factor) * 32);
+	memset(rgb_data, 0, (guint)(76 * config.scale_factor) * 32);
 	for (y = 1; y < 16; y += 2) {
-	  ptr = rgb_data + (y * (guint)(76 * 4 * aud_cfg->scale_factor));
+	  ptr = rgb_data + (y * (guint)(76 * 4 * config.scale_factor));
 	  for (x = 0; x < 76; x += 2, ptr += 4) {
 	    *ptr = 1;
 	    *(ptr + 1) = 1;
-	    *(ptr + (guint)(76 * aud_cfg->scale_factor)) = 1;
-	    *(ptr + (guint)(76 * aud_cfg->scale_factor)+1) = 1;
+	    *(ptr + (guint)(76 * config.scale_factor)) = 1;
+	    *(ptr + (guint)(76 * config.scale_factor)+1) = 1;
 	}
       }
       }
     }
-    if (aud_cfg->vis_type == VIS_ANALYZER) {
+    if (config.vis_type == VIS_ANALYZER) {
       for (x = 0; x < 75; x++) {
-	if (aud_cfg->analyzer_type == ANALYZER_BARS && (x % 4) == 0)
+	if (config.analyzer_type == ANALYZER_BARS && (x % 4) == 0)
 	  h = vis->data[x >> 2];
-	else if (aud_cfg->analyzer_type == ANALYZER_LINES)
+	else if (config.analyzer_type == ANALYZER_LINES)
 	  h = vis->data[x];
-	if (h && (aud_cfg->analyzer_type == ANALYZER_LINES ||
+	if (h && (config.analyzer_type == ANALYZER_LINES ||
 		  (x % 4) != 3)) {
 	  if (!vis->scaled) {
 	    ptr = rgb_data + ((16 - h) * 76) + x;
-	    switch (aud_cfg->analyzer_mode) {
+	    switch (config.analyzer_mode) {
 	    case ANALYZER_NORMAL:
 	      for (y = 0; y < h; y++, ptr += 76)
 		*ptr = 18 - h + y;
@@ -332,30 +333,30 @@
 	    }
 	  }
 	  else{
-	    ptr = rgb_data + ((16 - h) * (guint)(76 * 4 * aud_cfg->scale_factor)) + (guint)(x * aud_cfg->scale_factor);
-	    switch (aud_cfg->analyzer_mode) {
+	    ptr = rgb_data + ((16 - h) * (guint)(76 * 4 * config.scale_factor)) + (guint)(x * aud_cfg->scale_factor);
+	    switch (config.analyzer_mode) {
 	    case ANALYZER_NORMAL:
-	      for (y = 0; y < h; y++, ptr += (guint)(76 * 4 * aud_cfg->scale_factor)) {
+	      for (y = 0; y < h; y++, ptr += (guint)(76 * 4 * config.scale_factor)) {
 		*ptr = 18 - h + y;
 		*(ptr + 1) = 18 - h + y;
-		*(ptr + (guint)(76 * aud_cfg->scale_factor)) = 18 - h + y;
-		*(ptr + (guint)(76 * aud_cfg->scale_factor)+1) = 18 - h + y;
+		*(ptr + (guint)(76 * config.scale_factor)) = 18 - h + y;
+		*(ptr + (guint)(76 * config.scale_factor)+1) = 18 - h + y;
 	      }
 	      break;
 	    case ANALYZER_FIRE:
-	      for (y = 0; y < h; y++, ptr += (guint)(76 * 4 * aud_cfg->scale_factor)) {
+	      for (y = 0; y < h; y++, ptr += (guint)(76 * 4 * config.scale_factor)) {
 		*ptr = y + 2;
 		*(ptr + 1) = y + 2;
-		*(ptr + (guint)(76 * aud_cfg->scale_factor)) = y + 2;
-		*(ptr + (guint)(76 * aud_cfg->scale_factor)+1) = y + 2;
+		*(ptr + (guint)(76 * config.scale_factor)) = y + 2;
+		*(ptr + (guint)(76 * config.scale_factor)+1) = y + 2;
 	      }
 	      break;
 	    case ANALYZER_VLINES:
-	      for (y = 0; y < h; y++, ptr += (guint)(76 * 4 * aud_cfg->scale_factor)) {
+	      for (y = 0; y < h; y++, ptr += (guint)(76 * 4 * config.scale_factor)) {
 		*ptr = 18 - h;
 		*(ptr + 1) = 18 - h;
-		*(ptr + (guint)(76 * aud_cfg->scale_factor)) = 18 - h;
-		*(ptr + (guint)(76 * aud_cfg->scale_factor)+1) = 18 - h;
+		*(ptr + (guint)(76 * config.scale_factor)) = 18 - h;
+		*(ptr + (guint)(76 * config.scale_factor)+1) = 18 - h;
 	      }
 	      
 	      break;
@@ -363,29 +364,29 @@
 	  }
 	}
       }
-      if (aud_cfg->analyzer_peaks) {
+      if (config.analyzer_peaks) {
 	for (x = 0; x < 75; x++) {
-	  if (aud_cfg->analyzer_type == ANALYZER_BARS && (x % 4) == 0)
+	  if (config.analyzer_type == ANALYZER_BARS && (x % 4) == 0)
 	    h = vis->peak[x >> 2];
-	  else if (aud_cfg->analyzer_type == ANALYZER_LINES)
+	  else if (config.analyzer_type == ANALYZER_LINES)
 	    h = vis->peak[x];
-	  if (h && (aud_cfg->analyzer_type == ANALYZER_LINES || (x % 4) != 3)){
+	  if (h && (config.analyzer_type == ANALYZER_LINES || (x % 4) != 3)){
 	    
 	    if (!vis->scaled) {
 	      rgb_data[(16 - h) * 76 + x] = 23;
 	    }
 	    else{
-	      ptr = rgb_data + (16 - h) * (guint)(76 * 4 * aud_cfg->scale_factor) + (guint)(x * aud_cfg->scale_factor);
+	      ptr = rgb_data + (16 - h) * (guint)(76 * 4 * config.scale_factor) + (guint)(x * aud_cfg->scale_factor);
 	      *ptr = 23;
 	      *(ptr + 1) = 23;
-	      *(ptr + (guint)(76 * aud_cfg->scale_factor)) = 23;
-	      *(ptr + (guint)(76 * aud_cfg->scale_factor)+1) = 23;
+	      *(ptr + (guint)(76 * config.scale_factor)) = 23;
+	      *(ptr + (guint)(76 * config.scale_factor)+1) = 23;
 	    }
 	  }
 	}
       }
     }
-    else if (aud_cfg->vis_type == VIS_VOICEPRINT) {
+    else if (config.vis_type == VIS_VOICEPRINT) {
       if(!audacious_drct_get_paused() && audacious_drct_get_playing()){/*Don't scroll when it's paused or stopped*/
 	for (y = 0; y < 16; y ++)
 	  for (x = 75; x > 0; x--)
@@ -394,7 +395,7 @@
 	    voiceprint_data[y * 76] = vis->data[y];
       }
       if(audacious_drct_get_playing()){ /*Only draw the data if we're playing*/
-	if(aud_cfg->voiceprint_mode == VOICEPRINT_NORMAL){ 
+	if(config.voiceprint_mode == VOICEPRINT_NORMAL){ 
 	  /* Create color gradient from the skin's background- and foreground color*/
 	  fgc = skin_get_color(aud_active_skin, SKIN_TEXTFG);
 	  bgc = skin_get_color(aud_active_skin, SKIN_TEXTBG);
@@ -424,12 +425,12 @@
 	  for (x = 0; x < 76; x++){
 	    guint8 d = voiceprint_data[x + y*76];
 	    
-	    if(aud_cfg->voiceprint_mode == VOICEPRINT_NORMAL){
+	    if(config.voiceprint_mode == VOICEPRINT_NORMAL){
 	      voice_c[0] = vis_voice_color[d][0];
 	      voice_c[1] = vis_voice_color[d][1];
 	      voice_c[2] = vis_voice_color[d][2];
 	    }
-	    else if(aud_cfg->voiceprint_mode == VOICEPRINT_FIRE){
+	    else if(config.voiceprint_mode == VOICEPRINT_FIRE){
 	      voice_c[0] = d < 64 ? (d * 2) : 255;
 	      voice_c[1] = d < 64 ? 0 : (d < 128 ? (d-64) * 2 : 255);
 	      voice_c[2] = d < 128 ? 0 : (d-128) * 2;
@@ -439,7 +440,7 @@
 		 voice_c[2] = d < 64 ? d << 2 : (d < 128 ? (128 - d) << 2 : 0);
 	      */
 	    }
-	    else if(aud_cfg->voiceprint_mode == VOICEPRINT_ICE){	    
+	    else if(config.voiceprint_mode == VOICEPRINT_ICE){	    
 	      voice_c[0] = d;
 	      voice_c[1] = d < 128 ? d * 2 : 255;
 	      voice_c[2] = d < 64 ? d * 4 : 255; 
@@ -449,33 +450,33 @@
 		rgb_data[x * 3 + y * 76*3+n] = voice_c[n];
 	    }
 	    else{
-	      ptr = rgb_data + (guint)(x * 3 * aud_cfg->scale_factor) + (guint) (y * 76 * 3 * aud_cfg->scale_factor);
+	      ptr = rgb_data + (guint)(x * 3 * config.scale_factor) + (guint) (y * 76 * 3 * aud_cfg->scale_factor);
 	      for(n=0;n<3;n++)
 		{
 		  *(ptr + n) = voice_c[n];
 		  *(ptr + n + 3) = voice_c[n];
-		  *(ptr + (guint)(n + 76 * aud_cfg->scale_factor * 3)) = voice_c[n];
-		  *(ptr + (guint)(n + 3 + 76 * aud_cfg->scale_factor * 3)) = voice_c[n];
+		  *(ptr + (guint)(n + 76 * config.scale_factor * 3)) = voice_c[n];
+		  *(ptr + (guint)(n + 3 + 76 * config.scale_factor * 3)) = voice_c[n];
 		}
 	    }
 	  }
 	}
       }
     }
-    if (aud_cfg->vis_type == VIS_SCOPE) {
+    if (config.vis_type == VIS_SCOPE) {
       for (x = 0; x < 75; x++) {
-	switch (aud_cfg->scope_mode) {
+	switch (config.scope_mode) {
 	case SCOPE_DOT:
 	  h = vis->data[x];
 	  if (!vis->scaled) {
 	  ptr = rgb_data + ((14 - h) * 76) + x;
 	    *ptr = vis_scope_colors[h + 1];
 	  }else{
-	    ptr = rgb_data + ((14 - h) * (guint)(76 * 4 * aud_cfg->scale_factor)) + (guint)(x * aud_cfg->scale_factor);
+	    ptr = rgb_data + ((14 - h) * (guint)(76 * 4 * config.scale_factor)) + (guint)(x * aud_cfg->scale_factor);
 	    *ptr = vis_scope_colors[h + 1];
 	    *(ptr + 1) = vis_scope_colors[h + 1];
-	    *(ptr + (guint)(76 * aud_cfg->scale_factor)) = vis_scope_colors[h + 1];
-	    *(ptr + (guint)(76 * aud_cfg->scale_factor)+1) = vis_scope_colors[h + 1];
+	    *(ptr + (guint)(76 * config.scale_factor)) = vis_scope_colors[h + 1];
+	    *(ptr + (guint)(76 * config.scale_factor)+1) = vis_scope_colors[h + 1];
 	  }
 	  break;
 	case SCOPE_LINE:
@@ -493,12 +494,12 @@
 	      *ptr = vis_scope_colors[y - 2];
 	    }
 	    else{
-	      ptr = rgb_data + (h * (guint)(76 * 4 * aud_cfg->scale_factor)) + (guint)(x * aud_cfg->scale_factor);
-	      for (y = h; y <= h2; y++, ptr += (guint)(76 * 4 * aud_cfg->scale_factor)) {
+	      ptr = rgb_data + (h * (guint)(76 * 4 * config.scale_factor)) + (guint)(x * aud_cfg->scale_factor);
+	      for (y = h; y <= h2; y++, ptr += (guint)(76 * 4 * config.scale_factor)) {
 		*ptr = vis_scope_colors[y - 2];
 		*(ptr + 1) = vis_scope_colors[y - 2];
-		*(ptr + (guint)(76 * aud_cfg->scale_factor)) = vis_scope_colors[y - 2];
-		*(ptr + (guint)(76 * aud_cfg->scale_factor)+1) = vis_scope_colors[y - 2];
+		*(ptr + (guint)(76 * config.scale_factor)) = vis_scope_colors[y - 2];
+		*(ptr + (guint)(76 * config.scale_factor)+1) = vis_scope_colors[y - 2];
 	      }
 	    }
 	  }
@@ -508,11 +509,11 @@
 	      ptr = rgb_data + (h * 76) + x;
 	      *ptr = vis_scope_colors[h + 1];
 	    }else{
-	      ptr = rgb_data + (h * (guint)(76 * 4 * aud_cfg->scale_factor)) + (guint)(x * aud_cfg->scale_factor);
+	      ptr = rgb_data + (h * (guint)(76 * 4 * config.scale_factor)) + (guint)(x * aud_cfg->scale_factor);
 	      *ptr = vis_scope_colors[h + 1];
 	      *(ptr + 1) = vis_scope_colors[h + 1];
-	      *(ptr + (guint)(76 * aud_cfg->scale_factor)) = vis_scope_colors[h + 1];
-	      *(ptr + (guint)(76 * aud_cfg->scale_factor)+1) = vis_scope_colors[h + 1];
+	      *(ptr + (guint)(76 * config.scale_factor)) = vis_scope_colors[h + 1];
+	      *(ptr + (guint)(76 * config.scale_factor)+1) = vis_scope_colors[h + 1];
 	    }
 	  }
 	  break;
@@ -530,12 +531,12 @@
 	    for (y = h; y <= h2; y++, ptr += 76)
 	      *ptr = c;
 	  }else{
-	    ptr = rgb_data + (h * (guint)(76 * 4 * aud_cfg->scale_factor)) + (guint)(x * aud_cfg->scale_factor);
-	    for (y = h; y <= h2; y++, ptr += (guint)(76 * 4 * aud_cfg->scale_factor)) {
+	    ptr = rgb_data + (h * (guint)(76 * 4 * config.scale_factor)) + (guint)(x * aud_cfg->scale_factor);
+	    for (y = h; y <= h2; y++, ptr += (guint)(76 * 4 * config.scale_factor)) {
 	      *ptr = c;
 	      *(ptr + 1) = c;
-	      *(ptr + (guint)(76 * aud_cfg->scale_factor)) = c;
-	      *(ptr + (guint)(76 * aud_cfg->scale_factor)+1) = c;
+	      *(ptr + (guint)(76 * config.scale_factor)) = c;
+	      *(ptr + (guint)(76 * config.scale_factor)+1) = c;
 	    }
 	  }
 	  break;
@@ -545,11 +546,11 @@
 
     GdkPixmap *obj = NULL;
     GdkGC *gc;
-    obj = gdk_pixmap_new(NULL, vis->width*(vis->scaled ? aud_cfg->scale_factor : 1), vis->height*(vis->scaled ? aud_cfg->scale_factor : 1), gdk_rgb_get_visual()->depth);
+    obj = gdk_pixmap_new(NULL, vis->width*(vis->scaled ? config.scale_factor : 1), vis->height*(vis->scaled ? aud_cfg->scale_factor : 1), gdk_rgb_get_visual()->depth);
     gc = gdk_gc_new(obj);
 
     if (!vis->scaled) {
-        if (aud_cfg->vis_type == VIS_VOICEPRINT) {
+        if (config.vis_type == VIS_VOICEPRINT) {
             gdk_draw_rgb_image(obj, gc, 0, 0, vis->width, vis->height,
                                GDK_RGB_DITHER_NORMAL, (guchar *) rgb_data,
                                76 * 3);
@@ -559,7 +560,7 @@
                                    76 , cmap);
         }
     } else {
-        if (aud_cfg->vis_type == VIS_VOICEPRINT) {
+        if (config.vis_type == VIS_VOICEPRINT) {
             gdk_draw_rgb_image(obj, gc, 0 << 1, 0 << 1,
                                vis->width << 1, vis->height << 1,
                                GDK_RGB_DITHER_NONE, (guchar *) rgb_data,
@@ -573,7 +574,7 @@
     }
 
     gdk_draw_drawable (widget->window, gc, obj, 0, 0, 0, 0,
-                       vis->width*(vis->scaled ? aud_cfg->scale_factor : 1), vis->height*(vis->scaled ? aud_cfg->scale_factor : 1));
+                       vis->width*(vis->scaled ? config.scale_factor : 1), vis->height*(vis->scaled ? aud_cfg->scale_factor : 1));
     g_object_unref(obj);
     g_object_unref(gc);
     gdk_rgb_cmap_free(cmap);
@@ -584,7 +585,7 @@
     GtkWidget *widget = GTK_WIDGET (vis);
     vis->scaled = !vis->scaled;
 
-    gtk_widget_set_size_request(widget, vis->width*(vis->scaled ? aud_cfg->scale_factor : 1), vis->height*(vis->scaled ? aud_cfg->scale_factor : 1));
+    gtk_widget_set_size_request(widget, vis->width*(vis->scaled ? config.scale_factor : 1), vis->height*(vis->scaled ? aud_cfg->scale_factor : 1));
 
     gtk_widget_queue_draw(GTK_WIDGET(vis));
 }
@@ -635,7 +636,7 @@
 
     memset(voiceprint_data, 0, 16*76);
     for (i = 0; i < 75; i++) {
-        vis->data[i] = (aud_cfg->vis_type == VIS_SCOPE) ? 6 : 0;
+        vis->data[i] = (config.vis_type == VIS_SCOPE) ? 6 : 0;
         vis->peak[i] = 0;
     }
 }
@@ -656,7 +657,7 @@
       if (micros > 14000)
 	g_timer_reset(timer);
     }
-    if (aud_cfg->vis_type == VIS_ANALYZER) {
+    if (config.vis_type == VIS_ANALYZER) {
         if (micros > 14000)
             falloff = TRUE;
         if (data || falloff) {
@@ -671,7 +672,7 @@
                     else if (vis->peak[i] > 0.0) {
                         vis->peak[i] -= vis->peak_speed[i];
                         vis->peak_speed[i] *=
-                            vis_pfalloff_speeds[aud_cfg->peaks_falloff];
+                            vis_pfalloff_speeds[config.peaks_falloff];
                         if (vis->peak[i] < vis->data[i])
                             vis->peak[i] = vis->data[i];
                         if (vis->peak[i] < 0.0)
@@ -681,14 +682,14 @@
                 else if (falloff) {
                     if (vis->data[i] > 0.0) {
                         vis->data[i] -=
-                            vis_afalloff_speeds[aud_cfg->analyzer_falloff];
+                            vis_afalloff_speeds[config.analyzer_falloff];
                         if (vis->data[i] < 0.0)
                             vis->data[i] = 0.0;
                     }
                     if (vis->peak[i] > 0.0) {
                         vis->peak[i] -= vis->peak_speed[i];
                         vis->peak_speed[i] *=
-                            vis_pfalloff_speeds[aud_cfg->peaks_falloff];
+                            vis_pfalloff_speeds[config.peaks_falloff];
                         if (vis->peak[i] < vis->data[i])
                             vis->peak[i] = vis->data[i];
                         if (vis->peak[i] < 0.0)
@@ -698,7 +699,7 @@
             }
         }
     }
-    else if (aud_cfg->vis_type == VIS_VOICEPRINT && data){
+    else if (config.vis_type == VIS_VOICEPRINT && data){
       for(i = 0; i < 16; i++)
 	{
 	  vis->data[i] = data[15 - i];
@@ -712,7 +713,7 @@
     if (micros > 14000) {
         if (!vis->refresh_delay) {
             gtk_widget_queue_draw(widget);
-            vis->refresh_delay = vis_redraw_delays[aud_cfg->vis_refresh];
+            vis->refresh_delay = vis_redraw_delays[config.vis_refresh];
         }
         vis->refresh_delay--;
     }