RTP Audio System
2.0.0
|
00001 // ########################################################################## 00002 // #### #### 00003 // #### RTP Audio Server Project #### 00004 // #### ============================ #### 00005 // #### #### 00006 // #### Audio Quality Interface #### 00007 // #### #### 00008 // #### Copyright (C) 1999-2012 by Thomas Dreibholz #### 00009 // #### #### 00010 // #### Contact: #### 00011 // #### EMail: dreibh@iem.uni-due.de #### 00012 // #### WWW: https://www.nntb.no/~dreibh/rtpaudio #### 00013 // #### #### 00014 // #### ---------------------------------------------------------------- #### 00015 // #### #### 00016 // #### This program is free software: you can redistribute it and/or #### 00017 // #### modify it under the terms of the GNU General Public License as #### 00018 // #### published by the Free Software Foundation, either version 3 of #### 00019 // #### the License, or (at your option) any later version. #### 00020 // #### #### 00021 // #### This program is distributed in the hope that it will be useful, #### 00022 // #### but WITHOUT ANY WARRANTY; without even the implied warranty of #### 00023 // #### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #### 00024 // #### GNU General Public License for more details. #### 00025 // #### #### 00026 // #### You should have received a copy of the GNU General Public #### 00027 // #### License along with this program. If not, see #### 00028 // #### <http://www.gnu.org/licenses/>. #### 00029 // #### #### 00030 // ########################################################################## 00031 // $Id: audioqualityinterface.h 1290 2011-12-19 11:09:27Z dreibh $ 00032 00033 00034 #ifndef AUDIOQUALITYINTERFACE_H 00035 #define AUDIOQUALITYINTERFACE_H 00036 00037 00038 #include "tdsystem.h" 00039 00040 00048 class AudioQualityInterface 00049 { 00050 // ====== Getting values ================================================= 00051 public: 00057 virtual card16 getSamplingRate() const = 0; 00058 00064 virtual card8 getBits() const = 0; 00065 00071 virtual card8 getChannels() const = 0; 00072 00073 00079 virtual card16 getByteOrder() const = 0; 00080 00081 00082 // ====== Calculating bandwidth settings ================================= 00088 virtual cardinal getBytesPerSecond() const = 0; 00089 00095 virtual cardinal getBitsPerSample() const = 0; 00096 00097 00098 // ====== Comparision operators ========================================== 00102 inline int operator==(const AudioQualityInterface& quality) const; 00103 00107 inline int operator!=(const AudioQualityInterface& quality) const; 00108 00113 inline int operator<=(const AudioQualityInterface& quality) const; 00114 00119 inline int operator<(const AudioQualityInterface& quality) const; 00120 00125 inline int operator>=(const AudioQualityInterface& quality) const; 00126 00131 inline int operator>(const AudioQualityInterface& quality) const; 00132 }; 00133 00134 00143 class AdjustableAudioQualityInterface : virtual public AudioQualityInterface 00144 { 00145 public: 00152 virtual card16 setSamplingRate(const card16 samplingRate) = 0; 00153 00160 virtual card8 setBits(const card8 bits) = 0; 00161 00168 virtual card8 setChannels(const card8 channels) = 0; 00169 00170 00177 virtual card16 setByteOrder(const card16 byteOrder) = 0; 00178 00179 00185 inline void setQuality(const AudioQualityInterface& quality); 00186 }; 00187 00188 00189 #include "audioqualityinterface.icc" 00190 00191 00192 #endif