gst-inspect: fix unused-const-variable error in windows
[platform/upstream/gstreamer.git] / plugins / elements / gstfilesink.h
index 5a06f3e..c41a9a2 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
  *                    2000 Wim Taymans <wtay@chello.be>
  *
- * gstfilesink.h: 
+ * gstfilesink.h:
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 
-#ifndef __GST_FILESINK_H__
-#define __GST_FILESINK_H__
+#ifndef __GST_FILE_SINK_H__
+#define __GST_FILE_SINK_H__
+
+#include <stdio.h>
 
 #include <gst/gst.h>
+#include <gst/base/gstbasesink.h>
 
 G_BEGIN_DECLS
-#define GST_TYPE_FILESINK \
-  (gst_filesink_get_type())
-#define GST_FILESINK(obj) \
-  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_FILESINK,GstFileSink))
-#define GST_FILESINK_CLASS(klass) \
-  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_FILESINK,GstFileSinkClass))
-#define GST_IS_FILESINK(obj) \
-  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_FILESINK))
-#define GST_IS_FILESINK_CLASS(obj) \
-  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_FILESINK))
+
+#define GST_TYPE_FILE_SINK \
+  (gst_file_sink_get_type())
+#define GST_FILE_SINK(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_FILE_SINK,GstFileSink))
+#define GST_FILE_SINK_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_FILE_SINK,GstFileSinkClass))
+#define GST_IS_FILE_SINK(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_FILE_SINK))
+#define GST_IS_FILE_SINK_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_FILE_SINK))
+#define GST_FILE_SINK_CAST(obj) ((GstFileSink *)(obj))
+
 typedef struct _GstFileSink GstFileSink;
 typedef struct _GstFileSinkClass GstFileSinkClass;
 
-typedef enum
-{
-  GST_FILESINK_OPEN = GST_ELEMENT_FLAG_LAST,
-
-  GST_FILESINK_FLAG_LAST = GST_ELEMENT_FLAG_LAST + 2
-} GstFileSinkFlags;
+/**
+ * GstFileSinkBufferMode:
+ * @GST_FILE_SINK_BUFFER_MODE_DEFAULT: Default buffering
+ * @GST_FILE_SINK_BUFFER_MODE_FULL: Fully buffered
+ * @GST_FILE_SINK_BUFFER_MODE_LINE: Line buffered
+ * @GST_FILE_SINK_BUFFER_MODE_UNBUFFERED: Unbuffered
+ *
+ * File read buffering mode.
+ */
+typedef enum {
+  GST_FILE_SINK_BUFFER_MODE_DEFAULT    = -1,
+  GST_FILE_SINK_BUFFER_MODE_FULL       = _IOFBF,
+  GST_FILE_SINK_BUFFER_MODE_LINE       = _IOLBF,
+  GST_FILE_SINK_BUFFER_MODE_UNBUFFERED = _IONBF
+} GstFileSinkBufferMode;
 
-struct _GstFileSink
-{
-  GstElement element;
+/**
+ * GstFileSink:
+ *
+ * Opaque #GstFileSink structure.
+ */
+struct _GstFileSink {
+  GstBaseSink parent;
 
+  /*< private >*/
   gchar *filename;
   gchar *uri;
   FILE *file;
 
-  guint64 data_written;
-};
+  gboolean seekable;
+  guint64 current_pos;
+
+  gint    buffer_mode;
+  guint   buffer_size;
 
-struct _GstFileSinkClass
-{
-  GstElementClass parent_class;
+  GstBufferList *buffer;
+  guint   current_buffer_size;
 
-  /* signals */
-  void (*handoff) (GstElement * element, GstPad * pad);
+  gboolean append;
 };
 
-GType gst_filesink_get_type (void);
+struct _GstFileSinkClass {
+  GstBaseSinkClass parent_class;
+};
+
+G_GNUC_INTERNAL GType gst_file_sink_get_type (void);
 
 G_END_DECLS
-#endif /* __GST_FILESINK_H__ */
+
+#endif /* __GST_FILE_SINK_H__ */