gst_plugins_base/gst-libs/gst/interfaces/videoorientation.h
changeset 2 5505e8908944
child 8 4a7fac7dd34a
equal deleted inserted replaced
1:4c282e7dd6d3 2:5505e8908944
       
     1 /* GStreamer
       
     2  * Copyright (C) 2006 Nokia <stefan.kost@nokia.com
       
     3  *
       
     4  * videoorientation.h: video flipping and centering interface
       
     5  *
       
     6  * This library is free software; you can redistribute it and/or
       
     7  * modify it under the terms of the GNU Library General Public
       
     8  * License as published by the Free Software Foundation; either
       
     9  * version 2 of the License, or (at your option) any later version.
       
    10  *
       
    11  * This library is distributed in the hope that it will be useful,
       
    12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
       
    13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
       
    14  * Library General Public License for more details.
       
    15  *
       
    16  * You should have received a copy of the GNU Library General Public
       
    17  * License along with this library; if not, write to the
       
    18  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
       
    19  * Boston, MA 02111-1307, USA.
       
    20  */
       
    21 
       
    22 #ifndef __GST_VIDEO_ORIENTATION_H__
       
    23 #define __GST_VIDEO_ORIENTATION_H__
       
    24 
       
    25 #include <gst/gst.h>
       
    26 #include <gst/interfaces/interfaces-enumtypes.h>
       
    27 
       
    28 G_BEGIN_DECLS
       
    29 
       
    30 #define GST_TYPE_VIDEO_ORIENTATION \
       
    31   (gst_video_orientation_get_type ())
       
    32 #define GST_VIDEO_ORIENTATION(obj) \
       
    33   (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_VIDEO_ORIENTATION, GstVideoOrientation))
       
    34 #define GST_IS_VIDEO_ORIENTATION(obj) \
       
    35   (GST_IMPLEMENTS_INTERFACE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_VIDEO_ORIENTATION))
       
    36 #define GST_VIDEO_ORIENTATION_GET_IFACE(inst) \
       
    37   (G_TYPE_INSTANCE_GET_INTERFACE ((inst), GST_TYPE_VIDEO_ORIENTATION, GstVideoOrientationInterface))
       
    38 
       
    39 /**
       
    40  * GstVideoOrientation:
       
    41  *
       
    42  * Opaque #GstVideoOrientation data structure.
       
    43  */
       
    44 typedef struct _GstVideoOrientation GstVideoOrientation;
       
    45 
       
    46 /**
       
    47  * GstVideoOrientationInterface:
       
    48  * @parent: parent interface type.
       
    49  * @get_hflip: virtual method to get horizontal flipping state
       
    50  * @get_vflip: virtual method to get vertical flipping state
       
    51  * @get_hcenter: virtual method to get horizontal centering state
       
    52  * @get_vcenter: virtual method to get vertical centering state
       
    53  * @set_hflip: virtual method to set horizontal flipping state
       
    54  * @set_vflip: virtual method to set vertical flipping state
       
    55  * @set_hcenter: virtual method to set horizontal centering state
       
    56  * @set_vcenter: virtual method to set vertical centering state
       
    57  *
       
    58  * #GstVideoOrientationInterface interface.
       
    59  */
       
    60 typedef struct _GstVideoOrientationInterface {
       
    61   GTypeInterface parent;
       
    62 
       
    63   /* virtual functions */
       
    64   gboolean (* get_hflip)   (GstVideoOrientation *video_orientation, gboolean *flip);
       
    65   gboolean (* get_vflip)   (GstVideoOrientation *video_orientation, gboolean *flip);
       
    66   gboolean (* get_hcenter) (GstVideoOrientation *video_orientation, gint *center);
       
    67   gboolean (* get_vcenter) (GstVideoOrientation *video_orientation, gint *center);
       
    68 
       
    69   gboolean (* set_hflip)   (GstVideoOrientation *video_orientation, gboolean flip);
       
    70   gboolean (* set_vflip)   (GstVideoOrientation *video_orientation, gboolean flip);
       
    71   gboolean (* set_hcenter) (GstVideoOrientation *video_orientation, gint center);
       
    72   gboolean (* set_vcenter) (GstVideoOrientation *video_orientation, gint center);
       
    73 
       
    74   /*< private > */
       
    75   gpointer _gst_reserved[GST_PADDING];
       
    76 } GstVideoOrientationInterface;
       
    77 #ifdef __SYMBIAN32__
       
    78 IMPORT_C
       
    79 #endif
       
    80 
       
    81 
       
    82 GType           gst_video_orientation_get_type              (void);
       
    83 
       
    84 /* virtual class function wrappers */
       
    85 #ifdef __SYMBIAN32__
       
    86 IMPORT_C
       
    87 #endif
       
    88 
       
    89 gboolean gst_video_orientation_get_hflip (GstVideoOrientation *video_orientation, gboolean *flip);
       
    90 #ifdef __SYMBIAN32__
       
    91 IMPORT_C
       
    92 #endif
       
    93 
       
    94 gboolean gst_video_orientation_get_vflip (GstVideoOrientation *video_orientation, gboolean *flip);
       
    95 #ifdef __SYMBIAN32__
       
    96 IMPORT_C
       
    97 #endif
       
    98 
       
    99 gboolean gst_video_orientation_get_hcenter (GstVideoOrientation *video_orientation, gint *center);
       
   100 #ifdef __SYMBIAN32__
       
   101 IMPORT_C
       
   102 #endif
       
   103 
       
   104 gboolean gst_video_orientation_get_vcenter (GstVideoOrientation *video_orientation, gint *center);
       
   105 #ifdef __SYMBIAN32__
       
   106 IMPORT_C
       
   107 #endif
       
   108 
       
   109 
       
   110 gboolean gst_video_orientation_set_hflip (GstVideoOrientation *video_orientation, gboolean flip);
       
   111 #ifdef __SYMBIAN32__
       
   112 IMPORT_C
       
   113 #endif
       
   114 
       
   115 gboolean gst_video_orientation_set_vflip (GstVideoOrientation *video_orientation, gboolean flip);
       
   116 #ifdef __SYMBIAN32__
       
   117 IMPORT_C
       
   118 #endif
       
   119 
       
   120 gboolean gst_video_orientation_set_hcenter (GstVideoOrientation *video_orientation, gint center);
       
   121 #ifdef __SYMBIAN32__
       
   122 IMPORT_C
       
   123 #endif
       
   124 
       
   125 gboolean gst_video_orientation_set_vcenter (GstVideoOrientation *video_orientation, gint center);
       
   126 
       
   127 G_END_DECLS
       
   128 
       
   129 #endif /* __GST_VIDEO_ORIENTATION_H__ */