From 5a8d5f77af84d3f790d749dfd2d76a3b487eb06a Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Mon, 5 Nov 2012 14:24:35 +0000 Subject: Audaspace: Replacing AUD_Reference with boost::shared_ptr. --- intern/audaspace/FX/AUD_AccumulatorFactory.cpp | 8 ++-- intern/audaspace/FX/AUD_AccumulatorFactory.h | 4 +- intern/audaspace/FX/AUD_BaseIIRFilterReader.cpp | 2 +- intern/audaspace/FX/AUD_BaseIIRFilterReader.h | 2 +- intern/audaspace/FX/AUD_ButterworthFactory.cpp | 2 +- intern/audaspace/FX/AUD_ButterworthFactory.h | 2 +- .../audaspace/FX/AUD_CallbackIIRFilterReader.cpp | 2 +- intern/audaspace/FX/AUD_CallbackIIRFilterReader.h | 2 +- intern/audaspace/FX/AUD_DelayFactory.cpp | 6 +-- intern/audaspace/FX/AUD_DelayFactory.h | 4 +- intern/audaspace/FX/AUD_DelayReader.cpp | 2 +- intern/audaspace/FX/AUD_DelayReader.h | 2 +- intern/audaspace/FX/AUD_DoubleFactory.cpp | 10 ++--- intern/audaspace/FX/AUD_DoubleFactory.h | 8 ++-- intern/audaspace/FX/AUD_DoubleReader.cpp | 4 +- intern/audaspace/FX/AUD_DoubleReader.h | 9 ++-- .../audaspace/FX/AUD_DynamicIIRFilterFactory.cpp | 8 ++-- intern/audaspace/FX/AUD_DynamicIIRFilterFactory.h | 18 +++----- intern/audaspace/FX/AUD_DynamicIIRFilterReader.cpp | 8 ++-- intern/audaspace/FX/AUD_DynamicIIRFilterReader.h | 8 ++-- intern/audaspace/FX/AUD_EffectFactory.cpp | 4 +- intern/audaspace/FX/AUD_EffectFactory.h | 8 ++-- intern/audaspace/FX/AUD_EffectReader.cpp | 2 +- intern/audaspace/FX/AUD_EffectReader.h | 7 +-- intern/audaspace/FX/AUD_EnvelopeFactory.cpp | 10 ++--- intern/audaspace/FX/AUD_EnvelopeFactory.h | 4 +- intern/audaspace/FX/AUD_FaderFactory.cpp | 6 +-- intern/audaspace/FX/AUD_FaderFactory.h | 4 +- intern/audaspace/FX/AUD_FaderReader.cpp | 2 +- intern/audaspace/FX/AUD_FaderReader.h | 2 +- intern/audaspace/FX/AUD_HighpassFactory.cpp | 2 +- intern/audaspace/FX/AUD_HighpassFactory.h | 2 +- .../audaspace/FX/AUD_IDynamicIIRFilterCalculator.h | 52 ++++++++++++++++++++++ intern/audaspace/FX/AUD_IIRFilterFactory.cpp | 6 +-- intern/audaspace/FX/AUD_IIRFilterFactory.h | 5 ++- intern/audaspace/FX/AUD_IIRFilterReader.cpp | 2 +- intern/audaspace/FX/AUD_IIRFilterReader.h | 2 +- intern/audaspace/FX/AUD_LimiterFactory.cpp | 6 +-- intern/audaspace/FX/AUD_LimiterFactory.h | 4 +- intern/audaspace/FX/AUD_LimiterReader.cpp | 2 +- intern/audaspace/FX/AUD_LimiterReader.h | 2 +- intern/audaspace/FX/AUD_LoopFactory.cpp | 6 +-- intern/audaspace/FX/AUD_LoopFactory.h | 4 +- intern/audaspace/FX/AUD_LoopReader.cpp | 2 +- intern/audaspace/FX/AUD_LoopReader.h | 2 +- intern/audaspace/FX/AUD_LowpassFactory.cpp | 2 +- intern/audaspace/FX/AUD_LowpassFactory.h | 2 +- intern/audaspace/FX/AUD_PingPongFactory.cpp | 10 ++--- intern/audaspace/FX/AUD_PingPongFactory.h | 4 +- intern/audaspace/FX/AUD_PitchFactory.cpp | 6 +-- intern/audaspace/FX/AUD_PitchFactory.h | 4 +- intern/audaspace/FX/AUD_PitchReader.cpp | 2 +- intern/audaspace/FX/AUD_PitchReader.h | 2 +- intern/audaspace/FX/AUD_RectifyFactory.cpp | 6 +-- intern/audaspace/FX/AUD_RectifyFactory.h | 4 +- intern/audaspace/FX/AUD_ReverseFactory.cpp | 6 +-- intern/audaspace/FX/AUD_ReverseFactory.h | 4 +- intern/audaspace/FX/AUD_ReverseReader.cpp | 2 +- intern/audaspace/FX/AUD_ReverseReader.h | 2 +- intern/audaspace/FX/AUD_SquareFactory.cpp | 8 ++-- intern/audaspace/FX/AUD_SquareFactory.h | 4 +- intern/audaspace/FX/AUD_SumFactory.cpp | 6 +-- intern/audaspace/FX/AUD_SumFactory.h | 4 +- intern/audaspace/FX/AUD_SuperposeFactory.cpp | 10 ++--- intern/audaspace/FX/AUD_SuperposeFactory.h | 8 ++-- intern/audaspace/FX/AUD_SuperposeReader.cpp | 2 +- intern/audaspace/FX/AUD_SuperposeReader.h | 9 ++-- intern/audaspace/FX/AUD_VolumeFactory.cpp | 6 +-- intern/audaspace/FX/AUD_VolumeFactory.h | 4 +- 69 files changed, 214 insertions(+), 162 deletions(-) create mode 100644 intern/audaspace/FX/AUD_IDynamicIIRFilterCalculator.h (limited to 'intern/audaspace/FX') diff --git a/intern/audaspace/FX/AUD_AccumulatorFactory.cpp b/intern/audaspace/FX/AUD_AccumulatorFactory.cpp index 1862b9ab79d..00d3a9f2395 100644 --- a/intern/audaspace/FX/AUD_AccumulatorFactory.cpp +++ b/intern/audaspace/FX/AUD_AccumulatorFactory.cpp @@ -50,15 +50,15 @@ sample_t AUD_AccumulatorFactory::accumulatorFilter(AUD_CallbackIIRFilterReader* return out; } -AUD_AccumulatorFactory::AUD_AccumulatorFactory(AUD_Reference factory, +AUD_AccumulatorFactory::AUD_AccumulatorFactory(boost::shared_ptr factory, bool additive) : AUD_EffectFactory(factory), m_additive(additive) { } -AUD_Reference AUD_AccumulatorFactory::createReader() +boost::shared_ptr AUD_AccumulatorFactory::createReader() { - return new AUD_CallbackIIRFilterReader(getReader(), 2, 2, - m_additive ? accumulatorFilterAdditive : accumulatorFilter); + return boost::shared_ptr(new AUD_CallbackIIRFilterReader(getReader(), 2, 2, + m_additive ? accumulatorFilterAdditive : accumulatorFilter)); } diff --git a/intern/audaspace/FX/AUD_AccumulatorFactory.h b/intern/audaspace/FX/AUD_AccumulatorFactory.h index ac73c5aa6ae..9087218a5f9 100644 --- a/intern/audaspace/FX/AUD_AccumulatorFactory.h +++ b/intern/audaspace/FX/AUD_AccumulatorFactory.h @@ -58,9 +58,9 @@ public: * \param factory The input factory. * \param additive Whether the accumulator is additive. */ - AUD_AccumulatorFactory(AUD_Reference factory, bool additive = false); + AUD_AccumulatorFactory(boost::shared_ptr factory, bool additive = false); - virtual AUD_Reference createReader(); + virtual boost::shared_ptr createReader(); static sample_t accumulatorFilterAdditive(AUD_CallbackIIRFilterReader* reader, void* useless); static sample_t accumulatorFilter(AUD_CallbackIIRFilterReader* reader, void* useless); diff --git a/intern/audaspace/FX/AUD_BaseIIRFilterReader.cpp b/intern/audaspace/FX/AUD_BaseIIRFilterReader.cpp index fa9e8746b2b..eadfc525f96 100644 --- a/intern/audaspace/FX/AUD_BaseIIRFilterReader.cpp +++ b/intern/audaspace/FX/AUD_BaseIIRFilterReader.cpp @@ -33,7 +33,7 @@ #define CC m_specs.channels + m_channel -AUD_BaseIIRFilterReader::AUD_BaseIIRFilterReader(AUD_Reference reader, int in, +AUD_BaseIIRFilterReader::AUD_BaseIIRFilterReader(boost::shared_ptr reader, int in, int out) : AUD_EffectReader(reader), m_specs(reader->getSpecs()), diff --git a/intern/audaspace/FX/AUD_BaseIIRFilterReader.h b/intern/audaspace/FX/AUD_BaseIIRFilterReader.h index 43970c96a42..fe0a8efce64 100644 --- a/intern/audaspace/FX/AUD_BaseIIRFilterReader.h +++ b/intern/audaspace/FX/AUD_BaseIIRFilterReader.h @@ -90,7 +90,7 @@ protected: * \param in The count of past input samples needed. * \param out The count of past output samples needed. */ - AUD_BaseIIRFilterReader(AUD_Reference reader, int in, int out); + AUD_BaseIIRFilterReader(boost::shared_ptr reader, int in, int out); void setLengths(int in, int out); diff --git a/intern/audaspace/FX/AUD_ButterworthFactory.cpp b/intern/audaspace/FX/AUD_ButterworthFactory.cpp index af1a5af97df..97d85c8122f 100644 --- a/intern/audaspace/FX/AUD_ButterworthFactory.cpp +++ b/intern/audaspace/FX/AUD_ButterworthFactory.cpp @@ -39,7 +39,7 @@ #define BWPB41 0.76536686473 #define BWPB42 1.84775906502 -AUD_ButterworthFactory::AUD_ButterworthFactory(AUD_Reference factory, +AUD_ButterworthFactory::AUD_ButterworthFactory(boost::shared_ptr factory, float frequency) : AUD_DynamicIIRFilterFactory(factory), m_frequency(frequency) diff --git a/intern/audaspace/FX/AUD_ButterworthFactory.h b/intern/audaspace/FX/AUD_ButterworthFactory.h index dc8b4d92775..e796f76aa29 100644 --- a/intern/audaspace/FX/AUD_ButterworthFactory.h +++ b/intern/audaspace/FX/AUD_ButterworthFactory.h @@ -53,7 +53,7 @@ public: * \param factory The input factory. * \param frequency The cutoff frequency. */ - AUD_ButterworthFactory(AUD_Reference factory, float frequency); + AUD_ButterworthFactory(boost::shared_ptr factory, float frequency); virtual void recalculateCoefficients(AUD_SampleRate rate, std::vector& b, diff --git a/intern/audaspace/FX/AUD_CallbackIIRFilterReader.cpp b/intern/audaspace/FX/AUD_CallbackIIRFilterReader.cpp index 1a5c99adfb9..b5157d47666 100644 --- a/intern/audaspace/FX/AUD_CallbackIIRFilterReader.cpp +++ b/intern/audaspace/FX/AUD_CallbackIIRFilterReader.cpp @@ -29,7 +29,7 @@ #include "AUD_CallbackIIRFilterReader.h" -AUD_CallbackIIRFilterReader::AUD_CallbackIIRFilterReader(AUD_Reference reader, +AUD_CallbackIIRFilterReader::AUD_CallbackIIRFilterReader(boost::shared_ptr reader, int in, int out, doFilterIIR doFilter, endFilterIIR endFilter, diff --git a/intern/audaspace/FX/AUD_CallbackIIRFilterReader.h b/intern/audaspace/FX/AUD_CallbackIIRFilterReader.h index 7ced73844c9..d9df65f03eb 100644 --- a/intern/audaspace/FX/AUD_CallbackIIRFilterReader.h +++ b/intern/audaspace/FX/AUD_CallbackIIRFilterReader.h @@ -74,7 +74,7 @@ public: * \param endFilter The finishing callback. * \param data Data pointer for the callbacks. */ - AUD_CallbackIIRFilterReader(AUD_Reference reader, int in, int out, + AUD_CallbackIIRFilterReader(boost::shared_ptr reader, int in, int out, doFilterIIR doFilter, endFilterIIR endFilter = 0, void* data = 0); diff --git a/intern/audaspace/FX/AUD_DelayFactory.cpp b/intern/audaspace/FX/AUD_DelayFactory.cpp index a4606597933..3e5a7cfd2f8 100644 --- a/intern/audaspace/FX/AUD_DelayFactory.cpp +++ b/intern/audaspace/FX/AUD_DelayFactory.cpp @@ -31,7 +31,7 @@ #include "AUD_DelayReader.h" #include "AUD_Space.h" -AUD_DelayFactory::AUD_DelayFactory(AUD_Reference factory, float delay) : +AUD_DelayFactory::AUD_DelayFactory(boost::shared_ptr factory, float delay) : AUD_EffectFactory(factory), m_delay(delay) { @@ -42,7 +42,7 @@ float AUD_DelayFactory::getDelay() const return m_delay; } -AUD_Reference AUD_DelayFactory::createReader() +boost::shared_ptr AUD_DelayFactory::createReader() { - return new AUD_DelayReader(getReader(), m_delay); + return boost::shared_ptr(new AUD_DelayReader(getReader(), m_delay)); } diff --git a/intern/audaspace/FX/AUD_DelayFactory.h b/intern/audaspace/FX/AUD_DelayFactory.h index 26855a05d70..8cfb2be9ac8 100644 --- a/intern/audaspace/FX/AUD_DelayFactory.h +++ b/intern/audaspace/FX/AUD_DelayFactory.h @@ -53,14 +53,14 @@ public: * \param factory The input factory. * \param delay The desired delay in seconds. */ - AUD_DelayFactory(AUD_Reference factory, float delay = 0); + AUD_DelayFactory(boost::shared_ptr factory, float delay = 0); /** * Returns the delay in seconds. */ float getDelay() const; - virtual AUD_Reference createReader(); + virtual boost::shared_ptr createReader(); }; #endif //__AUD_DELAYFACTORY_H__ diff --git a/intern/audaspace/FX/AUD_DelayReader.cpp b/intern/audaspace/FX/AUD_DelayReader.cpp index 0e9833cd07f..050508f28da 100644 --- a/intern/audaspace/FX/AUD_DelayReader.cpp +++ b/intern/audaspace/FX/AUD_DelayReader.cpp @@ -31,7 +31,7 @@ #include -AUD_DelayReader::AUD_DelayReader(AUD_Reference reader, float delay) : +AUD_DelayReader::AUD_DelayReader(boost::shared_ptr reader, float delay) : AUD_EffectReader(reader), m_delay(int((AUD_SampleRate)delay * reader->getSpecs().rate)), m_remdelay(int((AUD_SampleRate)delay * reader->getSpecs().rate)) diff --git a/intern/audaspace/FX/AUD_DelayReader.h b/intern/audaspace/FX/AUD_DelayReader.h index 9d9b6619470..d4388e3befc 100644 --- a/intern/audaspace/FX/AUD_DelayReader.h +++ b/intern/audaspace/FX/AUD_DelayReader.h @@ -59,7 +59,7 @@ public: * \param reader The reader to read from. * \param delay The delay in seconds. */ - AUD_DelayReader(AUD_Reference reader, float delay); + AUD_DelayReader(boost::shared_ptr reader, float delay); virtual void seek(int position); virtual int getLength() const; diff --git a/intern/audaspace/FX/AUD_DoubleFactory.cpp b/intern/audaspace/FX/AUD_DoubleFactory.cpp index ab0111f8955..21bcbc2f649 100644 --- a/intern/audaspace/FX/AUD_DoubleFactory.cpp +++ b/intern/audaspace/FX/AUD_DoubleFactory.cpp @@ -30,15 +30,15 @@ #include "AUD_DoubleFactory.h" #include "AUD_DoubleReader.h" -AUD_DoubleFactory::AUD_DoubleFactory(AUD_Reference factory1, AUD_Reference factory2) : +AUD_DoubleFactory::AUD_DoubleFactory(boost::shared_ptr factory1, boost::shared_ptr factory2) : m_factory1(factory1), m_factory2(factory2) { } -AUD_Reference AUD_DoubleFactory::createReader() +boost::shared_ptr AUD_DoubleFactory::createReader() { - AUD_Reference reader1 = m_factory1->createReader(); - AUD_Reference reader2 = m_factory2->createReader(); + boost::shared_ptr reader1 = m_factory1->createReader(); + boost::shared_ptr reader2 = m_factory2->createReader(); - return new AUD_DoubleReader(reader1, reader2); + return boost::shared_ptr(new AUD_DoubleReader(reader1, reader2)); } diff --git a/intern/audaspace/FX/AUD_DoubleFactory.h b/intern/audaspace/FX/AUD_DoubleFactory.h index e4d8fbfde8f..4a02cc7bcdb 100644 --- a/intern/audaspace/FX/AUD_DoubleFactory.h +++ b/intern/audaspace/FX/AUD_DoubleFactory.h @@ -41,12 +41,12 @@ private: /** * First played factory. */ - AUD_Reference m_factory1; + boost::shared_ptr m_factory1; /** * Second played factory. */ - AUD_Reference m_factory2; + boost::shared_ptr m_factory2; // hide copy constructor and operator= AUD_DoubleFactory(const AUD_DoubleFactory&); @@ -58,9 +58,9 @@ public: * \param factory1 The first input factory. * \param factory2 The second input factory. */ - AUD_DoubleFactory(AUD_Reference factory1, AUD_Reference factory2); + AUD_DoubleFactory(boost::shared_ptr factory1, boost::shared_ptr factory2); - virtual AUD_Reference createReader(); + virtual boost::shared_ptr createReader(); }; #endif //__AUD_DOUBLEFACTORY_H__ diff --git a/intern/audaspace/FX/AUD_DoubleReader.cpp b/intern/audaspace/FX/AUD_DoubleReader.cpp index 2b28bc7d679..ee18914e93f 100644 --- a/intern/audaspace/FX/AUD_DoubleReader.cpp +++ b/intern/audaspace/FX/AUD_DoubleReader.cpp @@ -31,8 +31,8 @@ #include -AUD_DoubleReader::AUD_DoubleReader(AUD_Reference reader1, - AUD_Reference reader2) : +AUD_DoubleReader::AUD_DoubleReader(boost::shared_ptr reader1, + boost::shared_ptr reader2) : m_reader1(reader1), m_reader2(reader2), m_finished1(false) { AUD_Specs s1, s2; diff --git a/intern/audaspace/FX/AUD_DoubleReader.h b/intern/audaspace/FX/AUD_DoubleReader.h index 1489f4eb184..5d2f65f1a90 100644 --- a/intern/audaspace/FX/AUD_DoubleReader.h +++ b/intern/audaspace/FX/AUD_DoubleReader.h @@ -32,7 +32,8 @@ #include "AUD_IReader.h" #include "AUD_Buffer.h" -#include "AUD_Reference.h" + +#include /** * This reader plays two readers sequently. @@ -43,12 +44,12 @@ private: /** * The first reader. */ - AUD_Reference m_reader1; + boost::shared_ptr m_reader1; /** * The second reader. */ - AUD_Reference m_reader2; + boost::shared_ptr m_reader2; /** * Whether we've reached the end of the first reader. @@ -65,7 +66,7 @@ public: * \param reader1 The first reader to read from. * \param reader2 The second reader to read from. */ - AUD_DoubleReader(AUD_Reference reader1, AUD_Reference reader2); + AUD_DoubleReader(boost::shared_ptr reader1, boost::shared_ptr reader2); /** * Destroys the reader. diff --git a/intern/audaspace/FX/AUD_DynamicIIRFilterFactory.cpp b/intern/audaspace/FX/AUD_DynamicIIRFilterFactory.cpp index 3d6beb6c554..e8ea4323b2e 100644 --- a/intern/audaspace/FX/AUD_DynamicIIRFilterFactory.cpp +++ b/intern/audaspace/FX/AUD_DynamicIIRFilterFactory.cpp @@ -29,12 +29,14 @@ #include "AUD_DynamicIIRFilterFactory.h" #include "AUD_DynamicIIRFilterReader.h" -AUD_DynamicIIRFilterFactory::AUD_DynamicIIRFilterFactory(AUD_Reference factory) : + +AUD_DynamicIIRFilterFactory::AUD_DynamicIIRFilterFactory(boost::shared_ptr factory) : AUD_EffectFactory(factory) { } -AUD_Reference AUD_DynamicIIRFilterFactory::createReader() +boost::shared_ptr AUD_DynamicIIRFilterFactory::createReader() { - return new AUD_DynamicIIRFilterReader(getReader(), this); + return boost::shared_ptr(new AUD_DynamicIIRFilterReader(getReader(), m_calculator)); } + diff --git a/intern/audaspace/FX/AUD_DynamicIIRFilterFactory.h b/intern/audaspace/FX/AUD_DynamicIIRFilterFactory.h index 5b297db2d56..f36a37f44b4 100644 --- a/intern/audaspace/FX/AUD_DynamicIIRFilterFactory.h +++ b/intern/audaspace/FX/AUD_DynamicIIRFilterFactory.h @@ -30,6 +30,7 @@ #define __AUD_DYNAMICIIRFILTERFACTORY_H__ #include "AUD_EffectFactory.h" +#include "AUD_IDynamicIIRFilterCalculator.h" #include /** @@ -40,24 +41,17 @@ */ class AUD_DynamicIIRFilterFactory : public AUD_EffectFactory { +protected: + boost::shared_ptr m_calculator; + public: /** * Creates a new Dynmic IIR filter factory. * \param factory The input factory. */ - AUD_DynamicIIRFilterFactory(AUD_Reference factory); - - virtual AUD_Reference createReader(); + AUD_DynamicIIRFilterFactory(boost::shared_ptr factory); - /** - * Recalculates the filter coefficients. - * \param rate The sample rate of the audio data. - * \param[out] b The input filter coefficients. - * \param[out] a The output filter coefficients. - */ - virtual void recalculateCoefficients(AUD_SampleRate rate, - std::vector& b, - std::vector& a)=0; + virtual boost::shared_ptr createReader(); }; #endif // __AUD_DYNAMICIIRFILTERFACTORY_H__ diff --git a/intern/audaspace/FX/AUD_DynamicIIRFilterReader.cpp b/intern/audaspace/FX/AUD_DynamicIIRFilterReader.cpp index 24332ebfc1a..52aaf2311c0 100644 --- a/intern/audaspace/FX/AUD_DynamicIIRFilterReader.cpp +++ b/intern/audaspace/FX/AUD_DynamicIIRFilterReader.cpp @@ -28,10 +28,10 @@ #include "AUD_DynamicIIRFilterReader.h" -AUD_DynamicIIRFilterReader::AUD_DynamicIIRFilterReader(AUD_Reference reader, - AUD_Reference factory) : +AUD_DynamicIIRFilterReader::AUD_DynamicIIRFilterReader(boost::shared_ptr reader, + boost::shared_ptr calculator) : AUD_IIRFilterReader(reader, std::vector(), std::vector()), - m_factory(factory) + m_calculator(calculator) { sampleRateChanged(reader->getSpecs().rate); } @@ -39,6 +39,6 @@ AUD_DynamicIIRFilterReader::AUD_DynamicIIRFilterReader(AUD_Reference a, b; - m_factory->recalculateCoefficients(rate, b, a); + m_calculator->recalculateCoefficients(rate, b, a); setCoefficients(b, a); } diff --git a/intern/audaspace/FX/AUD_DynamicIIRFilterReader.h b/intern/audaspace/FX/AUD_DynamicIIRFilterReader.h index 8a53c15b18f..0b68578bc53 100644 --- a/intern/audaspace/FX/AUD_DynamicIIRFilterReader.h +++ b/intern/audaspace/FX/AUD_DynamicIIRFilterReader.h @@ -30,7 +30,7 @@ #define __AUD_DYNAMICIIRFILTERREADER_H__ #include "AUD_IIRFilterReader.h" -#include "AUD_DynamicIIRFilterFactory.h" +#include "AUD_IDynamicIIRFilterCalculator.h" /** * This class is for dynamic infinite impulse response filters with simple @@ -42,11 +42,11 @@ private: /** * The factory for dynamically recalculating filter coefficients. */ - AUD_Reference m_factory; + boost::shared_ptr m_calculator; public: - AUD_DynamicIIRFilterReader(AUD_Reference reader, - AUD_Reference factory); + AUD_DynamicIIRFilterReader(boost::shared_ptr reader, + boost::shared_ptr calculator); virtual void sampleRateChanged(AUD_SampleRate rate); }; diff --git a/intern/audaspace/FX/AUD_EffectFactory.cpp b/intern/audaspace/FX/AUD_EffectFactory.cpp index d35f8affec8..6018ed561ca 100644 --- a/intern/audaspace/FX/AUD_EffectFactory.cpp +++ b/intern/audaspace/FX/AUD_EffectFactory.cpp @@ -30,7 +30,7 @@ #include "AUD_EffectFactory.h" #include "AUD_IReader.h" -AUD_EffectFactory::AUD_EffectFactory(AUD_Reference factory) +AUD_EffectFactory::AUD_EffectFactory(boost::shared_ptr factory) { m_factory = factory; } @@ -39,7 +39,7 @@ AUD_EffectFactory::~AUD_EffectFactory() { } -AUD_Reference AUD_EffectFactory::getFactory() const +boost::shared_ptr AUD_EffectFactory::getFactory() const { return m_factory; } diff --git a/intern/audaspace/FX/AUD_EffectFactory.h b/intern/audaspace/FX/AUD_EffectFactory.h index c8d26a1daa7..d09872638be 100644 --- a/intern/audaspace/FX/AUD_EffectFactory.h +++ b/intern/audaspace/FX/AUD_EffectFactory.h @@ -47,7 +47,7 @@ protected: /** * If there is no reader it is created out of this factory. */ - AUD_Reference m_factory; + boost::shared_ptr m_factory; /** * Returns the reader created out of the factory. @@ -55,7 +55,7 @@ protected: * classes. * \return The reader created out of the factory. */ - inline AUD_Reference getReader() const + inline boost::shared_ptr getReader() const { return m_factory->createReader(); } @@ -65,7 +65,7 @@ public: * Creates a new factory. * \param factory The input factory. */ - AUD_EffectFactory(AUD_Reference factory); + AUD_EffectFactory(boost::shared_ptr factory); /** * Destroys the factory. @@ -76,7 +76,7 @@ public: * Returns the saved factory. * \return The factory or NULL if there has no factory been saved. */ - AUD_Reference getFactory() const; + boost::shared_ptr getFactory() const; }; #endif //__AUD_EFFECTFACTORY_H__ diff --git a/intern/audaspace/FX/AUD_EffectReader.cpp b/intern/audaspace/FX/AUD_EffectReader.cpp index 6c08549e744..b3e80bef03b 100644 --- a/intern/audaspace/FX/AUD_EffectReader.cpp +++ b/intern/audaspace/FX/AUD_EffectReader.cpp @@ -29,7 +29,7 @@ #include "AUD_EffectReader.h" -AUD_EffectReader::AUD_EffectReader(AUD_Reference reader) +AUD_EffectReader::AUD_EffectReader(boost::shared_ptr reader) { m_reader = reader; } diff --git a/intern/audaspace/FX/AUD_EffectReader.h b/intern/audaspace/FX/AUD_EffectReader.h index b089ec9a318..2745c12afaf 100644 --- a/intern/audaspace/FX/AUD_EffectReader.h +++ b/intern/audaspace/FX/AUD_EffectReader.h @@ -31,7 +31,8 @@ #define __AUD_EFFECTREADER_H__ #include "AUD_IReader.h" -#include "AUD_Reference.h" + +#include /** * This reader is a base class for all effect readers that take one other reader @@ -48,14 +49,14 @@ protected: /** * The reader to read from. */ - AUD_Reference m_reader; + boost::shared_ptr m_reader; public: /** * Creates a new effect reader. * \param reader The reader to read from. */ - AUD_EffectReader(AUD_Reference reader); + AUD_EffectReader(boost::shared_ptr reader); /** * Destroys the reader. diff --git a/intern/audaspace/FX/AUD_EnvelopeFactory.cpp b/intern/audaspace/FX/AUD_EnvelopeFactory.cpp index c7176662659..1e5737557c1 100644 --- a/intern/audaspace/FX/AUD_EnvelopeFactory.cpp +++ b/intern/audaspace/FX/AUD_EnvelopeFactory.cpp @@ -54,7 +54,7 @@ void AUD_EnvelopeFactory::endEnvelopeFilter(EnvelopeParameters* param) delete param; } -AUD_EnvelopeFactory::AUD_EnvelopeFactory(AUD_Reference factory, float attack, +AUD_EnvelopeFactory::AUD_EnvelopeFactory(boost::shared_ptr factory, float attack, float release, float threshold, float arthreshold) : AUD_EffectFactory(factory), @@ -65,9 +65,9 @@ AUD_EnvelopeFactory::AUD_EnvelopeFactory(AUD_Reference factory, fl { } -AUD_Reference AUD_EnvelopeFactory::createReader() +boost::shared_ptr AUD_EnvelopeFactory::createReader() { - AUD_Reference reader = getReader(); + boost::shared_ptr reader = getReader(); EnvelopeParameters* param = new EnvelopeParameters(); param->arthreshold = m_arthreshold; @@ -75,8 +75,8 @@ AUD_Reference AUD_EnvelopeFactory::createReader() param->release = pow(m_arthreshold, 1.0f/(static_cast(reader->getSpecs().rate) * m_release)); param->threshold = m_threshold; - return new AUD_CallbackIIRFilterReader(reader, 1, 2, + return boost::shared_ptr(new AUD_CallbackIIRFilterReader(reader, 1, 2, (doFilterIIR) envelopeFilter, (endFilterIIR) endEnvelopeFilter, - param); + param)); } diff --git a/intern/audaspace/FX/AUD_EnvelopeFactory.h b/intern/audaspace/FX/AUD_EnvelopeFactory.h index c8f3dc37cd2..656212c8cac 100644 --- a/intern/audaspace/FX/AUD_EnvelopeFactory.h +++ b/intern/audaspace/FX/AUD_EnvelopeFactory.h @@ -73,10 +73,10 @@ public: * \param threshold The threshold value. * \param arthreshold The attack/release threshold value. */ - AUD_EnvelopeFactory(AUD_Reference factory, float attack, float release, + AUD_EnvelopeFactory(boost::shared_ptr factory, float attack, float release, float threshold, float arthreshold); - virtual AUD_Reference createReader(); + virtual boost::shared_ptr createReader(); static sample_t envelopeFilter(AUD_CallbackIIRFilterReader* reader, EnvelopeParameters* param); static void endEnvelopeFilter(EnvelopeParameters* param); diff --git a/intern/audaspace/FX/AUD_FaderFactory.cpp b/intern/audaspace/FX/AUD_FaderFactory.cpp index ec119ef9388..b34d2134385 100644 --- a/intern/audaspace/FX/AUD_FaderFactory.cpp +++ b/intern/audaspace/FX/AUD_FaderFactory.cpp @@ -30,7 +30,7 @@ #include "AUD_FaderFactory.h" #include "AUD_FaderReader.h" -AUD_FaderFactory::AUD_FaderFactory(AUD_Reference factory, AUD_FadeType type, +AUD_FaderFactory::AUD_FaderFactory(boost::shared_ptr factory, AUD_FadeType type, float start, float length) : AUD_EffectFactory(factory), m_type(type), @@ -54,7 +54,7 @@ float AUD_FaderFactory::getLength() const return m_length; } -AUD_Reference AUD_FaderFactory::createReader() +boost::shared_ptr AUD_FaderFactory::createReader() { - return new AUD_FaderReader(getReader(), m_type, m_start, m_length); + return boost::shared_ptr(new AUD_FaderReader(getReader(), m_type, m_start, m_length)); } diff --git a/intern/audaspace/FX/AUD_FaderFactory.h b/intern/audaspace/FX/AUD_FaderFactory.h index 82eaf2fae9f..f9ad88a751d 100644 --- a/intern/audaspace/FX/AUD_FaderFactory.h +++ b/intern/audaspace/FX/AUD_FaderFactory.h @@ -67,7 +67,7 @@ public: * \param start The time where fading should start in seconds. * \param length How long fading should last in seconds. */ - AUD_FaderFactory(AUD_Reference factory, + AUD_FaderFactory(boost::shared_ptr factory, AUD_FadeType type = AUD_FADE_IN, float start = 0.0f, float length = 1.0f); @@ -86,7 +86,7 @@ public: */ float getLength() const; - virtual AUD_Reference createReader(); + virtual boost::shared_ptr createReader(); }; #endif //__AUD_FADERFACTORY_H__ diff --git a/intern/audaspace/FX/AUD_FaderReader.cpp b/intern/audaspace/FX/AUD_FaderReader.cpp index 4ece91ca899..e09072054cb 100644 --- a/intern/audaspace/FX/AUD_FaderReader.cpp +++ b/intern/audaspace/FX/AUD_FaderReader.cpp @@ -31,7 +31,7 @@ #include -AUD_FaderReader::AUD_FaderReader(AUD_Reference reader, AUD_FadeType type, +AUD_FaderReader::AUD_FaderReader(boost::shared_ptr reader, AUD_FadeType type, float start,float length) : AUD_EffectReader(reader), m_type(type), diff --git a/intern/audaspace/FX/AUD_FaderReader.h b/intern/audaspace/FX/AUD_FaderReader.h index 788e8539228..a49960b30fb 100644 --- a/intern/audaspace/FX/AUD_FaderReader.h +++ b/intern/audaspace/FX/AUD_FaderReader.h @@ -67,7 +67,7 @@ public: * \param start The time where fading should start in seconds. * \param length How long fading should last in seconds. */ - AUD_FaderReader(AUD_Reference reader, AUD_FadeType type, + AUD_FaderReader(boost::shared_ptr reader, AUD_FadeType type, float start,float length); virtual void read(int& length, bool& eos, sample_t* buffer); diff --git a/intern/audaspace/FX/AUD_HighpassFactory.cpp b/intern/audaspace/FX/AUD_HighpassFactory.cpp index b56be8942ff..ba5297d21ed 100644 --- a/intern/audaspace/FX/AUD_HighpassFactory.cpp +++ b/intern/audaspace/FX/AUD_HighpassFactory.cpp @@ -36,7 +36,7 @@ #define M_PI 3.14159265358979323846 #endif -AUD_HighpassFactory::AUD_HighpassFactory(AUD_Reference factory, float frequency, +AUD_HighpassFactory::AUD_HighpassFactory(boost::shared_ptr factory, float frequency, float Q) : AUD_DynamicIIRFilterFactory(factory), m_frequency(frequency), diff --git a/intern/audaspace/FX/AUD_HighpassFactory.h b/intern/audaspace/FX/AUD_HighpassFactory.h index 66aa8091234..ed7e9db44a4 100644 --- a/intern/audaspace/FX/AUD_HighpassFactory.h +++ b/intern/audaspace/FX/AUD_HighpassFactory.h @@ -59,7 +59,7 @@ public: * \param frequency The cutoff frequency. * \param Q The Q factor. */ - AUD_HighpassFactory(AUD_Reference factory, float frequency, float Q = 1.0f); + AUD_HighpassFactory(boost::shared_ptr factory, float frequency, float Q = 1.0f); virtual void recalculateCoefficients(AUD_SampleRate rate, std::vector &b, std::vector &a); }; diff --git a/intern/audaspace/FX/AUD_IDynamicIIRFilterCalculator.h b/intern/audaspace/FX/AUD_IDynamicIIRFilterCalculator.h new file mode 100644 index 00000000000..77d83360255 --- /dev/null +++ b/intern/audaspace/FX/AUD_IDynamicIIRFilterCalculator.h @@ -0,0 +1,52 @@ +/* + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * Copyright 2009-2011 Jörg Hermann Müller + * + * This file is part of AudaSpace. + * + * Audaspace is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * AudaSpace is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Audaspace; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +/** \file audaspace/FX/AUD_IDynamicIIRFilterCalculator.h + * \ingroup audfx + */ + +#ifndef AUD_IDYNAMICIIRFILTERCALCULATOR_H +#define AUD_IDYNAMICIIRFILTERCALCULATOR_H + +#include + +/** + * This interface calculates dynamic filter coefficients which depend on the + * sampling rate for AUD_DynamicIIRFilterReaders. + */ +class AUD_IDynamicIIRFilterCalculator +{ +public: + /** + * Recalculates the filter coefficients. + * \param rate The sample rate of the audio data. + * \param[out] b The input filter coefficients. + * \param[out] a The output filter coefficients. + */ + virtual void recalculateCoefficients(AUD_SampleRate rate, + std::vector& b, + std::vector& a)=0; +}; + +#endif // AUD_IDYNAMICIIRFILTERCALCULATOR_H diff --git a/intern/audaspace/FX/AUD_IIRFilterFactory.cpp b/intern/audaspace/FX/AUD_IIRFilterFactory.cpp index 807b0ef4899..c4f94a2dc27 100644 --- a/intern/audaspace/FX/AUD_IIRFilterFactory.cpp +++ b/intern/audaspace/FX/AUD_IIRFilterFactory.cpp @@ -30,14 +30,14 @@ #include "AUD_IIRFilterFactory.h" #include "AUD_IIRFilterReader.h" -AUD_IIRFilterFactory::AUD_IIRFilterFactory(AUD_Reference factory, +AUD_IIRFilterFactory::AUD_IIRFilterFactory(boost::shared_ptr factory, std::vector b, std::vector a) : AUD_EffectFactory(factory), m_a(a), m_b(b) { } -AUD_Reference AUD_IIRFilterFactory::createReader() +boost::shared_ptr AUD_IIRFilterFactory::createReader() { - return new AUD_IIRFilterReader(getReader(), m_b, m_a); + return boost::shared_ptr(new AUD_IIRFilterReader(getReader(), m_b, m_a)); } diff --git a/intern/audaspace/FX/AUD_IIRFilterFactory.h b/intern/audaspace/FX/AUD_IIRFilterFactory.h index 43256a166aa..0b55c120384 100644 --- a/intern/audaspace/FX/AUD_IIRFilterFactory.h +++ b/intern/audaspace/FX/AUD_IIRFilterFactory.h @@ -31,6 +31,7 @@ #define __AUD_IIRFILTERFACTORY_H__ #include "AUD_EffectFactory.h" +#include "AUD_IDynamicIIRFilterCalculator.h" #include @@ -61,10 +62,10 @@ public: * \param b The input filter coefficients. * \param a The output filter coefficients. */ - AUD_IIRFilterFactory(AUD_Reference factory, std::vector b, + AUD_IIRFilterFactory(boost::shared_ptr factory, std::vector b, std::vector a); - virtual AUD_Reference createReader(); + virtual boost::shared_ptr createReader(); }; #endif //__AUD_IIRFILTERFACTORY_H__ diff --git a/intern/audaspace/FX/AUD_IIRFilterReader.cpp b/intern/audaspace/FX/AUD_IIRFilterReader.cpp index 8f78c110d1f..6716e6b9ddc 100644 --- a/intern/audaspace/FX/AUD_IIRFilterReader.cpp +++ b/intern/audaspace/FX/AUD_IIRFilterReader.cpp @@ -29,7 +29,7 @@ #include "AUD_IIRFilterReader.h" -AUD_IIRFilterReader::AUD_IIRFilterReader(AUD_Reference reader, +AUD_IIRFilterReader::AUD_IIRFilterReader(boost::shared_ptr reader, const std::vector& b, const std::vector& a) : AUD_BaseIIRFilterReader(reader, b.size(), a.size()), m_a(a), m_b(b) diff --git a/intern/audaspace/FX/AUD_IIRFilterReader.h b/intern/audaspace/FX/AUD_IIRFilterReader.h index d9be52f2919..d663805b50f 100644 --- a/intern/audaspace/FX/AUD_IIRFilterReader.h +++ b/intern/audaspace/FX/AUD_IIRFilterReader.h @@ -61,7 +61,7 @@ public: * \param b The input filter coefficients. * \param a The output filter coefficients. */ - AUD_IIRFilterReader(AUD_Reference reader, const std::vector& b, + AUD_IIRFilterReader(boost::shared_ptr reader, const std::vector& b, const std::vector& a); virtual sample_t filter(); diff --git a/intern/audaspace/FX/AUD_LimiterFactory.cpp b/intern/audaspace/FX/AUD_LimiterFactory.cpp index e58657d8d70..679ed3a6b8b 100644 --- a/intern/audaspace/FX/AUD_LimiterFactory.cpp +++ b/intern/audaspace/FX/AUD_LimiterFactory.cpp @@ -31,7 +31,7 @@ #include "AUD_LimiterReader.h" #include "AUD_Space.h" -AUD_LimiterFactory::AUD_LimiterFactory(AUD_Reference factory, +AUD_LimiterFactory::AUD_LimiterFactory(boost::shared_ptr factory, float start, float end) : AUD_EffectFactory(factory), m_start(start), @@ -49,7 +49,7 @@ float AUD_LimiterFactory::getEnd() const return m_end; } -AUD_Reference AUD_LimiterFactory::createReader() +boost::shared_ptr AUD_LimiterFactory::createReader() { - return new AUD_LimiterReader(getReader(), m_start, m_end); + return boost::shared_ptr(new AUD_LimiterReader(getReader(), m_start, m_end)); } diff --git a/intern/audaspace/FX/AUD_LimiterFactory.h b/intern/audaspace/FX/AUD_LimiterFactory.h index ddc8183ce7a..0376952b4bd 100644 --- a/intern/audaspace/FX/AUD_LimiterFactory.h +++ b/intern/audaspace/FX/AUD_LimiterFactory.h @@ -60,7 +60,7 @@ public: * \param end The desired end time, a negative value signals that it should * play to the end. */ - AUD_LimiterFactory(AUD_Reference factory, + AUD_LimiterFactory(boost::shared_ptr factory, float start = 0, float end = -1); /** @@ -73,7 +73,7 @@ public: */ float getEnd() const; - virtual AUD_Reference createReader(); + virtual boost::shared_ptr createReader(); }; #endif //__AUD_LIMITERFACTORY_H__ diff --git a/intern/audaspace/FX/AUD_LimiterReader.cpp b/intern/audaspace/FX/AUD_LimiterReader.cpp index 0abf496c7f9..9c1d4443b06 100644 --- a/intern/audaspace/FX/AUD_LimiterReader.cpp +++ b/intern/audaspace/FX/AUD_LimiterReader.cpp @@ -30,7 +30,7 @@ #include "AUD_LimiterReader.h" #include "AUD_Buffer.h" -AUD_LimiterReader::AUD_LimiterReader(AUD_Reference reader, +AUD_LimiterReader::AUD_LimiterReader(boost::shared_ptr reader, float start, float end) : AUD_EffectReader(reader), m_start(start), diff --git a/intern/audaspace/FX/AUD_LimiterReader.h b/intern/audaspace/FX/AUD_LimiterReader.h index 34c4ea7c20e..607eb9e5bec 100644 --- a/intern/audaspace/FX/AUD_LimiterReader.h +++ b/intern/audaspace/FX/AUD_LimiterReader.h @@ -60,7 +60,7 @@ public: * \param end The desired end time (sample exklusive), a negative value * signals that it should play to the end. */ - AUD_LimiterReader(AUD_Reference reader, float start = 0, float end = -1); + AUD_LimiterReader(boost::shared_ptr reader, float start = 0, float end = -1); virtual void seek(int position); virtual int getLength() const; diff --git a/intern/audaspace/FX/AUD_LoopFactory.cpp b/intern/audaspace/FX/AUD_LoopFactory.cpp index 32c9e6bad7f..a9e83e349a0 100644 --- a/intern/audaspace/FX/AUD_LoopFactory.cpp +++ b/intern/audaspace/FX/AUD_LoopFactory.cpp @@ -30,7 +30,7 @@ #include "AUD_LoopFactory.h" #include "AUD_LoopReader.h" -AUD_LoopFactory::AUD_LoopFactory(AUD_Reference factory, int loop) : +AUD_LoopFactory::AUD_LoopFactory(boost::shared_ptr factory, int loop) : AUD_EffectFactory(factory), m_loop(loop) { @@ -41,7 +41,7 @@ int AUD_LoopFactory::getLoop() const return m_loop; } -AUD_Reference AUD_LoopFactory::createReader() +boost::shared_ptr AUD_LoopFactory::createReader() { - return new AUD_LoopReader(getReader(), m_loop); + return boost::shared_ptr(new AUD_LoopReader(getReader(), m_loop)); } diff --git a/intern/audaspace/FX/AUD_LoopFactory.h b/intern/audaspace/FX/AUD_LoopFactory.h index 754b780bd99..570536bee9a 100644 --- a/intern/audaspace/FX/AUD_LoopFactory.h +++ b/intern/audaspace/FX/AUD_LoopFactory.h @@ -55,14 +55,14 @@ public: * \param loop The desired loop count, negative values result in endless * looping. */ - AUD_LoopFactory(AUD_Reference factory, int loop = -1); + AUD_LoopFactory(boost::shared_ptr factory, int loop = -1); /** * Returns the loop count. */ int getLoop() const; - virtual AUD_Reference createReader(); + virtual boost::shared_ptr createReader(); }; #endif //__AUD_LOOPFACTORY_H__ diff --git a/intern/audaspace/FX/AUD_LoopReader.cpp b/intern/audaspace/FX/AUD_LoopReader.cpp index 863f66f9f46..6fbcaa5af37 100644 --- a/intern/audaspace/FX/AUD_LoopReader.cpp +++ b/intern/audaspace/FX/AUD_LoopReader.cpp @@ -32,7 +32,7 @@ #include -AUD_LoopReader::AUD_LoopReader(AUD_Reference reader, int loop) : +AUD_LoopReader::AUD_LoopReader(boost::shared_ptr reader, int loop) : AUD_EffectReader(reader), m_count(loop), m_left(loop) { } diff --git a/intern/audaspace/FX/AUD_LoopReader.h b/intern/audaspace/FX/AUD_LoopReader.h index fd2dd71d78f..12b8078b12d 100644 --- a/intern/audaspace/FX/AUD_LoopReader.h +++ b/intern/audaspace/FX/AUD_LoopReader.h @@ -61,7 +61,7 @@ public: * \param loop The desired loop count, negative values result in endless * looping. */ - AUD_LoopReader(AUD_Reference reader, int loop); + AUD_LoopReader(boost::shared_ptr reader, int loop); virtual void seek(int position); virtual int getLength() const; diff --git a/intern/audaspace/FX/AUD_LowpassFactory.cpp b/intern/audaspace/FX/AUD_LowpassFactory.cpp index 14dbc951c7f..e2faa241ac9 100644 --- a/intern/audaspace/FX/AUD_LowpassFactory.cpp +++ b/intern/audaspace/FX/AUD_LowpassFactory.cpp @@ -36,7 +36,7 @@ #define M_PI 3.14159265358979323846 #endif -AUD_LowpassFactory::AUD_LowpassFactory(AUD_Reference factory, float frequency, +AUD_LowpassFactory::AUD_LowpassFactory(boost::shared_ptr factory, float frequency, float Q) : AUD_DynamicIIRFilterFactory(factory), m_frequency(frequency), diff --git a/intern/audaspace/FX/AUD_LowpassFactory.h b/intern/audaspace/FX/AUD_LowpassFactory.h index 7e98720a2db..fdbc6e5d91d 100644 --- a/intern/audaspace/FX/AUD_LowpassFactory.h +++ b/intern/audaspace/FX/AUD_LowpassFactory.h @@ -59,7 +59,7 @@ public: * \param frequency The cutoff frequency. * \param Q The Q factor. */ - AUD_LowpassFactory(AUD_Reference factory, float frequency, float Q = 1.0f); + AUD_LowpassFactory(boost::shared_ptr factory, float frequency, float Q = 1.0f); virtual void recalculateCoefficients(AUD_SampleRate rate, std::vector &b, std::vector &a); }; diff --git a/intern/audaspace/FX/AUD_PingPongFactory.cpp b/intern/audaspace/FX/AUD_PingPongFactory.cpp index 3d5011cf47b..84e4b29415e 100644 --- a/intern/audaspace/FX/AUD_PingPongFactory.cpp +++ b/intern/audaspace/FX/AUD_PingPongFactory.cpp @@ -31,16 +31,16 @@ #include "AUD_DoubleReader.h" #include "AUD_ReverseFactory.h" -AUD_PingPongFactory::AUD_PingPongFactory(AUD_Reference factory) : +AUD_PingPongFactory::AUD_PingPongFactory(boost::shared_ptr factory) : AUD_EffectFactory(factory) { } -AUD_Reference AUD_PingPongFactory::createReader() +boost::shared_ptr AUD_PingPongFactory::createReader() { - AUD_Reference reader = getReader(); + boost::shared_ptr reader = getReader(); AUD_ReverseFactory factory(m_factory); - AUD_Reference reader2 = factory.createReader(); + boost::shared_ptr reader2 = factory.createReader(); - return new AUD_DoubleReader(reader, reader2); + return boost::shared_ptr(new AUD_DoubleReader(reader, reader2)); } diff --git a/intern/audaspace/FX/AUD_PingPongFactory.h b/intern/audaspace/FX/AUD_PingPongFactory.h index f25624a7c5e..e8ee5c9e389 100644 --- a/intern/audaspace/FX/AUD_PingPongFactory.h +++ b/intern/audaspace/FX/AUD_PingPongFactory.h @@ -48,9 +48,9 @@ public: * Creates a new ping pong factory. * \param factory The input factory. */ - AUD_PingPongFactory(AUD_Reference factory); + AUD_PingPongFactory(boost::shared_ptr factory); - virtual AUD_Reference createReader(); + virtual boost::shared_ptr createReader(); }; #endif //__AUD_PINGPONGFACTORY_H__ diff --git a/intern/audaspace/FX/AUD_PitchFactory.cpp b/intern/audaspace/FX/AUD_PitchFactory.cpp index c6e9ae0b457..9dc27a58162 100644 --- a/intern/audaspace/FX/AUD_PitchFactory.cpp +++ b/intern/audaspace/FX/AUD_PitchFactory.cpp @@ -31,13 +31,13 @@ #include "AUD_PitchReader.h" #include "AUD_Space.h" -AUD_PitchFactory::AUD_PitchFactory(AUD_Reference factory, float pitch) : +AUD_PitchFactory::AUD_PitchFactory(boost::shared_ptr factory, float pitch) : AUD_EffectFactory(factory), m_pitch(pitch) { } -AUD_Reference AUD_PitchFactory::createReader() +boost::shared_ptr AUD_PitchFactory::createReader() { - return new AUD_PitchReader(getReader(), m_pitch); + return boost::shared_ptr(new AUD_PitchReader(getReader(), m_pitch)); } diff --git a/intern/audaspace/FX/AUD_PitchFactory.h b/intern/audaspace/FX/AUD_PitchFactory.h index 5ad37ad1a6c..159388b28dd 100644 --- a/intern/audaspace/FX/AUD_PitchFactory.h +++ b/intern/audaspace/FX/AUD_PitchFactory.h @@ -53,9 +53,9 @@ public: * \param factory The input factory. * \param pitch The desired pitch. */ - AUD_PitchFactory(AUD_Reference factory, float pitch); + AUD_PitchFactory(boost::shared_ptr factory, float pitch); - virtual AUD_Reference createReader(); + virtual boost::shared_ptr createReader(); }; #endif //__AUD_PITCHFACTORY_H__ diff --git a/intern/audaspace/FX/AUD_PitchReader.cpp b/intern/audaspace/FX/AUD_PitchReader.cpp index 0d1ff012e73..218af4fc090 100644 --- a/intern/audaspace/FX/AUD_PitchReader.cpp +++ b/intern/audaspace/FX/AUD_PitchReader.cpp @@ -29,7 +29,7 @@ #include "AUD_PitchReader.h" -AUD_PitchReader::AUD_PitchReader(AUD_Reference reader, float pitch) : +AUD_PitchReader::AUD_PitchReader(boost::shared_ptr reader, float pitch) : AUD_EffectReader(reader), m_pitch(pitch) { } diff --git a/intern/audaspace/FX/AUD_PitchReader.h b/intern/audaspace/FX/AUD_PitchReader.h index 3185bfdf30b..d22e589b05d 100644 --- a/intern/audaspace/FX/AUD_PitchReader.h +++ b/intern/audaspace/FX/AUD_PitchReader.h @@ -53,7 +53,7 @@ public: * \param reader The reader to read from. * \param pitch The pitch value. */ - AUD_PitchReader(AUD_Reference reader, float pitch); + AUD_PitchReader(boost::shared_ptr reader, float pitch); virtual AUD_Specs getSpecs() const; diff --git a/intern/audaspace/FX/AUD_RectifyFactory.cpp b/intern/audaspace/FX/AUD_RectifyFactory.cpp index ad01f404698..26bb5615dad 100644 --- a/intern/audaspace/FX/AUD_RectifyFactory.cpp +++ b/intern/audaspace/FX/AUD_RectifyFactory.cpp @@ -37,12 +37,12 @@ sample_t AUD_RectifyFactory::rectifyFilter(AUD_CallbackIIRFilterReader* reader, return fabs(reader->x(0)); } -AUD_RectifyFactory::AUD_RectifyFactory(AUD_Reference factory) : +AUD_RectifyFactory::AUD_RectifyFactory(boost::shared_ptr factory) : AUD_EffectFactory(factory) { } -AUD_Reference AUD_RectifyFactory::createReader() +boost::shared_ptr AUD_RectifyFactory::createReader() { - return new AUD_CallbackIIRFilterReader(getReader(), 1, 1, rectifyFilter); + return boost::shared_ptr(new AUD_CallbackIIRFilterReader(getReader(), 1, 1, rectifyFilter)); } diff --git a/intern/audaspace/FX/AUD_RectifyFactory.h b/intern/audaspace/FX/AUD_RectifyFactory.h index 5ad41d424d9..eb595e43e4f 100644 --- a/intern/audaspace/FX/AUD_RectifyFactory.h +++ b/intern/audaspace/FX/AUD_RectifyFactory.h @@ -48,9 +48,9 @@ public: * Creates a new rectify factory. * \param factory The input factory. */ - AUD_RectifyFactory(AUD_Reference factory); + AUD_RectifyFactory(boost::shared_ptr factory); - virtual AUD_Reference createReader(); + virtual boost::shared_ptr createReader(); static sample_t rectifyFilter(AUD_CallbackIIRFilterReader* reader, void* useless); }; diff --git a/intern/audaspace/FX/AUD_ReverseFactory.cpp b/intern/audaspace/FX/AUD_ReverseFactory.cpp index 063cbc88180..afb4ad2bec9 100644 --- a/intern/audaspace/FX/AUD_ReverseFactory.cpp +++ b/intern/audaspace/FX/AUD_ReverseFactory.cpp @@ -31,12 +31,12 @@ #include "AUD_ReverseReader.h" #include "AUD_Space.h" -AUD_ReverseFactory::AUD_ReverseFactory(AUD_Reference factory) : +AUD_ReverseFactory::AUD_ReverseFactory(boost::shared_ptr factory) : AUD_EffectFactory(factory) { } -AUD_Reference AUD_ReverseFactory::createReader() +boost::shared_ptr AUD_ReverseFactory::createReader() { - return new AUD_ReverseReader(getReader()); + return boost::shared_ptr(new AUD_ReverseReader(getReader())); } diff --git a/intern/audaspace/FX/AUD_ReverseFactory.h b/intern/audaspace/FX/AUD_ReverseFactory.h index e2d75dc560a..5b0c9e3c29a 100644 --- a/intern/audaspace/FX/AUD_ReverseFactory.h +++ b/intern/audaspace/FX/AUD_ReverseFactory.h @@ -48,9 +48,9 @@ public: * Creates a new reverse factory. * \param factory The input factory. */ - AUD_ReverseFactory(AUD_Reference factory); + AUD_ReverseFactory(boost::shared_ptr factory); - virtual AUD_Reference createReader(); + virtual boost::shared_ptr createReader(); }; #endif //__AUD_REVERSEFACTORY_H__ diff --git a/intern/audaspace/FX/AUD_ReverseReader.cpp b/intern/audaspace/FX/AUD_ReverseReader.cpp index 6b454c66d25..c0a5962a299 100644 --- a/intern/audaspace/FX/AUD_ReverseReader.cpp +++ b/intern/audaspace/FX/AUD_ReverseReader.cpp @@ -34,7 +34,7 @@ static const char* props_error = "AUD_ReverseReader: The reader has to be " "seekable and a finite length."; -AUD_ReverseReader::AUD_ReverseReader(AUD_Reference reader) : +AUD_ReverseReader::AUD_ReverseReader(boost::shared_ptr reader) : AUD_EffectReader(reader), m_length(reader->getLength()), m_position(0) diff --git a/intern/audaspace/FX/AUD_ReverseReader.h b/intern/audaspace/FX/AUD_ReverseReader.h index d1e5179b8ec..219047915bd 100644 --- a/intern/audaspace/FX/AUD_ReverseReader.h +++ b/intern/audaspace/FX/AUD_ReverseReader.h @@ -61,7 +61,7 @@ public: * \exception AUD_Exception Thrown if the reader specified has an * undeterminable/infinite length or is not seekable. */ - AUD_ReverseReader(AUD_Reference reader); + AUD_ReverseReader(boost::shared_ptr reader); virtual void seek(int position); virtual int getLength() const; diff --git a/intern/audaspace/FX/AUD_SquareFactory.cpp b/intern/audaspace/FX/AUD_SquareFactory.cpp index 7aabdb775f6..4b4dccb6e6b 100644 --- a/intern/audaspace/FX/AUD_SquareFactory.cpp +++ b/intern/audaspace/FX/AUD_SquareFactory.cpp @@ -46,7 +46,7 @@ void AUD_SquareFactory::endSquareFilter(float* threshold) delete threshold; } -AUD_SquareFactory::AUD_SquareFactory(AUD_Reference factory, float threshold) : +AUD_SquareFactory::AUD_SquareFactory(boost::shared_ptr factory, float threshold) : AUD_EffectFactory(factory), m_threshold(threshold) { @@ -57,10 +57,10 @@ float AUD_SquareFactory::getThreshold() const return m_threshold; } -AUD_Reference AUD_SquareFactory::createReader() +boost::shared_ptr AUD_SquareFactory::createReader() { - return new AUD_CallbackIIRFilterReader(getReader(), 1, 1, + return boost::shared_ptr(new AUD_CallbackIIRFilterReader(getReader(), 1, 1, (doFilterIIR) squareFilter, (endFilterIIR) endSquareFilter, - new float(m_threshold)); + new float(m_threshold))); } diff --git a/intern/audaspace/FX/AUD_SquareFactory.h b/intern/audaspace/FX/AUD_SquareFactory.h index 9c0dea25d2b..27e62b6f4cc 100644 --- a/intern/audaspace/FX/AUD_SquareFactory.h +++ b/intern/audaspace/FX/AUD_SquareFactory.h @@ -54,14 +54,14 @@ public: * \param factory The input factory. * \param threshold The threshold. */ - AUD_SquareFactory(AUD_Reference factory, float threshold = 0.0f); + AUD_SquareFactory(boost::shared_ptr factory, float threshold = 0.0f); /** * Returns the threshold. */ float getThreshold() const; - virtual AUD_Reference createReader(); + virtual boost::shared_ptr createReader(); static sample_t squareFilter(AUD_CallbackIIRFilterReader* reader, float* threshold); static void endSquareFilter(float* threshold); diff --git a/intern/audaspace/FX/AUD_SumFactory.cpp b/intern/audaspace/FX/AUD_SumFactory.cpp index b58c44b0171..7f82233a0b7 100644 --- a/intern/audaspace/FX/AUD_SumFactory.cpp +++ b/intern/audaspace/FX/AUD_SumFactory.cpp @@ -30,16 +30,16 @@ #include "AUD_SumFactory.h" #include "AUD_IIRFilterReader.h" -AUD_SumFactory::AUD_SumFactory(AUD_Reference factory) : +AUD_SumFactory::AUD_SumFactory(boost::shared_ptr factory) : AUD_EffectFactory(factory) { } -AUD_Reference AUD_SumFactory::createReader() +boost::shared_ptr AUD_SumFactory::createReader() { std::vector a, b; a.push_back(1); a.push_back(-1); b.push_back(1); - return new AUD_IIRFilterReader(getReader(), b, a); + return boost::shared_ptr(new AUD_IIRFilterReader(getReader(), b, a)); } diff --git a/intern/audaspace/FX/AUD_SumFactory.h b/intern/audaspace/FX/AUD_SumFactory.h index ec17faf3fb2..a916f3509cb 100644 --- a/intern/audaspace/FX/AUD_SumFactory.h +++ b/intern/audaspace/FX/AUD_SumFactory.h @@ -47,9 +47,9 @@ public: * Creates a new sum factory. * \param factory The input factory. */ - AUD_SumFactory(AUD_Reference factory); + AUD_SumFactory(boost::shared_ptr factory); - virtual AUD_Reference createReader(); + virtual boost::shared_ptr createReader(); }; #endif //__AUD_SUMFACTORY_H__ diff --git a/intern/audaspace/FX/AUD_SuperposeFactory.cpp b/intern/audaspace/FX/AUD_SuperposeFactory.cpp index 30c57198c73..3efad37a5b3 100644 --- a/intern/audaspace/FX/AUD_SuperposeFactory.cpp +++ b/intern/audaspace/FX/AUD_SuperposeFactory.cpp @@ -30,15 +30,15 @@ #include "AUD_SuperposeFactory.h" #include "AUD_SuperposeReader.h" -AUD_SuperposeFactory::AUD_SuperposeFactory(AUD_Reference factory1, AUD_Reference factory2) : +AUD_SuperposeFactory::AUD_SuperposeFactory(boost::shared_ptr factory1, boost::shared_ptr factory2) : m_factory1(factory1), m_factory2(factory2) { } -AUD_Reference AUD_SuperposeFactory::createReader() +boost::shared_ptr AUD_SuperposeFactory::createReader() { - AUD_Reference reader1 = m_factory1->createReader(); - AUD_Reference reader2 = m_factory2->createReader(); + boost::shared_ptr reader1 = m_factory1->createReader(); + boost::shared_ptr reader2 = m_factory2->createReader(); - return new AUD_SuperposeReader(reader1, reader2); + return boost::shared_ptr(new AUD_SuperposeReader(reader1, reader2)); } diff --git a/intern/audaspace/FX/AUD_SuperposeFactory.h b/intern/audaspace/FX/AUD_SuperposeFactory.h index 2da8e34496d..caa0dfb752f 100644 --- a/intern/audaspace/FX/AUD_SuperposeFactory.h +++ b/intern/audaspace/FX/AUD_SuperposeFactory.h @@ -43,12 +43,12 @@ private: /** * First played factory. */ - AUD_Reference m_factory1; + boost::shared_ptr m_factory1; /** * Second played factory. */ - AUD_Reference m_factory2; + boost::shared_ptr m_factory2; // hide copy constructor and operator= AUD_SuperposeFactory(const AUD_SuperposeFactory&); @@ -60,9 +60,9 @@ public: * \param factory1 The first input factory. * \param factory2 The second input factory. */ - AUD_SuperposeFactory(AUD_Reference factory1, AUD_Reference factory2); + AUD_SuperposeFactory(boost::shared_ptr factory1, boost::shared_ptr factory2); - virtual AUD_Reference createReader(); + virtual boost::shared_ptr createReader(); }; #endif //__AUD_SUPERPOSEFACTORY_H__ diff --git a/intern/audaspace/FX/AUD_SuperposeReader.cpp b/intern/audaspace/FX/AUD_SuperposeReader.cpp index 535d3590a8f..294a48b3e7a 100644 --- a/intern/audaspace/FX/AUD_SuperposeReader.cpp +++ b/intern/audaspace/FX/AUD_SuperposeReader.cpp @@ -34,7 +34,7 @@ static const char* specs_error = "AUD_SuperposeReader: Both readers have to " "have the same specs."; -AUD_SuperposeReader::AUD_SuperposeReader(AUD_Reference reader1, AUD_Reference reader2) : +AUD_SuperposeReader::AUD_SuperposeReader(boost::shared_ptr reader1, boost::shared_ptr reader2) : m_reader1(reader1), m_reader2(reader2) { } diff --git a/intern/audaspace/FX/AUD_SuperposeReader.h b/intern/audaspace/FX/AUD_SuperposeReader.h index d0fde13a267..a04ab90fe43 100644 --- a/intern/audaspace/FX/AUD_SuperposeReader.h +++ b/intern/audaspace/FX/AUD_SuperposeReader.h @@ -32,7 +32,8 @@ #include "AUD_IReader.h" #include "AUD_Buffer.h" -#include "AUD_Reference.h" + +#include /** * This reader plays two readers with the same specs in parallel. @@ -43,12 +44,12 @@ private: /** * The first reader. */ - AUD_Reference m_reader1; + boost::shared_ptr m_reader1; /** * The second reader. */ - AUD_Reference m_reader2; + boost::shared_ptr m_reader2; /** * Buffer used for mixing. @@ -66,7 +67,7 @@ public: * \param reader2 The second reader to read from. * \exception AUD_Exception Thrown if the specs from the readers differ. */ - AUD_SuperposeReader(AUD_Reference reader1, AUD_Reference reader2); + AUD_SuperposeReader(boost::shared_ptr reader1, boost::shared_ptr reader2); /** * Destroys the reader. diff --git a/intern/audaspace/FX/AUD_VolumeFactory.cpp b/intern/audaspace/FX/AUD_VolumeFactory.cpp index f5e635eec2d..4f0e1e425e6 100644 --- a/intern/audaspace/FX/AUD_VolumeFactory.cpp +++ b/intern/audaspace/FX/AUD_VolumeFactory.cpp @@ -30,7 +30,7 @@ #include "AUD_VolumeFactory.h" #include "AUD_IIRFilterReader.h" -AUD_VolumeFactory::AUD_VolumeFactory(AUD_Reference factory, float volume) : +AUD_VolumeFactory::AUD_VolumeFactory(boost::shared_ptr factory, float volume) : AUD_EffectFactory(factory), m_volume(volume) { @@ -41,10 +41,10 @@ float AUD_VolumeFactory::getVolume() const return m_volume; } -AUD_Reference AUD_VolumeFactory::createReader() +boost::shared_ptr AUD_VolumeFactory::createReader() { std::vector a, b; a.push_back(1); b.push_back(m_volume); - return new AUD_IIRFilterReader(getReader(), b, a); + return boost::shared_ptr(new AUD_IIRFilterReader(getReader(), b, a)); } diff --git a/intern/audaspace/FX/AUD_VolumeFactory.h b/intern/audaspace/FX/AUD_VolumeFactory.h index b12838373b3..6fe779ffb88 100644 --- a/intern/audaspace/FX/AUD_VolumeFactory.h +++ b/intern/audaspace/FX/AUD_VolumeFactory.h @@ -55,7 +55,7 @@ public: * \param factory The input factory. * \param volume The desired volume. */ - AUD_VolumeFactory(AUD_Reference factory, float volume); + AUD_VolumeFactory(boost::shared_ptr factory, float volume); /** * Returns the volume. @@ -63,7 +63,7 @@ public: */ float getVolume() const; - virtual AUD_Reference createReader(); + virtual boost::shared_ptr createReader(); }; #endif //__AUD_VOLUMEFACTORY_H__ -- cgit v1.2.3