gst-indent
[platform/upstream/gst-plugins-good.git] / gst / smoothwave / demo-osssrc.c
1 #include <gtk/gtk.h>
2 #include <gst/gst.h>
3
4 extern gboolean _gst_plugin_spew;
5
6 gboolean idle_func (gpointer data);
7
8 GtkWidget *drawingarea;
9
10 int
11 main (int argc, char *argv[])
12 {
13   GstElement *bin;
14   GstElementFactory *srcfactory;
15   GstElement *src;
16   GstElementFactory *wavefactory;
17   GstElement *wave;
18   GtkWidget *wave_widget;
19   GtkWidget *appwindow;
20
21   gst_init (&argc, &argv);
22   gst_plugin_load ("libsmoothwave.so");
23   gtk_init (&argc, &argv);
24
25   bin = gst_pipeline_new ("bin");
26
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);
31
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);
36
37
38   gst_bin_add (GST_BIN (bin), GST_ELEMENT (src));
39   gst_bin_add (GST_BIN (bin), GST_ELEMENT (wave));
40
41   gst_pad_link (gst_element_get_pad (src, "src"),
42       gst_element_get_pad (wave, "sink"));
43
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);
48
49   gst_element_set_state (GST_ELEMENT (bin), GST_STATE_READY);
50   gst_element_set_state (GST_ELEMENT (bin), GST_STATE_PLAYING);
51
52   g_idle_add (idle_func, bin);
53
54   gtk_main ();
55
56   return 0;
57 }
58
59 gboolean
60 idle_func (gpointer data)
61 {
62   gst_bin_iterate (GST_BIN (data));
63   return TRUE;
64 }