Mercurial > audlegacy-plugins
view src/projectm-1.0/main.c @ 2408:88168440e223
Add _gtk_projectm_destroy_impl().
author | William Pitcock <nenolod@atheme.org> |
---|---|
date | Mon, 18 Feb 2008 02:03:54 -0600 |
parents | dff5709d36bf |
children | f67bdd91620a |
line wrap: on
line source
/* * main.cxx: plugin glue to libprojectm * Copyright (c) 2008 William Pitcock <nenolod@sacredspiral.co.uk> * Portions copyright (c) 2004-2006 Peter Sperl * * This program is free software; you may distribute it under the terms * of the GNU General Public License; version 2. */ #include <audacious/plugin.h> #include "gtk_projectm_impl.h" GtkWidget *projectm = NULL; GtkWidget *window = NULL; void projectM_init(void) { GtkWidget *vbox; if (window) return; window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_title(GTK_WINDOW(window), "ProjectM"); gtk_container_set_reallocate_redraws(GTK_CONTAINER(window), TRUE); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add(GTK_CONTAINER(window), vbox); gtk_widget_show(vbox); projectm = gtk_projectm_new(); gtk_box_pack_start(GTK_BOX(vbox), projectm, TRUE, TRUE, 0); gtk_widget_show(projectm); gtk_widget_show(window); } void projectM_cleanup(void) { gtk_widget_destroy(window); } void projectM_render_pcm(gint16 pcm_data[2][512]) { g_return_if_fail(projectm != NULL); gtk_projectm_add_pcm_data(projectm, pcm_data); } VisPlugin projectM_vtable = { .description = "projectM", .num_pcm_chs_wanted = 2, .init = projectM_init, .cleanup = projectM_cleanup, .render_pcm = projectM_render_pcm, }; VisPlugin *projectM_vplist[] = { &projectM_vtable, NULL }; DECLARE_PLUGIN(projectm, NULL, NULL, NULL, NULL, NULL, NULL, projectM_vplist, NULL);