--- a/srsf/ttscontrollerplugin/src/ttspluginbody.h Mon Jan 18 20:20:30 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,857 +0,0 @@
-/*
-* Copyright (c) 2004-2007 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: Class CTtsControllerPluginBody
-*
-*/
-
-
-
-#ifndef TTSPLUGINBODY_H
-#define TTSPLUGINBODY_H
-
-// INCLUDES
-#include <mmfcontroller.h>
-#include <nssdevtts.h>
-
-// FORWARD DECLARATIONS
-class CTtsControllerPlugin;
-class CTTSDataLoader;
-
-// CLASS DECLARATION
-
-/**
-* Implementation class for Tts controller plugin.
-*
-* @lib TtsPlugin.lib
-* @since 2.8
-*/
-class CTtsControllerPluginBody : public CActive, public MDevTTSObserver
- {
- public: // Constructors and destructor
-
- /**
- * Two-phased constructor.
- */
- static CTtsControllerPluginBody* NewL( CTtsControllerPlugin* aObserver );
-
- /**
- * Destructor.
- */
- virtual ~CTtsControllerPluginBody();
-
- public: // New functions
-
- /**
- * Add a data source to the controller plugin.
- *
- * @param "aDataSource" "A reference to the data source to be added.
- * The controller plugin may call <code>aDataSource.DataSourceType()
- * <\code> to find out exactly what type of source it is."
- * @leave "" "The controller plugin may leave during this method.
- * If the controller plugin does not support the data source, it
- * should leave with <code>KErrNotSupported<\code>.
- */
- void AddDataSourceL( MDataSource& aDataSource );
-
- /**
- * Add a data sink to the controller plugin.
- *
- * @param "aDatasink" "A reference to the data sink to be added.
- * The controller plugin may call <code>aDatasink.DatasinkType()
- * <\code> to find out exactly what type of sink it is."
- * @leave "" "The controller plugin may leave during this method.
- * If the controller plugin does not support the data sink, it
- * should leave with <code>KErrNotSupported<\code>.
- */
- void AddDataSinkL( MDataSink& aDataSink );
-
- /**
- * Remove a data source from the controller plugin.
- *
- * @param "aDataSource" A reference to the data source to be removed.
- * @leave "" "The controller plugin may leave during this method.
- * If the controller plugin does not support the removal of data
- * sources, it should leave with <code>KErrNotSupported<\code>.
- * If the controller plugin leaves, the data source will not be
- * destroyed by the controller framework. If it does not leave,
- * the data source will be destroyed.
- */
- void RemoveDataSourceL( MDataSource& aDataSource );
-
- /**
- * Remove a data sink from the controller plugin.
- *
- * @param "aDatasink" A reference to the data sink to be removed.
- * @leave "" "The controller plugin may leave during this method.
- * If the controller plugin does not support the removal of data sinks,
- * it should leave with <code>KErrNotSupported<\code>. If the
- * controller plugin leaves, the data sink will not be destroyed by
- * the controller framework. If it does not leave, the data sink
- * will be destroyed.
- */
- void RemoveDataSinkL( MDataSink& aDataSink );
-
- /**
- * Reset the controller plugin.
- *
- * The controller should revert back to its newly constructed state. If
- * the Reset is successful (i.e. it doesn't leave), the controller
- * framework will delete all objects added to the MMFObjectManager
- * including any sources and sinks.
- *
- * @leave "" "The controller plugin may leave during this method.
- * If the controller plugin does not support being reset,
- * it should leave with <code>KErrNotSupported<\code>."
- */
- void ResetL();
-
- /**
- * Prime the controller plugin.
- *
- * The controller must prepare to start playing, by initialising its
- * sources, sinks and buffers. This moves the controller from the
- * STOPPED to the PRIMED state.
- *
- * @leave "" "The controller plugin may leave during this method with
- * any of the standard system-wide error codes."
- */
- void PrimeL();
-
- /**
- * Commence playback.
- *
- * The controller must now begin transferring data from its source(s)
- * to its sink(s). This moves the controller from the PRIMED to the
- * PLAYING state.
- *
- * Note: this method must return once playing has commenced, and not
- * wait until playing is complete.
- *
- * @leave "" "The controller plugin may leave during this method with
- * any of the standard system-wide error codes."
- */
- void PlayL();
-
- /**
- * Pause the controller plugin.
- *
- * The controller must now cease transferring data from its source(s)
- * to its sink(s). This moves the controller from the PLAYING back to
- * the PRIMED state.
- *
- * A subsequent call to <code>Play()<\code> will cause the controller
- * plugin to resume playback from the point it was paused (unless
- * there has been a call to <code>SetPosition()<\code> in the meantime.
- *
- * @leave "" "The controller plugin may leave during this method with
- * any of the standard system-wide error codes."
- */
- void PauseL();
-
- /**
- * Stop the controller plugin.
- *
- * The controller must now undo anything that occurred during the call
- * to <code>Prime()<\code>. This moves the controller from the PRIMED
- * back to the STOPPED state.
- *
- * @leave "" "The controller plugin may leave during this method with
- * any of the standard system-wide error codes."
- */
- void StopL();
-
- /**
- * Get the current position.
- *
- * The controller plugin should calculate the current position in microseconds.
- *
- * @return "The current position in microseconds."
- * @leave "" "The controller plugin may leave during this method with
- * any of the standard system-wide error codes."
- */
- TTimeIntervalMicroSeconds PositionL() const;
-
- /**
- * Set the current position.
- *
- * The controller plugin should reposition itself to the position provided.
- *
- * @param "The desired position in microseconds."
- * @leave "" "The controller plugin may leave during this method with
- * any of the standard system-wide error codes."
- */
- void SetPositionL( const TTimeIntervalMicroSeconds& aPosition );
-
- /**
- * Get the duration of the clip.
- *
- * The controller plugin should calculate the clip duration in microseconds.
- *
- * @return "The clip duration in microseconds."
- * @leave "" "The controller plugin may leave during this method with
- * any of the standard system-wide error codes."
- */
- TTimeIntervalMicroSeconds DurationL() const;
-
- /**
- * Set the priority settings.
- *
- * The new priority settings must be applied to any resource being used
- * by the controller plugin that requires priority settings (for example
- * the sound device).
- *
- * @param "aPrioritySettings" "The new priority settings"
- */
- void SetPrioritySettings( const TMMFPrioritySettings& aPrioritySettings );
-
- /**
- * Handle a custom command.
- *
- * Custom commands allow a controller plugin to define its own API.
- * If the controller framework does not understand a message from the
- * client, it is assumed this is a custom command for the plugin and
- * passed into this interface.
- *
- * The more common custom commands can be handled by Custom Command
- * Parsers on behalf of the controller plugin. This allows the
- * controller plugin to implement a concrete interface (defined by
- * mixin classes) rather than having to decode the command itself.
- * For more information, @see CMMFCustomCommandParserBase.
- *
- * The controller plugin must always complete the message passed
- * into this method, even if it does not support the interface
- * required by the message.
- *
- * @param "aMessage" "The message to be handled by the controller plugin."
- */
- void CustomCommand( TMMFMessage& aMessage );
-
- /**
- * Retrieve the number of meta data entries in the clip.
- *
- * @param "aNumberOfEntries" "The controller plugin must set this to
- * the number of meta data entries in the clip."
- *
- * @leave "" "The controller plugin may leave during this method with
- * any of the standard system-wide error codes."
- */
- void GetNumberOfMetaDataEntriesL( TInt& aNumberOfEntries );
-
- /**
- * Retrieve a meta data entry from the clip.
- *
- * @param "aIndex" "The index of the meta data entry to retrieve."
- * @return "A pointer to a newly created CMMFMetaDataEntry object
- * containing the meta information. The controller framework
- * will take ownership of the object when this method returns."
- * @leave "" "The controller plugin may leave during this method with
- * any of the standard system-wide error codes."
- */
- CMMFMetaDataEntry* GetMetaDataEntryL( TInt aIndex );
-
-
- public: // MMMFAudioControllerCustomCommandImplementor
-
- /**
- Set the sample rate of the data source in samples per second.
- @param "aSampleRate" "The sample rate, in samples per second."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacSetSourceSampleRateL(TUint aSampleRate);
-
- /**
- Set the bit rate of the data source in bits per second.
- @param "aSampleRate" "The bit rate, in bits per second."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacSetSourceBitRateL(TUint aBitRate);
-
- /**
- Set the number of channels in the data source.
- For example, one channel for mono, two channels for stereo etc.
- @param "aNumChannels" "The number of channels."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacSetSourceNumChannelsL(TUint aNumChannels);
-
- /**
- Set the format of the data source.
- The UID corresponds to the uid of the CMMFFormat-derived ECOM plugin to be used.
- @param "aFormatUid" "The format plugin to be used."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacSetSourceFormatL(TUid aFormatUid);
-
- /**
- Set the fourCC code of the source.
- @param "aDataType" "The fourCC code."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacSetSourceDataTypeL(TFourCC aDataType);
-
- /**
- Set the sample rate of the data sink in samples per second.
- @param "aSampleRate" "The sample rate, in samples per second."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacSetSinkSampleRateL(TUint aSampleRate);
-
- /**
- Set the bit rate of the data sink in bits per second.
- @param "aSampleRate" "The bit rate, in bits per second."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacSetSinkBitRateL(TUint aRate);
-
- /**
- Set the number of channels in the data sink.
- For example, one channel for mono, two channels for stereo etc.
- @param "aNumChannels" "The number of channels."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacSetSinkNumChannelsL(TUint aNumChannels);
-
- /**
- Set the format of the data sink.
- The UID corresponds to the uid of the CMMFFormat-derived ECOM plugin to be used.
- @param "aFormatUid" "The format plugin to be used."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacSetSinkFormatL(TUid aFormatUid);
-
- /**
- Set the fourCC code of the sink.
- @param "aDataType" "The fourCC code."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacSetSinkDataTypeL(TFourCC aDataType);
-
- /**
- Set the codec to be used. Useful when recording data.
- @param "aSourceDataType" "The data type of the source of the codec."
- @param "aSinkDataType" "The data type of the sink of the codec."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacSetCodecL(TFourCC aSourceDataType, TFourCC aSinkDataType);
-
-
- /**
- Get the sample rate of the data source in samples per second.
- @param "aRate" "The sample rate, in samples per second."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacGetSourceSampleRateL(TUint& aRate);
-
- /**
- Get the bit rate of the data source in bits per second.
- @param "aRate" "The bit rate, in bits per second."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacGetSourceBitRateL(TUint& aRate);
-
- /**
- Get the number of channels in the data source.
- For example, one channel for mono, two channels for stereo etc.
- @param "aNumChannels" "The number of channels."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacGetSourceNumChannelsL(TUint& aNumChannels);
-
- /**
- Get the format of the data source.
- The UID corresponds to the uid of the CMMFFormat-derived ECOM plugin being used.
- @param "aFormatUid" "The format plugin being used."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacGetSourceFormatL(TUid& aFormat);
-
- /**
- Get the fourCC code of the source.
- @param "aDataType" "The fourCC code."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacGetSourceDataTypeL(TFourCC& aDataType);
-
- /**
- Get the sample rate of the data sink in samples per second.
- @param "aRate" "The sample rate, in samples per second."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacGetSinkSampleRateL(TUint& aRate);
-
- /**
- Get the bit rate of the data sink in bits per second.
- @param "aRate" "The bit rate, in bits per second."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacGetSinkBitRateL(TUint& aRate);
-
- /**
- Get the number of channels in the data sink.
- For example, one channel for mono, two channels for stereo etc.
- @param "aNumChannels" "The number of channels."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacGetSinkNumChannelsL(TUint& aNumChannels);
-
- /**
- Get the format of the data sink.
- The UID corresponds to the uid of the CMMFFormat-derived ECOM plugin being used.
- @param "aFormatUid" "The format plugin being used."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacGetSinkFormatL(TUid& aFormat);
-
- /**
- Get the fourCC code of the sink.
- @param "aDataType" "The fourCC code."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacGetSinkDataTypeL(TFourCC& aDataType);
-
-
- /**
- Get the list of sample rates supported by the data source.
- @param "aSupportedRates" "The supported rates. Warning: Existing objects in this array will be removed by this method."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacGetSupportedSourceSampleRatesL(RArray<TUint>& aSupportedRates);
-
- /**
- Get the list of bit rates supported by the data source.
- @param "aSupportedRates" "The supported rates. Warning: Existing objects in this array will be removed by this method."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacGetSupportedSourceBitRatesL(RArray<TUint>& aSupportedRates);
-
- /**
- Get the list of channels supported by the data source L(ie mono, stereo etc).
- @param "aSupportedChannels" "The supported channels. Warning: Existing objects in this array will be removed by this method."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacGetSupportedSourceNumChannelsL(RArray<TUint>& aSupportedChannels);
-
- /**
- Get the list of fourCC codes supported by the data source.
- @param "aSupportedDataTypes" "The supported data types. Warning: Existing objects in this array will be removed by this method."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacGetSupportedSourceDataTypesL(RArray<TFourCC>& aSupportedDataTypes);
-
- /**
- Get the list of sample rates supported by the data sink.
- @param "aSupportedRates" "The supported rates. Warning: Existing objects in this array will be removed by this method."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacGetSupportedSinkSampleRatesL(RArray<TUint>& aSupportedRates);
-
- /**
- Get the list of bit rates supported by the data sink.
- @param "aSupportedRates" "The supported rates. Warning: Existing objects in this array will be removed by this method."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacGetSupportedSinkBitRatesL(RArray<TUint>& aSupportedRates);
-
- /**
- Get the list of channels supported by the data sink L(ie mono, stereo etc).
- @param "aSupportedChannels" "The supported channels. Warning: Existing objects in this array will be removed by this method."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacGetSupportedSinkNumChannelsL(RArray<TUint>& aSupportedChannels);
-
- /**
- Get the list of fourCC codes supported by the data sink.
- @param "aSupportedDataTypes" "The supported data types. Warning: Existing objects in this array will be removed by this method."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MacGetSupportedSinkDataTypesL(RArray<TFourCC>& aSupportedDataTypes);
-
-
- public: // From MMMFAudioPlayDeviceCustomCommandImplementor
-
- /**
- Set the volume of the sound device.
- @param "aVolume" "The new volume"
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MapdSetVolumeL(TInt aVolume);
-
- /**
- Get the maximum volume supported by the sound device.
- @param "aMaxVolume" "The maximum volume, to be filled in by the controller plugin."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MapdGetMaxVolumeL(TInt& aMaxVolume);
-
- /**
- Get the current playback volume.
- @param "aVolume" "The volume, to be filled in by the controller."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MapdGetVolumeL(TInt& aVolume);
-
- /**
- * Set a volume ramp.
- *
- * This will cause the sound device to start playing with zero volume,
- * increasing the volume over aRampDuration microseconds.
- *
- * The volume ramp can be removed by setting the ramp duration to zero.
- *
- * @param "aRampDuration" "The duration over which the volume is to be
- * increased, in microseconds."
- * @leave "This function can leave with one of the system-wide error codes.
- * The request will be completed with the leave code."
- */
- virtual void MapdSetVolumeRampL( const TTimeIntervalMicroSeconds& aRampDuration );
-
- /**
- Set the balance between the left and right stereo audio channels.
-
- @param "aBalance" "Use a value between <code>KMMFBalanceMaxLeft<\code> and
- <code>KMMFBalanceMaxRight<\code>. Centre balance can be restored by using
- <code>KMMFBalanceCenter<\code>."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MapdSetBalanceL(TInt aBalance);
-
- /**
- Retrieve the balance between the left and right stereo audio channels.
-
- @param "aBalance" "The current balance, filled in by the controller."
- @leave "This function can leave with one of the system-wide error codes. The request will be
- completed with the leave code."
- @since 7.0s
- */
- virtual void MapdGetBalanceL(TInt& aBalance);
-
- public: // Functions from MTtsCustomCommandImplementor
-
- /**
- * Adds a new style.
- *
- * @param "TTtsStyle& aStyle" Style to add.
- * @return Style identifier.
- */
- TTtsStyleID MttscAddStyleL( const TTtsStyle& aStyle );
-
- /**
- * Deletes a style based on style ID.
- *
- * @param "TTtsStyleID aID" Style ID to be deleted.
- * @return Error code.
- */
- TInt MttscDeleteStyle( TTtsStyleID aID );
-
- /**
- * Gets the synthesis position.
- *
- * @retval "TInt& aWordIndex" Returned position of synthesis.
- */
- void MttscGetPositionL( TInt& aWordIndex );
-
- /**
- * Returns the number of registered styles.
- *
- * @return Number of styles.
- */
- TUint16 MttscNumberOfStyles();
-
- /**
- * Opens parsed text as source.
- *
- * @param "CTtsParsedText& aText" Reference to parsed text.
- */
- void MttscOpenParsedTextL( CTtsParsedText& aText );
-
- /**
- * Sets the synthesis position based on word index.
- *
- * @param "TInt aWordIndex" Word index.
- */
- void MttscSetPositionL( TInt aWordIndex );
-
- /**
- * Returns the style based on ID.
- *
- * @param "TTtsStyleID aStyleID" Style ID.
- * @return Reference to style object.
- */
- TTtsStyle& MttscStyleL( TTtsStyleID aStyleID );
-
- /**
- * Returns the style based on index.
- *
- * @param "TUint16 aIndex" Style index.
- * @return Reference to style object.
- */
- TTtsStyle& MttscStyleL( TUint16 aIndex );
-
- /**
- * Sets the default style parameters for synthesis.
- *
- * @param "const TTtsStyle& aStyle" Style created by the client
- */
- void MttscSetDefaultStyleL( const TTtsStyle& aStyle );
-
- /**
- * Returns the registered default style
- *
- * @return Style reference
- * @leave KErrNotReady if no plugin is loaded to handle the function call
- */
- TTtsStyle& MttscDefaultStyleL();
-
- /**
- * Sets the speaking rate of synthesizer.
- *
- * @param TInt aRate Speaking rate value
- * @leave KErrNotSupported if synthesizer does not support speaking rate setting
- */
- void MttscSetSpeakingRateL( TInt aRate );
-
- /**
- * Returns the current speaking rate value.
- *
- * @return Speaking rate value
- * @leave KErrNotSupported if synthesizer does not support speaking rate setting
- * @leave KErrNotReady if no plugin is loaded to handle the function call
- */
- TInt MttscSpeakingRateL();
-
- /**
- * Returns the list of supported languages.
- *
- * @param "RArray<TLanguage>& aLanguages" Output parameter which contains
- * the languages
- * @leave KErrNotReady if no plugin is loaded to handle the function call
- */
- void MttscGetSupportedLanguagesL( RArray<TLanguage>& aLanguages );
-
- /**
- * Returns the list of supported voices for a certain language.
- *
- * @param "TLanguage aLanguage" Language
- * @param "RArray<TTtsStyle>& aVoices" Output parameter which contains the voices
- * @leave KErrNotReady if no plugin is loaded to handle the function call
- */
- void MttscGetSupportedVoicesL( TLanguage aLanguage, RArray<TTtsStyle>& aVoices );
-
- public: // Functions from MDevTTSObserver
-
- /**
- * Invoked by DevTTS when it needs a configuration data package.
- * TODO: Add start and endpoint parameters.
- *
- * @param "TUint32 aPackageType"
- * Packege type identifier
- * @param "TUint32 aPackageID"
- * Package identifier
- *
- * @return Pointer to created data buffer. NULL if failure. User must
- * take care of the buffer deletion after usage.
- */
- HBufC8* MdtoConfigurationData( TUint32 aPackageType,
- TUint32 aPackageID,
- TUint32 aStartPosition,
- TUint32 aEndPosition );
-
- /**
- * Called by DevTTS when an event occured. EDevTTSEventComplete is the only
- * event that can happen currently.
- *
- * @param "TDevTTSEvent aEvent"
- * Event code
- * @param "TInt aStatus"
- * Error code. KErrNone if success, one of the system level
- * error codes otherwise.
- */
- void MdtoEvent( TDevTTSEvent aEvent, TInt aStatus );
-
- /**
- * Called by DevTTS device when output mode is EDevTTSClientMode and a
- * new audio buffer has been filled by the synthesizer.
- *
- * @param "TDesC8& aBuffer"
- * Synthesized audio buffer.
- */
- void MdtoProcessBuffer( const TDesC8& aBuffer );
-
- protected:
- /**
- * CActive::RunL
- */
- void RunL();
-
- /**
- * CActive::DoCancel()
- */
- void DoCancel();
-
- /**
- * Handles play asynchrnously
- */
- void HandlePlay();
-
- /**
- * Activates this active object.
- */
- void Ready();
-
- private:
-
- /**
- * C++ default constructor.
- */
- CTtsControllerPluginBody( CTtsControllerPlugin* aObserver );
-
- /**
- * By default Symbian 2nd phase constructor is private.
- */
- void ConstructL();
-
- // Prohibit copy constructor.
- CTtsControllerPluginBody( const CTtsControllerPluginBody& );
- // Prohibit assigment operator.
- CTtsControllerPluginBody& operator=( const CTtsControllerPluginBody& );
-
- /**
- * Copies descriptor to parsed text with default style.
- */
- void ConstructParsedTextL( TDes8& aBufferPtr );
-
- /**
- * Copies parsed text structure to iParsedTextPointer.
- * Deletes previous if exists
- */
- void CopyParsedTextL( CTtsParsedText& aText );
-
- /**
- * Does priming from AddDataSource
- */
- void DoEarlyPrimingL();
-
- private: // Data
-
- // TTP data loader, owned
- CTTSDataLoader* iTtsLoader;
-
- // Pointer to the DevTTS, owned
- CDevTTS* iDevTts;
-
- // Pointer to 'opened' parsed text object, owned
- CTtsParsedText* iParsedTextPointer;
-
- // Observer, not owned.
- CTtsControllerPlugin* iObserver;
-
- // Requested asynchronous function.
- TInt iRequestFunction;
-
- // Default style which will be used if no OpenParsedText is used
- TTtsStyle iDefaultStyle;
-
- // Style ID of default style
- TTtsStyleID iDefaultStyleID;
-
- // Tells if priming has been done already in AddDataSource
- TBool iEarlyPrimingDone;
-
- // ETrue if MttscSetDefaultStyleL() called
- TBool iUserSpecifiedDefaultStyle;
-
- // Output is currently either file or loudspeaker
- TDevTTSOutputMode iTtsOutputMode;
-
- // File server session
- RFs iFs;
-
- // Handle to the output file, not owned.
- RFile* iOutputFile;
-
- // Drive number (according TDriveNumber) where file handle is pointing
- TInt iOutFileDriveNumber;
-
- };
-
-#endif // TTSPLUGINBODY_H
-
-// End of File
-