4 extern gboolean _gst_plugin_spew;
6 gboolean idle_func (gpointer data);
8 GtkWidget *drawingarea;
11 main (int argc, char *argv[])
14 GstElementFactory *srcfactory;
16 GstElementFactory *wavefactory;
18 GtkWidget *wave_widget;
21 gst_init (&argc, &argv);
22 gst_plugin_load ("libsmoothwave.so");
23 gtk_init (&argc, &argv);
25 bin = gst_pipeline_new ("bin");
27 srcfactory = gst_element_factory_find ("sinesrc");
28 g_return_val_if_fail (srcfactory != NULL, -1);
29 wavefactory = gst_element_factory_find ("smoothwave");
30 g_return_val_if_fail (wavefactory != NULL, -1);
32 src = gst_element_factory_create (srcfactory, "src");
33 //g_object_set(G_OBJECT(src),"bytes_per_read",(gulong)2048,NULL);
34 wave = gst_element_factory_create (wavefactory, "wave");
35 g_object_set (G_OBJECT (wave), "width", 256, "height", 100, NULL);
38 gst_bin_add (GST_BIN (bin), GST_ELEMENT (src));
39 gst_bin_add (GST_BIN (bin), GST_ELEMENT (wave));
41 gst_pad_link (gst_element_get_pad (src, "src"),
42 gst_element_get_pad (wave, "sink"));
44 appwindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
45 g_object_get (G_OBJECT (wave), "widget", &wave_widget, NULL);
46 gtk_container_add (GTK_CONTAINER (appwindow), wave_widget);
47 gtk_widget_show_all (appwindow);
49 gst_element_set_state (GST_ELEMENT (bin), GST_STATE_READY);
50 gst_element_set_state (GST_ELEMENT (bin), GST_STATE_PLAYING);
52 g_idle_add (idle_func, bin);
60 idle_func (gpointer data)
62 gst_bin_iterate (GST_BIN (data));