Amuse
IBackendVoice.hpp
1 #ifndef __AMUSE_IBACKENDVOICE_HPP__
2 #define __AMUSE_IBACKENDVOICE_HPP__
3 
4 namespace amuse
5 {
6 
8 enum class AudioChannel
9 {
10  FrontLeft,
11  FrontRight,
12  RearLeft,
13  RearRight,
14  FrontCenter,
15  LFE,
16  SideLeft,
17  SideRight,
18  Unknown = 0xff
19 };
20 
22 struct ChannelMap
23 {
24  unsigned m_channelCount = 0;
25  AudioChannel m_channels[8] = {};
26 };
27 
30 {
31 public:
32  virtual ~IBackendVoice() = default;
33 
35  virtual void resetSampleRate(double sampleRate)=0;
36 
38  virtual void setMatrixCoefficients(const float coefs[8])=0;
39 
41  virtual void setPitchRatio(double ratio, bool slew)=0;
42 
44  virtual void start()=0;
45 
47  virtual void stop()=0;
48 };
49 
50 }
51 
52 #endif // __AMUSE_IBACKENDVOICE_HPP__