00001 // -*- c++ -*- 00002 // Generated by gtkmmproc -- DO NOT MODIFY! 00003 #ifndef _GSTREAMERMM_VALUE_H 00004 #define _GSTREAMERMM_VALUE_H 00005 00006 00007 #include <glibmm.h> 00008 00009 /* gstreamermm - a C++ wrapper for gstreamer 00010 * 00011 * Copyright 2008 The gstreamermm Development Team 00012 * 00013 * This library is free software; you can redistribute it and/or 00014 * modify it under the terms of the GNU Lesser General Public 00015 * License as published by the Free Software Foundation; either 00016 * version 2.1 of the License, or (at your option) any later version. 00017 * 00018 * This library is distributed in the hope that it will be useful, 00019 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00021 * Lesser General Public License for more details. 00022 * 00023 * You should have received a copy of the GNU Lesser General Public 00024 * License along with this library; if not, write to the Free 00025 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00026 */ 00027 00028 #include <gst/gstvalue.h> 00029 #include <glibmm/value_custom.h> 00030 00031 00032 namespace Gst 00033 { 00034 00064 class Fourcc 00065 { 00066 public: 00069 Fourcc(); 00070 00073 Fourcc(const Fourcc& src); 00074 00077 Fourcc(char first, char second, char third, char fourth); 00078 00082 explicit Fourcc(const Glib::ustring& s); 00083 00086 explicit Fourcc(guint32 fourcc); 00087 00090 explicit Fourcc(const Glib::ValueBase& gst_fraction_value); 00091 00094 explicit Fourcc(const GValue& gst_fraction_value); 00095 00096 Fourcc& operator=(const Fourcc& src); 00097 00098 00099 public: 00103 guint32 get_fourcc() const; 00104 00105 public: 00106 char first; 00107 char second; 00108 char third; 00109 char fourth; 00110 00111 private: 00112 void set_ccs(guint32 fourcc); 00113 }; 00114 00115 00139 class Fraction 00140 { 00141 public: 00144 Fraction(); 00145 00148 Fraction(const Fraction& src); 00149 00152 Fraction(int num, int denom); 00153 00156 explicit Fraction(const Glib::ValueBase& gst_fraction_value); 00157 00160 explicit Fraction(const GValue& gst_fraction_value); 00161 00162 Fraction& operator=(const Fraction& src); 00163 00164 00165 public: 00166 int num; 00167 int denom; 00168 }; 00169 00170 //TODO: Use a template for IntRange, DoubleRange, FractionRange? murrayc 00171 00196 class IntRange 00197 { 00198 public: 00201 IntRange(); 00202 00205 IntRange(int min, int max); 00206 00209 IntRange(const IntRange& src); 00210 00213 explicit IntRange(const Glib::ValueBase& gst_int_range_value); 00214 00217 explicit IntRange(const GValue& gst_int_range_value); 00218 00219 IntRange& operator=(const IntRange& src); 00220 00221 public: 00222 int min; 00223 int max; 00224 }; 00225 00250 class DoubleRange 00251 { 00252 public: 00255 DoubleRange(); 00256 00259 DoubleRange(double min, double max); 00260 00263 DoubleRange(const DoubleRange& src); 00264 00267 explicit DoubleRange(const Glib::ValueBase& gst_double_range_value); 00268 00271 explicit DoubleRange(const GValue& gst_double_range_value); 00272 00273 DoubleRange& operator=(const DoubleRange& src); 00274 00275 public: 00276 double min; 00277 double max; 00278 }; 00279 00304 class FractionRange 00305 { 00306 public: 00309 FractionRange(); 00310 00313 FractionRange(const Fraction& min, const Fraction& max); 00314 00317 FractionRange(const FractionRange& src); 00318 00321 explicit FractionRange(const Glib::ValueBase& gst_fraction_range_value); 00322 00325 explicit FractionRange(const GValue& gst_fraction_range_value); 00326 00327 FractionRange& operator=(const FractionRange& src); 00328 00329 public: 00330 Fraction min; 00331 Fraction max; 00332 }; 00333 00334 } //namespace Gst 00335 00336 00337 #endif /* _GSTREAMERMM_VALUE_H */ 00338