63 lines
1.5 KiB
C
63 lines
1.5 KiB
C
|
/**********************************************************************
|
||
|
|
||
|
Audacity: A Digital Audio Editor
|
||
|
|
||
|
SimpleMono.h
|
||
|
|
||
|
Dominic Mazzoni
|
||
|
|
||
|
This abstract class simplifies the implementation of a basic
|
||
|
monaural effect. Inherit from it if your effect doesn't just
|
||
|
modifies a track in place and doesn't care how many samples
|
||
|
it gets at a time. Your derived class only needs to implement
|
||
|
GetEffectName, GetEffectAction, and ProcessSimpleMono.
|
||
|
|
||
|
**********************************************************************/
|
||
|
|
||
|
#ifndef __AUDACITY_EFFECT_SIMPLE_MONO__
|
||
|
#define __AUDACITY_EFFECT_SIMPLE_MONO__
|
||
|
|
||
|
#include "Effect.h"
|
||
|
|
||
|
class WaveTrack;
|
||
|
|
||
|
class EffectSimpleMono:public Effect {
|
||
|
|
||
|
public:
|
||
|
virtual bool Process();
|
||
|
|
||
|
private:
|
||
|
bool ProcessOne(WaveTrack * t, sampleCount start, sampleCount end);
|
||
|
|
||
|
protected:
|
||
|
|
||
|
// Override this method if you need to do things
|
||
|
// before every track (including the first one)
|
||
|
virtual bool NewTrackSimpleMono();
|
||
|
|
||
|
// Override this method to actually process audio
|
||
|
virtual bool ProcessSimpleMono(float *buffer, sampleCount len) = 0;
|
||
|
|
||
|
// Other useful information
|
||
|
int mCurTrackNum;
|
||
|
double mCurRate;
|
||
|
double mCurT0;
|
||
|
double mCurT1;
|
||
|
int mCurChannel;
|
||
|
|
||
|
};
|
||
|
|
||
|
#endif
|
||
|
|
||
|
// Indentation settings for Vim and Emacs and unique identifier for Arch, a
|
||
|
// version control system. Please do not modify past this point.
|
||
|
//
|
||
|
// Local Variables:
|
||
|
// c-basic-offset: 3
|
||
|
// indent-tabs-mode: nil
|
||
|
// End:
|
||
|
//
|
||
|
// vim: et sts=3 sw=3
|
||
|
// arch-tag: 2c7cdbc8-b34e-46c2-8b9b-5669bb1af61b
|
||
|
|