Support for GStreamer 1.0
[projects/chimara/chimara.git] / libchimara / schannel.h
index fee87b1c577ad7feeb56f9324f787289f8ef8e45..ab1bee44d01c73863828eadcb74f205add7b0ef9 100644 (file)
@@ -5,7 +5,8 @@
 #include <glib.h>
 #include "glk.h"
 #include "gi_dispa.h"
-#ifdef GSTREAMER_SOUND
+#include "chimara-glk.h"
+#if defined(GSTREAMER_0_10_SOUND) || defined(GSTREAMER_1_0_SOUND)
 #include <gst/gst.h>
 #endif
 
@@ -17,11 +18,26 @@ struct glk_schannel_struct
        /* Pointer to the list node in the global sound channel list that contains 
         this sound channel */
        GList *schannel_list;
+       /* Pointer to the GTK widget this sound channel belongs to, for convenience */
+       ChimaraGlk *glk;
 
-#ifdef GSTREAMER_SOUND
+       /* Resource number and notification ID of last played sound */
+       glui32 resource, notify;
+       /* How many times to repeat the last sound played (-1 = forever) */
+       glui32 repeats;
+       /* Whether channel is paused */
+       gboolean paused;
+       
+       /* Volume change information */
+       double target_volume;
+       long target_time_sec, target_time_usec;
+       guint volume_timer_id;
+       glui32 volume_notify;
+
+#if defined(GSTREAMER_0_10_SOUND) || defined(GSTREAMER_1_0_SOUND)
        /* Each sound channel is represented as a GStreamer pipeline.  */
-       GstElement *pipeline, *source, *filter, *sink;
+       GstElement *pipeline, *source, *typefind, *demux, *decode, *convert, *filter, *sink;
 #endif
 };
 
-#endif
\ No newline at end of file
+#endif