1 #ifndef __CCompressorAction_H__
2 #define __CCompressorAction_H__
3 #include "../../config/common.h"
4 
5 class CCompressorAction;
6 class CCompressorActionFactory;
7 
8 #include "../AAction.h"
9 
10 class CCompressorAction : public AAction
11 {
12 public:
13 	CCompressorAction(const AActionFactory *factory,const CActionSound *actionSound,float windowTime,float threshold,float ratio,float attackTime,float releaseTime,float inputGain,float outputGain,bool syncChannels,bool lookAheadForLevel);
14 	virtual ~CCompressorAction();
15 
16 	static const string getExplanation();
17 
18 protected:
19 	bool doActionSizeSafe(CActionSound *actionSound,bool prepareForUndo);
20 	void undoActionSizeSafe(const CActionSound *actionSound);
21 	CanUndoResults canUndo(const CActionSound *actionSound) const;
22 
23 private:
24 	const float windowTime;
25 	const float threshold;
26 	const float ratio;
27 	const float attackTime;
28 	const float releaseTime;
29 	const float inputGain;
30 	const float outputGain;
31 	const bool syncChannels;
32 	const bool lookAheadForLevel;
33 };
34 
35 class CCompressorActionFactory : public AActionFactory
36 {
37 public:
38 	CCompressorActionFactory(AActionDialog *channelSelectDialog,AActionDialog *dialog);
39 	virtual ~CCompressorActionFactory();
40 
41 	CCompressorAction *manufactureAction(const CActionSound *actionSound,const CActionParameters *actionParameters) const;
42 };
43 
44 #endif
45