Gnash
0.8.10
|
00001 // VideoInputHaiku.h: Video input processing using Haiku media kit 00002 // 00003 // Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. 00004 // 00005 // This program is free software; you can redistribute it and/or modify 00006 // it under the terms of the GNU General Public License as published by 00007 // the Free Software Foundation; either version 3 of the License, or 00008 // (at your option) any later version. 00009 // 00010 // This program is distributed in the hope that it will be useful, 00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 // GNU General Public License for more details. 00014 // 00015 // You should have received a copy of the GNU General Public License 00016 // along with this program; if not, write to the Free Software 00017 // Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00018 00019 #ifndef GNASH_VIDEOINPUTHAIKU_H 00020 #define GNASH_VIDEOINPUTHAIKU_H 00021 00022 #include <vector> 00023 #include <boost/cstdint.hpp> // for C99 int types 00024 #include "VideoInput.h" 00025 00026 namespace gnash { 00027 namespace media { 00028 namespace haiku { 00029 00030 class VideoInputHaiku : public VideoInput 00031 { 00032 public: 00033 00035 // 00038 VideoInputHaiku(); 00039 00041 virtual ~VideoInputHaiku(); 00042 00043 static void getNames(std::vector<std::string>& /*names*/) {} 00044 00046 // 00049 double activityLevel () const { return _activityLevel; } 00050 00052 // 00054 size_t bandwidth() const { return _bandwidth; } 00055 00056 void setBandwidth(size_t bandwidth) { 00057 _bandwidth = bandwidth; 00058 } 00059 00061 // 00063 double currentFPS() const { return _currentFPS; } 00064 00066 // 00068 double fps() const { return _fps; } 00069 00071 size_t height() const { return _height; } 00072 00074 size_t width() const { return _width; } 00075 00077 size_t index() const { return _index; } 00078 00080 // 00085 void requestMode(size_t width, size_t height, double fps, bool favorArea); 00086 00088 void setMotionLevel(int m) { _motionLevel = m; } 00089 00091 int motionLevel() const { return _motionLevel; } 00092 00094 void setMotionTimeout(int m) { _motionTimeout = m; } 00095 00097 int motionTimeout() const { return _motionTimeout; } 00098 00099 void mute(bool m) { _muted = m; } 00100 bool muted() const { return _muted; } 00101 00103 // 00105 const std::string& name() const { return _name; } 00106 00108 void setQuality(int q) { _quality = q; } 00109 00111 int quality() const { return _quality; } 00112 00117 bool play(); 00118 00122 bool stop(); 00123 00124 private: 00125 00129 00132 double _activityLevel; 00133 00136 size_t _bandwidth; 00137 00140 double _currentFPS; 00141 00143 double _fps; 00144 00147 size_t _height; 00148 00151 size_t _width; 00152 00154 size_t _index; 00155 00157 int _motionLevel; 00158 00160 int _motionTimeout; 00161 00164 bool _muted; 00165 00167 std::string _name; 00168 00170 int _quality; 00171 00172 }; 00173 00174 00175 } // gnash.media.haiku namespace 00176 } // gnash.media namespace 00177 } // gnash namespace 00178 00179 #endif