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 // -*- Mode: C++; indent-tabs-mode: nil; c-basic-offset: 2 -*- 00010 00011 /* gstreamermm - a C++ wrapper for gstreamer 00012 * 00013 * Copyright 2008 The gstreamermm Development Team 00014 * 00015 * This library is free software; you can redistribute it and/or 00016 * modify it under the terms of the GNU Library General Public 00017 * License as published by the Free Software Foundation; either 00018 * version 2 of the License, or (at your option) any later version. 00019 * 00020 * This library is distributed in the hope that it will be useful, 00021 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00022 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00023 * Library General Public License for more details. 00024 * 00025 * You should have received a copy of the GNU Library General Public 00026 * License along with this library; if not, write to the Free 00027 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00028 */ 00029 00030 #include <gst/gstvalue.h> 00031 #include <glibmm/value_custom.h> 00032 00033 00034 namespace Gst 00035 { 00036 00060 class Fourcc 00061 { 00062 public: 00065 Fourcc(); 00066 00069 Fourcc(const Fourcc& src); 00070 00073 Fourcc(char first, char second, char third, char fourth); 00074 00078 explicit Fourcc(const Glib::ustring& s); 00079 00082 explicit Fourcc(guint32 fourcc); 00083 00086 explicit Fourcc(const Glib::ValueBase& gst_fraction_value); 00087 00088 Fourcc& operator=(const Fourcc& src); 00089 00090 00091 public: 00095 guint32 get_fourcc() const; 00096 00097 public: 00098 char first; 00099 char second; 00100 char third; 00101 char fourth; 00102 00103 private: 00104 void get_ccs(guint32 fourcc); 00105 }; 00106 00107 00130 class Fraction 00131 { 00132 public: 00135 Fraction(); 00136 00139 Fraction(const Fraction& src); 00140 00143 explicit Fraction(int num, int denom); 00144 00147 explicit Fraction(const Glib::ValueBase& gst_fraction_value); 00148 00149 Fraction& operator=(const Fraction& src); 00150 00151 00152 public: 00153 int num; 00154 int denom; 00155 }; 00156 00157 //TODO: Use a template for IntRange, DoubleRange, FractionRange? murrayc 00158 00182 class IntRange 00183 { 00184 public: 00187 IntRange(); 00188 00191 IntRange(int min, int max); 00192 00195 IntRange(const IntRange& src); 00196 00199 explicit IntRange(const Glib::ValueBase& gst_int_range_value); 00200 00201 IntRange& operator=(const IntRange& src); 00202 00203 public: 00204 int min; 00205 int max; 00206 }; 00207 00231 class DoubleRange 00232 { 00233 public: 00236 DoubleRange(); 00237 00240 DoubleRange(double min, double max); 00241 00244 DoubleRange(const DoubleRange& src); 00245 00248 explicit DoubleRange(const Glib::ValueBase& gst_double_range_value); 00249 00250 DoubleRange& operator=(const DoubleRange& src); 00251 00252 public: 00253 double min; 00254 double max; 00255 }; 00256 00280 class FractionRange 00281 { 00282 public: 00285 FractionRange(); 00286 00289 FractionRange(const Fraction& min, const Fraction& max); 00290 00293 FractionRange(const FractionRange& src); 00294 00297 explicit FractionRange(const Glib::ValueBase& gst_fraction_range_value); 00298 00299 FractionRange& operator=(const FractionRange& src); 00300 00301 public: 00302 Fraction min; 00303 Fraction max; 00304 }; 00305 00306 } //namespace Gst 00307 00308 00309 #endif /* _GSTREAMERMM_VALUE_H */ 00310