00001 #ifndef _FreewheelingNetworkPlayer_hxx_ 00002 #define _FreewheelingNetworkPlayer_hxx_ 00003 00004 #include "NetworkPlayer.hxx" 00005 #include "AudioSource.hxx" 00006 #include "AudioSink.hxx" 00007 00008 namespace CLAM 00009 { 00010 00011 00012 class FreewheelingNetworkPlayer : public NetworkPlayer 00013 { 00014 std::vector<std::string> _filenames; 00015 bool _enableLoopInputWavs; 00016 float _resultWavsTime; 00017 00018 00019 public: 00020 FreewheelingNetworkPlayer() 00021 : _enableLoopInputWavs(false) 00022 , _resultWavsTime(0.0) 00023 {} 00024 void AddInputFile( const std::string& ); 00025 void AddOutputFile( const std::string& ); 00026 // base class (virtual) interface: 00027 bool IsWorking() const; 00028 std::string NonWorkingReason() const; 00029 virtual void Start(); 00030 virtual void Stop(); 00031 00032 void ProcessInputFile(); 00033 00034 // specific interface - not inherited 00035 void EnableLoopInputWavs() 00036 { 00037 _enableLoopInputWavs=true; 00038 } 00039 void SetResultWavsTime( double time) 00040 { 00041 _resultWavsTime=time; 00042 } 00043 }; 00044 00045 } 00046 #endif 00047