Mercurial > audlegacy-plugins
diff src/rovascope/paranormal.h @ 408:290588854a9d trunk
[svn] - rovascope -- a variant of the paranormal visualization engine that is
uses random data instead of presets.
author | nenolod |
---|---|
date | Sat, 06 Jan 2007 01:57:34 -0800 |
parents | src/paranormal/paranormal.h@b185ed2f8fa2 |
children | f305ebcc8136 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/rovascope/paranormal.h Sat Jan 06 01:57:34 2007 -0800 @@ -0,0 +1,64 @@ +#ifndef _PARANORMAL_H +#define _PARANORMAL_H + +#include <glib.h> + +#include "actuators.h" + +struct pn_sound_data +{ + gint16 pcm_data[2][512]; + gint16 freq_data[2][256]; +}; + +struct pn_image_data +{ + int width, height; + struct pn_color cmap[256]; + guchar *surface[2]; +}; + +/* The executable (ie xmms.c or standalone.c) + is responsible for allocating this and filling + it with default/saved values */ +struct pn_rc +{ + struct pn_actuator *actuator; +}; + +/* core funcs */ +void pn_init (void); +void pn_cleanup (void); +void pn_render (void); +void pn_swap_surfaces (void); + +/* Implemented elsewhere (ie xmms.c or standalone.c) */ +void pn_set_rc (); +void pn_fatal_error (const char *fmt, ...); +void pn_error (const char *fmt, ...); +void pn_quit (void); + +/* Implimented in cfg.c */ +void pn_configure (void); + +/* globals used for rendering */ +extern struct pn_rc *pn_rc; +extern struct pn_sound_data *pn_sound_data; +extern struct pn_image_data *pn_image_data; + +extern gboolean pn_new_beat; + +/* global trig pre-computes */ +extern float sin_val[360]; +extern float cos_val[360]; + +/* beat detection */ +int pn_is_new_beat(void); + +struct pn_actuator *rovascope_get_random_colourmap(void); +struct pn_actuator *rovascope_get_random_general(void); +struct pn_actuator *rovascope_get_random_normal_scope(void); + +struct pn_actuator *rovascope_get_random_actuator(void); + +#endif /* _PARANORMAL_H */