audiostubs/devsoundextensions_stubs/mmfdevsoundadaptation_stub/src/ToneGenerator.h
branchRCL_3
changeset 44 b5894bb67e73
parent 35 37b610eb7fe3
--- a/audiostubs/devsoundextensions_stubs/mmfdevsoundadaptation_stub/src/ToneGenerator.h	Thu Aug 19 09:36:39 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,438 +0,0 @@
-/*
-* Copyright (c) 2002-2004 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Audio Stubs -
-*
-*/
-
-
-
-#ifndef TONEGENERATOR_H
-#define TONEGENERATOR_H
-
-//  INCLUDES
-#include <e32base.h>
-
-// CONSTANTS
-const TInt KMaxSineTable = 256;
-const TUint KToneBufferSize = 8192;
-// one second in microseconds
-const TInt KOneMillionMicroSeconds = 1000000;
-const TInt KMaxSequenceStack = 6;
-const TInt KBufferLength = 0x1000;
-
-// CLASS DECLARATION
-
-/**
-*  Utility class used by DevSound Adaptation to generage PCM data for playing
-*  back tone on WINSCW Reference Implementation..
-*
-*  @lib MmfDevSoundAdaptation.lib
-*  @since Series 60 3.0
-*/
-class TSineGen
-    {
-    public:
-
-        /**
-        * Sets frequency and amplitude.
-        * @since Series 60 3.0
-        * @param TInt aFrequency Frequency to generate PCM data.
-        * @param TInt aAmplitude Amplitude to generate PCM data.
-        * @return void
-        */
-        void SetFrequency(TInt aFrequency,TInt aAmplitude);
-
-        /**
-        * Returns the next sample.
-        * @since Series 60 3.0
-        * @return TInt Sample.
-        */
-        TInt NextSample();
-
-    private:
-
-        TUint iPosition;
-        TUint iStep;
-        TInt iAmplitude;
-        static const TInt16 SineTable[KMaxSineTable];
-        static const TInt16 IncTable[KMaxSineTable];
-    };
-
-/**
-*  Utility class used by DevSound Adaptation to generage PCM data for playing
-*  back tone on WINSCW Reference Implementation..
-*
-*  @lib MmfDevSoundAdaptation.lib
-*  @since Series 60 3.0
-*/
-class TSineWave
-    {
-    public:
-
-        /**
-        * Generate Sine wave representing tone.
-        * @since Series 60 3.0
-        * @param TInt16* aDest Destination
-        * @param TInt aCount Count
-        * @return void
-        */
-        void Generate(TInt16* aDest,TInt aCount);
-
-        /**
-        * Set frequency amplitude.
-        * @since Series 60 3.0
-        * @param TInt aFrequency Frequency to generate PCM data.
-        * @param TInt aAmplitude Amplitude to generate PCM data.
-        * @return void
-        */
-        void SetFrequency(TInt aFrequency,TInt aAmplitude);
-
-        /**
-        * Set frequency amplitude.
-        * @since Series 60 3.0
-        * @param TInt aFrequency1 Frequency to generate PCM data.
-        * @param TInt aAmplitude1 Amplitude to generate PCM data.
-        * @param TInt aFrequency2 Frequency to generate PCM data.
-        * @param TInt aAmplitude2 Amplitude to generate PCM data.
-        * @return void
-        */
-        void SetFrequency(TInt aFrequency1,TInt aAmplitude1,TInt aFrequency2,TInt aAmplitude2);
-
-    private:
-        TSineGen iGen1;
-        TSineGen iGen2;
-    };
-
-
-/**
-*  Tone synthesis interface
-*  Defines the abstract interface for tone synthesis
-*  Capable of filling buffers with audio data
-*
-*  @lib MmfDevSoundAdaptation.lib
-*  @since Series 60 3.0
-*/
-class MMdaToneSynthesis
-    {
-    public:
-
-        /**
-        * Allocate necessary resources for this kind of synthesis
-        * @since Series 60 3.0
-        * @param TInt aRate Sampling rate.
-        * @param TInt aChannels Mono/Stereo.
-        * @param TInt aRepeats Tone repeats.
-        * @param TInt aSilence Silence duration between repetation.
-        * @param TInt aRampUp Volume ramping duration.
-        * @return void
-        */
-        virtual void Configure(TInt aRate,
-                               TInt aChannels,
-                               TInt aRepeats,
-                               TInt aSilence,
-                               TInt aRampUp)=0;
-
-        /**
-        * Reset generator
-        * @since Series 60 3.0
-        * @return void
-        */
-        virtual void Reset()=0;
-
-        /**
-        * Fill supplied buffer with next block of 16bit PCM audio data
-        * @since Series 60 3.0
-        * @param TDes8& aBuffer A descriptor reference to buffer where data need
-        *        to be filled.
-        * @return KErrNone if successfull, else corresponding error code
-        */
-        virtual TInt FillBuffer(TDes8& aBuffer)=0;
-    };
-
-
-/**
-*  Tone generator base class
-*
-*  @lib MmfDevSoundAdaptation.lib
-*  @since Series 60 3.0
-*/
-class TMdaToneGenerator : public MMdaToneSynthesis
-    {
-    public:
-
-        /**
-        * Configures Tone generator.
-        * @since Series 60 3.0
-        * @param TInt aRate Sampling rate.
-        * @param TInt aChannels Mono/Stereo.
-        * @param TInt aRepeats Tone repeats.
-        * @param TInt aSilence Silence duration between repetation.
-        * @param TInt aRampUp Volume ramping duration.
-        * @return void
-        */
-        virtual void Configure(TInt aRate,
-                               TInt aChannels,
-                               TInt aRepeats,
-                               TInt aSilence,
-                               TInt aRampUp);
-
-        /**
-        * Fill supplied buffer with next block of 16bit PCM audio data
-        * @since Series 60 3.0
-        * @param TDes8& aBuffer A descriptor reference to buffer where data need
-        *        to be filled.
-        * @return KErrNone if successfull, else corresponding error code
-        */
-        virtual TInt FillBuffer(TDes8& aBuffer);
-
-    protected:
-
-        /**
-        * Gets the next tone buffer
-        * @since Series 60 3.0
-        * @return KErrNone if successfull, else corresponding error code
-        */
-        virtual TInt GetNextTone()=0;
-
-        /**
-        * Converts duration to PCM samples.
-        * @since Series 60 3.0
-        * @param const TTimeIntervalMicroSeconds& aDuration Duration.
-        * @return KErrNone if successfull, else corresponding error code
-        */
-        TInt DurationToSamples(const TTimeIntervalMicroSeconds& aDuration);
-
-    protected:
-        TSineWave iSineWave;
-        TInt iRate;
-        TInt iChannels;
-        TInt iSamplesLeft;
-        TInt iTrailingSilence;
-        TBool iRampUp;
-        TBool iRampDown;
-        TInt iRepeats;
-        TInt iSilenceBetweenRepeats;
-        TBool iAfterRepeatSilence;
-        TInt iRampUpCount;
-        TInt iRampUpLeft;
-    };
-
-
-/**
-*  Simple tone synthesis
-*
-*  @lib MmfDevSoundAdaptation.lib
-*  @since Series 60 3.0
-*/
-class TMdaSimpleToneGenerator : public TMdaToneGenerator
-    {
-    public:
-
-        /**
-        * Sets frequency and duration for generating PCM data.
-        * @since Series 60 3.0
-        * @param TInt aFrequency Frequency of tone to be generated.
-        * @param const TTimeIntervalMicroSeconds& aDuration Duration of tone to
-        *        be generated.
-        * @return void
-        */
-        void SetFrequencyAndDuration(TInt aFrequency,
-                                     const TTimeIntervalMicroSeconds& aDuration);
-
-        /**
-        * Reset generator
-        * @since Series 60 3.0
-        * @return void
-        */
-        virtual void Reset();
-
-        /**
-        * Gets the next tone buffer
-        * @since Series 60 3.0
-        * @return KErrNone if successfull, else corresponding error code
-        */
-        virtual TInt GetNextTone();
-
-    private:
-        TTimeIntervalMicroSeconds iDuration;
-        TInt iFrequency;
-        TBool iPlayed;
-    };
-
-/**
-*  Dual tone synthesis
-*  Generates a tone consisting of two sine waves of different
-*  frequencies summed together.
-*
-*  @lib MmfDevSoundAdaptation.lib
-*  @since Series 60 3.0
-*/
-class TMdaDualToneGenerator : public TMdaToneGenerator
-    {
-    public:
-
-        /**
-        * ?member_description.
-        * @since Series 60 3.0
-        * @param ?arg1
-        */
-        void SetFrequencyAndDuration(TInt aFrequencyOne,
-                                     TInt aFrequencyTwo,
-                                     const TTimeIntervalMicroSeconds& aDuration);
-
-        /**
-        * Reset generator
-        * @since Series 60 3.0
-        * @return void
-        */
-        virtual void Reset();
-
-        /**
-        * Gets the next tone buffer
-        * @since Series 60 3.0
-        * @return KErrNone if successfull, else corresponding error code
-        */
-        virtual TInt GetNextTone();
-
-    private:
-        TTimeIntervalMicroSeconds iDuration;
-        TInt iFrequencyOne;
-        TInt iFrequencyTwo;
-        TBool iPlayed;
-    };
-
-/**
-*  DTMF tone synthesis
-*  ?other_description_lines
-*
-*  @lib MmfDevSoundAdaptation.lib
-*  @since Series 60 3.0
-*/
-class TMdaDTMFGenerator : public TMdaToneGenerator
-    {
-    public:
-
-        /**
-        * Reset generator
-        * @since Series 60 3.0
-        * @return void
-        */
-        virtual void Reset();
-
-        /**
-        * ?member_description.
-        * @since Series 60 3.0
-        * @param ?arg1
-        */
-        void SetToneDurations(  const TTimeIntervalMicroSeconds32 aOn,
-                                const TTimeIntervalMicroSeconds32 aOff,
-                                const TTimeIntervalMicroSeconds32 aPause);
-
-        /**
-        * ?member_description.
-        * @since Series 60 3.0
-        * @param ?arg1
-        */
-        void SetString(const TDesC& aDTMFString);
-
-    private:
-
-        /**
-        * Gets the next tone buffer
-        * @since Series 60 3.0
-        * @return KErrNone if successfull, else corresponding error code
-        */
-        virtual TInt GetNextTone();
-
-    private:
-        const TDesC* iDTMFString;
-        TTimeIntervalMicroSeconds32 iOn;
-        TTimeIntervalMicroSeconds32 iOff;
-        TTimeIntervalMicroSeconds32 iPause;
-        TInt iOnSamples;
-        TInt iOffSamples;
-        TInt iPauseSamples;
-        TInt iChar;
-        TBool iPlayToneOff;
-    };
-
-/**
-*  Tone sequence synthesis
-*  ?other_description_lines
-*
-*  @lib MmfDevSoundAdaptation.lib
-*  @since Series 60 3.0
-*/
-class TMdaSequenceGenerator : public TMdaToneGenerator
-    {
-    public:
-
-        /**
-        * Reset generator
-        * @since Series 60 3.0
-        * @return void
-        */
-        virtual void Reset();
-
-        /**
-        * ?member_description.
-        * @since Series 60 3.0
-        * @param ?arg1
-        */
-        void SetSequenceData(const TDesC8& aSequenceData);
-
-    private:
-
-        /**
-        * Gets the next tone buffer
-        * @since Series 60 3.0
-        * @return KErrNone if successfull, else corresponding error code
-        */
-        virtual TInt GetNextTone();
-
-    private:
-        const TDesC8* iSequenceData;
-        const TInt16* iInstructionPtr;
-        const TInt16* iLastInstruction;
-        TInt iStack[KMaxSequenceStack];
-        TInt iStackIndex;
-    };
-
-
-/**
-*  Public Media Server includes
-*  ?other_description_lines
-*
-*  @lib MmfDevSoundAdaptation.lib
-*  @since Series 60 3.0
-*/
-class TMdaPtr8 : public TPtr8 //needed for this WINS Impl of Tone Gen
-    {
-    public:
-        TMdaPtr8()
-            : TPtr8(0,0,0) {};
-        inline void Set(const TDes8& aDes)
-            { TPtr8::Set((TUint8*)(aDes.Ptr()),aDes.Length(),aDes.MaxLength()); };
-        inline void SetLengthOnly(const TDes8& aDes)
-            { TPtr8::Set((TUint8*)(aDes.Ptr()),aDes.Length(),aDes.Length()); };
-        inline void Set(const TPtrC8& aDes)
-            { TPtr8::Set((TUint8*)(aDes.Ptr()),aDes.Length(),aDes.Length()); };
-        inline void Shift(TInt aOffset)
-            { SetLength(Length()-aOffset); iMaxLength-=aOffset; iPtr+=aOffset; };
-    };
-
-#endif      // TONEGENERATOR_H
-
-// End of File
-