Gnash  0.8.10
VideoInputHaiku.h
Go to the documentation of this file.
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