Exemple #1
0
void enable_vis_plugin(int i, gboolean enable)
{
	GList *node = g_list_nth(vp_data->vis_list, i);
	VisPlugin *vp;

	if (!node || !(node->data))
		return;
	vp = (VisPlugin *) node->data;

	if (enable && !g_list_find(vp_data->enabled_list, vp))
	{
		vp_data->enabled_list = g_list_append(vp_data->enabled_list, vp);
		if (vp->init)
			vp->init();
		if(get_input_playing() && vp->playback_start)
			vp->playback_start();
	}
	else if (!enable && g_list_find(vp_data->enabled_list, vp))
	{
		vp_data->enabled_list = g_list_remove(vp_data->enabled_list, vp);
		if(get_input_playing() && vp->playback_stop)
			vp->playback_stop();
		if (vp->cleanup)
			vp->cleanup();
	}
}
Exemple #2
0
void vis_enable_from_stringified_list(gchar * list)
{
	gchar **plugins, *base;
	GList *node;
	gint i;
	VisPlugin *vp;

	if (!list || !strcmp(list, ""))
		return;
	plugins = g_strsplit(list, ",", 0);
	for(i = 0; plugins[i]; i++)
	{
		node = vp_data->vis_list;
 		while (node)
		{
			base = xmms_g_basename(((VisPlugin *) node->data)->filename);
			if (!strcmp(plugins[i], base))
			{
				vp = node->data;
				vp_data->enabled_list = g_list_append(vp_data->enabled_list, (VisPlugin *) vp);
				if(vp->init)
					vp->init();
				if(get_input_playing() && vp->playback_start)
					vp->playback_start();
			}
			node = node->next;
		}
	}
	g_strfreev(plugins);
}