Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members
TerminalCapabilities.hpp
00001 /*********************************************************************** 00002 * * 00003 * ViTooKi * 00004 * * 00005 * title: TerminalCapabilities.hpp * 00006 * * 00007 * * 00008 * * 00009 * ITEC institute of the University of Klagenfurt (Austria) * 00010 * http://www.itec.uni-klu.ac.at * 00011 * * 00012 * * 00013 * For more information visit the ViTooKi homepage: * 00014 * http://ViTooKi.sourceforge.net * 00015 * vitooki-user@lists.sourceforge.net * 00016 * vitooki-devel@lists.sourceforge.net * 00017 * * 00018 * This file is part of ViTooKi, a free video toolkit. * 00019 * ViTooKi is free software; you can redistribute it and/or * 00020 * modify it under the terms of the GNU General Public License * 00021 * as published by the Free Software Foundation; either version 2 * 00022 * of the License, or (at your option) any later version. * 00023 * * 00024 * This program is distributed in the hope that it will be useful, * 00025 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00026 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 00027 * GNU General Public License for more details. * 00028 * * 00029 * You should have received a copy of the GNU General Public License * 00030 * along with this program; if not, write to the Free Software * 00031 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, * 00032 * MA 02111-1307, USA. * 00033 * * 00034 ***********************************************************************/ 00035 00036 /*********************************************************************** 00037 * * 00038 * REVISION HISTORY: * 00039 * * 00040 * * 00041 * * 00042 ***********************************************************************/ 00043 00044 #ifndef _MPEG4ITEC_TERMINALCAPABILITIES_HPP 00045 #define _MPEG4ITEC_TERMINALCAPABILITIES_HPP 00046 #ifdef ISOMP4 00047 #include "ISOMovies.h" 00048 #else 00049 #include "global.hpp" 00050 #endif 00051 00063 class TerminalCapabilities { 00064 public: 00066 TerminalCapabilities(); 00068 TerminalCapabilities(u32 maxDecBufSize, u32 maxDecBitrate, 00069 u32 displayBits, bool color, 00070 u32 width, u32 height, u32 refreshRate, 00071 float mem, u32 netCap, u32 minNetCap, 00072 u32 netDelayVar, u32 buffDelay, 00073 u8 numAudioChann=0,u8 audioBitsPerSample=16,u32 samplFreq=44100); 00074 u32 getMaxDecoderBufferSizeInByte() const; 00075 u32 getMaxDecoderBitRateInBit() const; 00076 u32 getDisplayBitsPerPixel() const; 00077 bool getColorDisplay() const; 00078 u32 getDisplayWidth() const; 00079 u32 getDisplayHeight() const; 00080 u32 getDisplayRefreshRate() const; 00081 float getMemoryStorageMB() const; 00082 u32 getNetworkCapacityInByte() const; 00083 u32 getMinGuaranteedNetworkCapacityInByte() const; 00084 u32 getNetworkDelayVariationInMs() const; 00085 u32 getBufferingDelayInMs() const; 00086 u8 getNumAudioChannels() const; 00087 bool supportsAudio() const; 00088 u8 getAudioBitsPerSample() const; 00089 u32 getAudioSamplingFrequency() const; 00090 00091 void setMaxDecoderBufferSizeInByte(const u32); 00092 void setMaxDecoderBitRateInBit(const u32); 00093 void setDisplayBitsPerPixel(const u32); 00094 void setColorDisplay(const bool); 00095 void setDisplayWidth(const u32); 00096 void setDisplayHeight(const u32); 00097 void setDisplayRefreshRate(const u32); 00098 void setMemoryStorageMB(const float); 00099 void setNetworkCapacityInByte(const u32); 00100 void setMinGuaranteedNetworkCapacityInByte(const u32); 00101 void setNetworkDelayVariationInMs(const u32); 00102 void setBufferingDelayInMs(const u32); 00103 void setNumAudioChannels(const u8); 00104 void setAudioBitsPerSample(const u8); 00105 void setAudioSamplingFrequency(const u32); 00106 00107 bool initFromFile(const char* file); 00108 bool saveToFile(const char* file, bool overWrite) const; 00109 TerminalCapabilities* clone() const; 00110 00111 protected: 00112 u32 maxDecoderBufferSizeInByte; 00113 u32 maxDecoderBitRateInBit; 00114 u32 displayBitsPerPixel; 00115 u32 colorDisplay; 00116 u32 displayWidth; 00117 u32 displayHeight; 00118 u32 displayRefreshRate; 00119 float memoryStorageMB; 00120 u32 networkCapacityInByte; 00121 u32 minGuaranteedNetworkCapacityInByte; 00122 u32 networkDelayVariationInMs; 00123 u32 bufferingDelayInMs; 00124 u8 numAudioChannels; 00125 u8 audioBitsPerSample; 00126 u32 audioSamplingFrequency; 00127 00128 }; 00129 00130 #endif