diff src/rootvis/rootvis.h @ 900:d985f0dcdeb0 trunk

[svn] - add a starting point for xmms-rootvis port. giacomo will need to finish this up, as my XLib skills are not enough at this time.
author nenolod
date Mon, 26 Mar 2007 01:19:26 -0700
parents
children bd3a24b39058
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/rootvis/rootvis.h	Mon Mar 26 01:19:26 2007 -0700
@@ -0,0 +1,103 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <X11/Xlib.h>
+#include <X11/Xatom.h>
+#include <X11/Xproto.h>
+#include <audacious/plugin.h>
+#include <audacious/util.h>
+
+
+/* following values are used if there is no user configuration */
+#define DEFAULT_stereo 0 // therefore we don't initialize the second channel with different settings
+
+#define DEFAULT_geometry_posx 520
+#define DEFAULT_geometry_posy 1
+#define DEFAULT_geometry_orientation 0 // 0 = bottom->up, 1 = top->down, 2 = left->right, 3 = right->left
+#define DEFAULT_geometry_height 50 // maximum height/amplitude of a bar
+#define DEFAULT_geometry_space 1 // space between bars
+#define DEFAULT_bar_width 8 // width of a bar
+// set the following to 0 to disable shadows
+#define DEFAULT_bar_shadow 1 // offset of shadow in pixels
+// set the following to HEIGHT to disable falloff
+#define DEFAULT_bar_falloff 5 // how many pixels the bars should falloff every frame
+#define DEFAULT_bar_color_1 "#a3c422FF"
+#define DEFAULT_bar_color_2 "#b8dd27FF"
+#define DEFAULT_bar_color_3 "#cdf62bFF"
+#define DEFAULT_bar_color_4 "#e6ff64FF"
+#define DEFAULT_bar_shadow_color "#00285088"
+
+// set the following to 0 to disable peaks
+#define DEFAULT_peak_enabled	1
+#define DEFAULT_peak_falloff	4 // how many pixels the peaks should falloff every frame
+#define DEFAULT_peak_step	5 // how many frames should the peak resist the falloff
+#define DEFAULT_peak_color "#ffffffdd"
+
+// we're cutting off high frequencies by only showing 0 to CUTOFF
+#define DEFAULT_cutoff 180 // frequencies are represented by 256 values
+#define DEFAULT_div 4 // we have CUTOFF sources, every bar represents DIV sources
+
+/* Linearity of the amplitude scale (0.5 for linear, keep in [0.1, 0.9]) */
+#define DEFAULT_linearity 0.33
+#define DEFAULT_fps	30 // how many frames per second should be drawn
+
+// print out debug messages
+#define DEFAULT_debug 0
+
+// this is for color[] indexing
+
+#define RED 0
+#define GREEN 1
+#define BLUE 2
+#define ALPHA 3
+#define COLORSIZE 4
+
+
+void print_status(char msg[]);
+void error_exit(char msg[]);
+
+void threads_lock(void);
+void threads_unlock(char);
+
+struct rootvis_geometry {
+	char* display;
+	int posx;
+	int posy;
+	int orientation;
+	int height;
+	int space;
+};
+
+struct rootvis_bar {
+	int width;
+	int shadow;
+	int falloff;
+	int bevel;
+	int gradient;
+	unsigned char color[4][4];
+	unsigned char bevel_color[4];
+	unsigned char shadow_color[4];
+};
+
+struct rootvis_peak {
+	int enabled;
+	int falloff;
+	int step;
+	int shadow;
+	unsigned char color[4];
+};
+
+struct rootvis_data {
+	int cutoff;
+	int div;
+	int fps;
+	float linearity;
+};
+
+struct rootvis_config {
+	int stereo;
+	struct rootvis_geometry geo[2];
+	struct rootvis_bar bar[2];
+	struct rootvis_peak peak[2];
+	struct rootvis_data data[2];
+	int debug;
+} conf;