CLAM-Development  1.4.0
OfflineNetworkPlayer.hxx
Go to the documentation of this file.
1 #ifndef OfflineNetworkPlayer_hxx
2 #define OfflineNetworkPlayer_hxx
3 
4 #include "NetworkPlayer.hxx"
5 #include "AudioSource.hxx"
6 #include "AudioSink.hxx"
7 #include <fstream>
8 #include <sndfile.hh>
9 
10 namespace CLAM
11 {
12 
14 {
15  typedef std::vector<std::string> FileNames;
16  FileNames _inFileNames;
17  FileNames _outFileNames;
18 
19  typedef std::vector<int> ChannelsFiles;
20  ChannelsFiles _outChannelsFiles;
21 
22  int _format;
23  bool _enableLoopInputWavs;
24  float _resultWavsTime;
25 
26 public:
28  : _enableLoopInputWavs(false)
29  , _resultWavsTime(0.0)
30  {
31  }
32 
33  void AddInputFile( const std::string& );
34  void AddOutputFile( const std::string& );
35  void AddNumChannels(int channel);
36  void SetFormat(int format);
37  // base class (virtual) interface:
38  bool IsWorking();
39  std::string NonWorkingReason();
40  virtual bool IsRealTime() const { return false; }
41 
42  typedef std::vector<SndfileHandle*> SndFileHandles;
43  std::string listOfSourcesSinksAndFiles(const SndFileHandles & infiles,
44  const SndFileHandles & outfiles);
45 
46  virtual void Start();
47  virtual void Stop();
48 
49  void ProcessInputFile();
50 
51  // specific interface - not inherited
53  {
54  _enableLoopInputWavs=true;
55  }
56  void SetResultWavsTime( double time)
57  {
58  _resultWavsTime=time;
59  }
60 };
61 
62 }
63 #endif
64