4 extern gboolean _gst_plugin_spew;
6 gboolean idle_func(gpointer data);
8 GtkWidget *drawingarea;
10 int main(int argc,char *argv[]) {
12 GstElementFactory *srcfactory;
14 GstElementFactory *wavefactory;
16 GtkWidget *wave_widget;
19 gst_init(&argc,&argv);
20 gst_plugin_load("libsmoothwave.so");
21 gtk_init(&argc,&argv);
23 bin = gst_pipeline_new("bin");
25 srcfactory = gst_element_factory_find("sinesrc");
26 g_return_val_if_fail(srcfactory != NULL, -1);
27 wavefactory = gst_element_factory_find("smoothwave");
28 g_return_val_if_fail(wavefactory != NULL, -1);
30 src = gst_element_factory_create(srcfactory,"src");
31 //g_object_set(G_OBJECT(src),"bytes_per_read",(gulong)2048,NULL);
32 wave = gst_element_factory_create(wavefactory,"wave");
33 g_object_set(G_OBJECT(wave),"width",256,"height",100,NULL);
36 gst_bin_add(GST_BIN(bin),GST_ELEMENT(src));
37 gst_bin_add(GST_BIN(bin),GST_ELEMENT(wave));
39 gst_pad_link(gst_element_get_pad(src,"src"),
40 gst_element_get_pad(wave,"sink"));
42 appwindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
43 g_object_get(G_OBJECT(wave),"widget",&wave_widget,NULL);
44 gtk_container_add(GTK_CONTAINER(appwindow), wave_widget);
45 gtk_widget_show_all(appwindow);
47 gst_element_set_state(GST_ELEMENT(bin),GST_STATE_READY);
48 gst_element_set_state(GST_ELEMENT(bin),GST_STATE_PLAYING);
50 g_idle_add(idle_func,bin);
57 gboolean idle_func(gpointer data)
59 gst_bin_iterate(GST_BIN(data));