gstreamer_core/libs/gst/controller/gstlfocontrolsource.h
changeset 0 0e761a78d257
child 11 1373546e05c6
equal deleted inserted replaced
-1:000000000000 0:0e761a78d257
       
     1 /* GStreamer
       
     2  *
       
     3  * Copyright (C) 2007 Sebastian Dröge <slomo@circular-chaos.org>
       
     4  *
       
     5  * gstlfocontrolsource.h: Control source that provides some periodic waveforms
       
     6  *                        as control values.
       
     7  *
       
     8  * This library is free software; you can redistribute it and/or
       
     9  * modify it under the terms of the GNU Library General Public
       
    10  * License as published by the Free Software Foundation; either
       
    11  * version 2 of the License, or (at your option) any later version.
       
    12  *
       
    13  * This library is distributed in the hope that it will be useful,
       
    14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
       
    15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       
    16  * Library General Public License for more details.
       
    17  *
       
    18  * You should have received a copy of the GNU Library General Public
       
    19  * License along with this library; if not, write to the
       
    20  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
       
    21  * Boston, MA 02111-1307, USA.
       
    22  */
       
    23 
       
    24 #ifndef __GST_LFO_CONTROL_SOURCE_H__
       
    25 #define __GST_LFO_CONTROL_SOURCE_H__
       
    26 
       
    27 #include <glib-object.h>
       
    28 #include <gst/gst.h>
       
    29 
       
    30 #include "gstcontrolsource.h"
       
    31 
       
    32 G_BEGIN_DECLS
       
    33 
       
    34 #define GST_TYPE_LFO_CONTROL_SOURCE \
       
    35   (gst_lfo_control_source_get_type ())
       
    36 #define GST_LFO_CONTROL_SOURCE(obj) \
       
    37   (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_LFO_CONTROL_SOURCE, GstLFOControlSource))
       
    38 #define GST_LFO_CONTROL_SOURCE_CLASS(vtable) \
       
    39   (G_TYPE_CHECK_CLASS_CAST ((vtable), GST_TYPE_LFO_CONTROL_SOURCE, GstLFOControlSourceClass))
       
    40 #define GST_IS_LFO_CONTROL_SOURCE(obj) \
       
    41   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_LFO_CONTROL_SOURCE))
       
    42 #define GST_IS_LFO_CONTROL_SOURCE_CLASS(vtable) \
       
    43   (G_TYPE_CHECK_CLASS_TYPE ((vtable), GST_TYPE_LFO_CONTROL_SOURCE))
       
    44 #define GST_LFO_CONTROL_SOURCE_GET_CLASS(inst) \
       
    45   (G_TYPE_INSTANCE_GET_CLASS ((inst), GST_TYPE_LFO_CONTROL_SOURCE, GstLFOControlSourceClass))
       
    46 
       
    47 #define GST_TYPE_LFO_WAVEFORM (gst_lfo_waveform_get_type ())
       
    48 
       
    49 typedef struct _GstLFOControlSource GstLFOControlSource;
       
    50 typedef struct _GstLFOControlSourceClass GstLFOControlSourceClass;
       
    51 typedef struct _GstLFOControlSourcePrivate GstLFOControlSourcePrivate;
       
    52 
       
    53 /**
       
    54  * GstLFOWaveform:
       
    55  * @GST_LFO_WAVEFORM_SINE: sine waveform
       
    56  * @GST_LFO_WAVEFORM_SQUARE: square waveform
       
    57  * @GST_LFO_WAVEFORM_SAW: saw waveform
       
    58  * @GST_LFO_WAVEFORM_REVERSE_SAW: reverse saw waveform
       
    59  * @GST_LFO_WAVEFORM_TRIANGLE: triangle waveform
       
    60  *
       
    61  * The various waveform modes available.
       
    62  */
       
    63 typedef enum
       
    64 {
       
    65   GST_LFO_WAVEFORM_SINE,
       
    66   GST_LFO_WAVEFORM_SQUARE,
       
    67   GST_LFO_WAVEFORM_SAW,
       
    68   GST_LFO_WAVEFORM_REVERSE_SAW,
       
    69   GST_LFO_WAVEFORM_TRIANGLE
       
    70 } GstLFOWaveform;
       
    71 
       
    72 /**
       
    73  * GstLFOControlSource:
       
    74  *
       
    75  * The instance structure of #GstControlSource.
       
    76  */
       
    77 struct _GstLFOControlSource {
       
    78   GstControlSource parent;
       
    79 
       
    80   /* <private> */
       
    81   GstLFOControlSourcePrivate *priv;
       
    82   GMutex *lock;
       
    83   gpointer _gst_reserved[GST_PADDING];
       
    84 };
       
    85 
       
    86 struct _GstLFOControlSourceClass {
       
    87   GstControlSourceClass parent_class;
       
    88   
       
    89   /*< private >*/
       
    90   gpointer _gst_reserved[GST_PADDING];
       
    91 };
       
    92 #ifdef __SYMBIAN32__
       
    93 IMPORT_C
       
    94 #endif
       
    95 
       
    96 
       
    97 GType gst_lfo_control_source_get_type (void);
       
    98 #ifdef __SYMBIAN32__
       
    99 IMPORT_C
       
   100 #endif
       
   101 
       
   102 GType gst_lfo_waveform_get_type (void);
       
   103 
       
   104 /* Functions */
       
   105 #ifdef __SYMBIAN32__
       
   106 IMPORT_C
       
   107 #endif
       
   108 
       
   109 
       
   110 GstLFOControlSource *gst_lfo_control_source_new (void);
       
   111 
       
   112 G_END_DECLS
       
   113 
       
   114 #endif /* __GST_LFO_CONTROL_SOURCE_H__ */