audacia/src/effects/SoundTouchEffect.h
2010-02-16 20:50:38 +00:00

74 lines
1.7 KiB
C++

/**********************************************************************
Audacity: A Digital Audio Editor
SoundTouchEffect.h
Dominic Mazzoni, Vaughan Johnson
This abstract class contains all of the common code for an
effect that uses SoundTouch to do its processing (ChangeTempo
and ChangePitch).
**********************************************************************/
#if USE_SOUNDTOUCH
#ifndef __AUDACITY_EFFECT_SOUNDTOUCH__
#define __AUDACITY_EFFECT_SOUNDTOUCH__
#include "Effect.h"
// Soundtouch defines these as well, so get rid of them before including
#undef PACKAGE_NAME
#undef PACKAGE_STRING
#undef PACKAGE_TARNAME
#undef PACKAGE_VERSION
#undef PACKAGE_BUGREPORT
#include "SoundTouch.h"
using namespace soundtouch;
class WaveTrack;
class EffectSoundTouch:public Effect {
public:
virtual bool Process();
protected:
SoundTouch *mSoundTouch;
double mCurT0;
double mCurT1;
private:
bool ProcessLabelTrack(Track *track);
bool ProcessOne(WaveTrack * t, sampleCount start, sampleCount end);
bool ProcessStereo(WaveTrack* leftTrack, WaveTrack* rightTrack,
sampleCount start, sampleCount end);
bool ProcessStereoResults(const unsigned int outputCount,
WaveTrack* outputLeftTrack,
WaveTrack* outputRightTrack);
int mCurTrackNum;
double m_maxNewLength;
};
#endif
#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: 6f08259e-6cac-4c47-9aa5-1de7b68eb495