00001 /** 00002 * @file GT2005SoundControl.h 00003 * 00004 * Implementation of class GT2005SoundControl. 00005 * 00006 * @author <a href="mailto:Oliver.Giese@uni-dortmund.de">Oliver Giese</a> 00007 * @author <a href="mailto:matthias.hebbel@uni-dortmund.de">Matthias Hebbel</a> 00008 */ 00009 00010 #ifndef __GT2005SoundControl_h_ 00011 #define __GT2005SoundControl_h_ 00012 00013 #include "SoundControl.h" 00014 00015 /** 00016 * @class GT2005SoundControl 00017 * 00018 * The default solution of the SoundControl module 00019 * @author <a href="mailto:Oliver.Giese@uni-dortmund.de">Oliver Giese</a> 00020 * @author <a href="mailto:matthias.hebbel@uni-dortmund.de">Matthias Hebbel</a> 00021 */ 00022 class GT2005SoundControl : public SoundControl 00023 { 00024 public: 00025 /** 00026 * Constructor. 00027 * @param interfaces The paramters of the HeadControl module. 00028 */ 00029 GT2005SoundControl(const SoundControlInterfaces& interfaces); 00030 00031 /** Destructor */ 00032 virtual ~GT2005SoundControl(); 00033 virtual void execute(); 00034 00035 bool playingWave; 00036 00037 protected: 00038 bool loadWavefile(const char* filename, int index); 00039 bool checkWaveHeader(const char* filename, int index); 00040 void playWave(SoundData* soundData, int index); 00041 void fillWaveBuffer(SoundData* soundData, int index); 00042 00043 char* waveData[SoundRequest::numOfSoundIDs]; 00044 char waveHeader[100]; 00045 unsigned long actWavePosition; 00046 unsigned long startWavePosition[SoundRequest::numOfSoundIDs]; 00047 unsigned long waveLength[SoundRequest::numOfSoundIDs]; 00048 00049 unsigned long lastTransmittedMessageTimestamp; 00050 00051 SoundRequest::SoundID lastSound; 00052 }; 00053 00054 #endif// __GT2005SoundControl_h_
1.3.6