00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _AUDIO_INPUT_DEVICE_HH
00021 #define _AUDIO_INPUT_DEVICE_HH
00022
00023 #ifndef _FRAMED_SOURCE_HH
00024 #include "FramedSource.hh"
00025 #endif
00026
00027 class AudioPortNames {
00028 public:
00029 AudioPortNames();
00030 virtual ~AudioPortNames();
00031
00032 unsigned numPorts;
00033 char** portName;
00034 };
00035
00036 class AudioInputDevice: public FramedSource {
00037 public:
00038 unsigned char bitsPerSample() const { return fBitsPerSample; }
00039 unsigned char numChannels() const { return fNumChannels; }
00040 unsigned samplingFrequency() const { return fSamplingFrequency; }
00041
00042 virtual Boolean setInputPort(int portIndex) = 0;
00043 virtual double getAverageLevel() const = 0;
00044
00045 static AudioInputDevice*
00046 createNew(UsageEnvironment& env, int inputPortNumber,
00047 unsigned char bitsPerSample, unsigned char numChannels,
00048 unsigned samplingFrequency, unsigned granularityInMS = 20);
00049 static AudioPortNames* getPortNames();
00050
00051 static char** allowedDeviceNames;
00052
00053
00054
00055 protected:
00056 AudioInputDevice(UsageEnvironment& env,
00057 unsigned char bitsPerSample,
00058 unsigned char numChannels,
00059 unsigned samplingFrequency,
00060 unsigned granularityInMS);
00061
00062
00063 virtual ~AudioInputDevice();
00064
00065 protected:
00066 unsigned char fBitsPerSample, fNumChannels;
00067 unsigned fSamplingFrequency;
00068 unsigned fGranularityInMS;
00069 };
00070
00071 #endif