36
37
class EngineVinylSoundEmu;
37
38
class EngineSideChain;
39
// class EngineBufferMasterRate;
42
*@author Tue and Ken Haste Andersen
45
class EngineMaster : public EngineObject
40
class EngineMaster : public EngineObject {
48
EngineMaster(ConfigObject<ConfigValue> *_config,
49
EngineBuffer *buffer1, EngineBuffer *buffer2,
50
EngineChannel *, EngineChannel *, const char *group);
52
/** Reconfigures the EngineBufferScaleSRC objects with the sound quality written in the config database */
42
EngineMaster(ConfigObject<ConfigValue>* pConfig, const char* pGroup);
43
virtual ~EngineMaster();
45
// Reconfigures the EngineBufferScaleSRC objects with the sound quality
46
// written in the config database
53
47
void setPitchIndpTimeStretch(bool b);
49
// Get access to the sample buffers. None of these are thread safe. Only to
50
// be called by SoundManager.
54
51
const CSAMPLE* getMasterBuffer();
55
52
const CSAMPLE* getHeadphoneBuffer();
54
const CSAMPLE* getChannelBuffer(int i);
56
56
void process(const CSAMPLE *, const CSAMPLE *pOut, const int iBufferSize);
58
void xfadeGains(FLOAT_TYPE *gain1, FLOAT_TYPE *gain2, double xfadePosition, double transform, double calibration);
58
// Add an EngineChannel to the mixing engine. This is not thread safe --
59
// only call it before the engine has started mixing.
60
void addChannel(EngineChannel* pChannel);
62
static double gainForOrientation(EngineChannel::ChannelOrientation orientation,
68
QList<EngineChannel*> m_channels;
70
CSAMPLE *m_pMaster, *m_pHead;
71
QList<CSAMPLE*> m_channelBuffers;
60
73
EngineWorkerScheduler *m_pWorkerScheduler;
62
EngineBuffer *buffer1, *buffer2;
63
EngineChannel *channel1, *channel2;
64
75
EngineVolume *volume, *head_volume;
65
76
EngineClipping *clipping, *head_clipping;
66
EngineFlanger *flanger;
68
78
EngineLADSPA *ladspa;
70
80
EngineVuMeter *vumeter;
71
EngineVolume *volume1, *volume2;
72
EngineVuMeter *vumeter1, *vumeter2;
73
EngineVinylSoundEmu *vinylsound1, *vinylsound2;
74
81
EngineSideChain *sidechain;
76
// EngineBufferMasterRate *m_pEngineBufferMasterRate;
78
// ControlObject *m_pControlObjectHeadphoneMute;
79
ControlPotmeter *crossfader, *head_mix, *m_pBalance, *xFaderCurve, *xFaderCalibration;
80
ControlPushButton *pfl1, *pfl2, *flanger1, *flanger2, *transform1, *transform2;
81
CSAMPLE *m_pMaster, *m_pHead, *m_pTemp1, *m_pTemp2;
82
bool master1, master2;
83
ControlPotmeter *crossfader, *head_mix,
84
*m_pBalance, *xFaderCurve, *xFaderCalibration;