72 void (*
func) (void) = (
void (*) (void)) node->data;
80 memcpy (mono, data,
sizeof (
float) * 512);
84 while (set < & mono[512])
86 * set ++ = (data[0] + data[1]) / 2;
104 void (*
func) (
const float *) = (
void (*) (
const float *)) node->data;
110 void (*
func) (
const float *,
int) = (
void (*) (
const float *,
int)) node->data;
111 func (data, channels);
114 for (GList * node =
vis_funcs[AUD_VIS_TYPE_FREQ]; node; node = node->next)
116 void (*
func) (
const float *) = (
void (*) (
const float *)) node->data;
123 return (vis->
plugin == plugin) ? 0 : -1;
135 g_return_if_fail (header !=
NULL);
142 if (header->get_widget !=
NULL)
143 vis->
widget = header->get_widget ();
148 g_signal_connect (vis->
widget,
"destroy", (GCallback)
149 gtk_widget_destroyed, & vis->
widget);
176 VisPlugin * header = vis->
header;
226 g_return_val_if_fail (vp !=
NULL,
FALSE);
228 if (vp->init !=
NULL && ! vp->init ())
240 g_return_if_fail (vp !=
NULL);
245 if (vp->cleanup !=
NULL)
251 g_return_val_if_fail (widget,
NULL);
256 if (vis->
widget == widget)
bool_t vis_plugin_start(PluginHandle *plugin)
void vis_send_clear(void)
void interface_add_plugin_widget(PluginHandle *plugin, GtkWidget *widget)
const char PluginHandle decoder const char PluginHandle decoder const char PluginHandle decoder void const PreferencesWidget int
void interface_remove_plugin_widget(PluginHandle *plugin, GtkWidget *widget)
static void vis_unload(PluginHandle *plugin)
#define PLUGIN_HAS_FUNC(p, func)
void vis_func_add(int type, GCallback func)
static void pcm_to_mono(const float *data, float *mono, int channels)
static void vis_load(PluginHandle *plugin)
const void * plugin_get_header(PluginHandle *plugin)
void vis_plugin_stop(PluginHandle *plugin)
bool_t(* PluginForEachFunc)(PluginHandle *plugin, void *data)
void calc_freq(const float data[N], float freq[N/2])
static GList * loaded_vis_plugins
static GList * vis_funcs[AUD_VIS_TYPES]
static bool_t vis_init_cb(PluginHandle *plugin)
PluginHandle * vis_plugin_by_widget(void *widget)
void vis_func_remove(GCallback func)
void plugin_for_enabled(int type, PluginForEachFunc func, void *data)
static int vis_find_cb(LoadedVis *vis, PluginHandle *plugin)
static void vis_cleanup_cb(LoadedVis *vis)
void vis_send_audio(const float *data, int channels)
void data PluginHandle plugin
const char * plugin_get_name(PluginHandle *plugin)
void vis_runner_enable(bool_t enable)