--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/srsf/ttscontrollerplugin/src/ttsplugin.cpp Thu Dec 17 08:46:30 2009 +0200
@@ -0,0 +1,867 @@
+/*
+* 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: Implementations for CTtsControllerPlugin methods.
+*
+*/
+
+
+
+// INCLUDE FILES
+#include <e32base.h>
+#include <implementationproxy.h>
+#include <mmfcontrollerframeworkbase.h>
+#include <nssttscustomcommandparser.h>
+#include <mmfaudio.h>
+#include "ttsplugin.h"
+#include "ttspluginbody.h"
+#include "ttspluginimplementationuids.hrh"
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::CTtsControllerPlugin
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CTtsControllerPlugin::CTtsControllerPlugin() : iBody( NULL )
+ {
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::ConstructL()
+ {
+ // Implementation body
+ iBody = CTtsControllerPluginBody::NewL( this );
+
+ CMMFAudioControllerCustomCommandParser* audConParser = CMMFAudioControllerCustomCommandParser::NewL( *this );
+ CleanupStack::PushL( audConParser );
+ // Parser now owned by controller framework
+ AddCustomCommandParserL( *audConParser );
+ CleanupStack::Pop( audConParser );
+
+ CMMFAudioPlayDeviceCustomCommandParser* audPlayDevParser = CMMFAudioPlayDeviceCustomCommandParser::NewL( *this );
+ CleanupStack::PushL( audPlayDevParser );
+ // Parser now owned by controller framework
+ AddCustomCommandParserL( *audPlayDevParser );
+ CleanupStack::Pop();//audPlayDevParser
+
+ CTtsCustomCommandParser* ttsParser = CTtsCustomCommandParser::NewL( *this );
+ CleanupStack::PushL( ttsParser );
+ // Parser now owned by controller framework
+ AddCustomCommandParserL( *ttsParser );
+ CleanupStack::Pop();//ttsParser
+
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CTtsControllerPlugin* CTtsControllerPlugin::NewL()
+ {
+ CTtsControllerPlugin* self = new( ELeave ) CTtsControllerPlugin;
+
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop();
+
+ return self;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::~CTtsControllerPlugin
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+CTtsControllerPlugin::~CTtsControllerPlugin()
+ {
+ if ( iBody != NULL )
+ {
+ delete iBody;
+ }
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::InitializationReady
+//
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::InitializationReady( TInt aError )
+ {
+ TMMFEvent event;
+ event.iEventType = KMMFEventCategoryAudioLoadingComplete;
+ event.iErrorCode = aError;
+
+ DoSendEventToClient( event );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::SynthesisReady
+//
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::SynthesisReady( TInt aError )
+ {
+ TMMFEvent event;
+ event.iEventType = KMMFEventCategoryPlaybackComplete;
+ event.iErrorCode = aError;
+
+ DoSendEventToClient( event );
+ }
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::AddDataSourceL
+// Forwards call to implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::AddDataSourceL( MDataSource& aDataSource )
+ {
+ iBody->AddDataSourceL( aDataSource );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::AddDataSinkL
+// Forwards call to implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::AddDataSinkL( MDataSink& aDataSink )
+ {
+ iBody->AddDataSinkL( aDataSink );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::RemoveDataSourceL
+// Forwards call to implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::RemoveDataSourceL( MDataSource& aDataSource )
+ {
+ iBody->RemoveDataSourceL( aDataSource );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::RemoveDataSinkLn
+// Forwards call to implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::RemoveDataSinkL( MDataSink& aDataSink )
+ {
+ iBody->RemoveDataSinkL( aDataSink );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::ResetL
+// Forwards call to implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::ResetL()
+ {
+ iBody->ResetL();
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::PrimeL
+// ?Forwards call to implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::PrimeL()
+ {
+ iBody->PrimeL();
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::PlayL
+// Forwards call to implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::PlayL()
+ {
+ iBody->PlayL();
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::PauseL
+// Forwards call to implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::PauseL()
+ {
+ iBody->PauseL();
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::StopL
+// Forwards call to implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::StopL()
+ {
+ iBody->StopL();
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::PositionL
+// Forwards call to implementation object.
+// -----------------------------------------------------------------------------
+//
+TTimeIntervalMicroSeconds CTtsControllerPlugin::PositionL() const
+ {
+ return iBody->PositionL();
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::SetPositionL
+// Forwards call to implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::SetPositionL( const TTimeIntervalMicroSeconds& aPosition )
+ {
+ iBody->SetPositionL( aPosition );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::DurationL
+// Forwards call to implementation object.
+// -----------------------------------------------------------------------------
+//
+TTimeIntervalMicroSeconds CTtsControllerPlugin::DurationL() const
+ {
+ return iBody->DurationL();
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::SetPrioritySettings
+// Forwards call to implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::SetPrioritySettings( const TMMFPrioritySettings& aPrioritySettings )
+ {
+ iBody->SetPrioritySettings( aPrioritySettings );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::CustomCommand
+// Forwards call to implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::CustomCommand( TMMFMessage& aMessage )
+ {
+ iBody->CustomCommand( aMessage );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::GetNumberOfMetaDataEntriesL
+// Forwards call to implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::GetNumberOfMetaDataEntriesL( TInt& aNumberOfEntries )
+ {
+ iBody->GetNumberOfMetaDataEntriesL( aNumberOfEntries );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::GetMetaDataEntryL
+// Forwards call to implementation object.
+// -----------------------------------------------------------------------------
+//
+CMMFMetaDataEntry* CTtsControllerPlugin::GetMetaDataEntryL( TInt aIndex )
+ {
+ return iBody->GetMetaDataEntryL( aIndex );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacSetSourceSampleRateL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacSetSourceSampleRateL( TUint aSampleRate )
+ {
+ iBody->MacSetSourceSampleRateL( aSampleRate );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacSetSourceBitRateL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacSetSourceBitRateL( TUint aBitRate )
+ {
+ iBody->MacSetSourceBitRateL( aBitRate );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacSetSourceNumChannelsL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacSetSourceNumChannelsL( TUint aNumChannels )
+ {
+ iBody->MacSetSourceNumChannelsL( aNumChannels );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacSetSourceFormatL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacSetSourceFormatL( TUid aFormatUid )
+ {
+ iBody->MacSetSourceFormatL( aFormatUid );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacSetSourceDataTypeL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacSetSourceDataTypeL( TFourCC aDataType )
+ {
+ iBody->MacSetSourceDataTypeL( aDataType );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacSetSinkSampleRateL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacSetSinkSampleRateL( TUint aSampleRate )
+ {
+ iBody->MacSetSinkSampleRateL( aSampleRate );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacSetSinkBitRateL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacSetSinkBitRateL( TUint aRate )
+ {
+ iBody->MacSetSinkBitRateL( aRate );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacSetSinkNumChannelsL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacSetSinkNumChannelsL( TUint aNumChannels )
+ {
+ iBody->MacSetSinkNumChannelsL( aNumChannels );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacSetSinkFormatL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacSetSinkFormatL( TUid aFormatUid )
+ {
+ iBody->MacSetSinkFormatL( aFormatUid );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacSetSinkDataTypeL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacSetSinkDataTypeL( TFourCC aDataType )
+ {
+ iBody->MacSetSinkDataTypeL( aDataType );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacSetCodecL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacSetCodecL( TFourCC aSourceDataType,
+ TFourCC aSinkDataType )
+ {
+ iBody->MacSetCodecL( aSourceDataType, aSinkDataType );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacGetSourceSampleRateL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacGetSourceSampleRateL( TUint& aRate )
+ {
+ iBody->MacGetSourceSampleRateL( aRate );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacGetSourceBitRateL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacGetSourceBitRateL( TUint& aRate )
+ {
+ iBody->MacGetSourceBitRateL( aRate );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacGetSourceNumChannelsL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacGetSourceNumChannelsL( TUint& aNumChannels )
+ {
+ iBody->MacGetSourceNumChannelsL( aNumChannels );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacGetSourceFormatL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacGetSourceFormatL( TUid& aFormat )
+ {
+ iBody->MacGetSourceFormatL( aFormat );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacGetSourceDataTypeL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacGetSourceDataTypeL( TFourCC& aDataType )
+ {
+ iBody->MacGetSourceDataTypeL( aDataType );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacGetSinkSampleRateL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacGetSinkSampleRateL( TUint& aRate )
+ {
+ iBody->MacGetSinkSampleRateL( aRate );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacGetSinkBitRateL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacGetSinkBitRateL( TUint& aRate )
+ {
+ iBody->MacGetSinkBitRateL( aRate );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacGetSinkNumChannelsL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacGetSinkNumChannelsL( TUint& aNumChannels )
+ {
+ iBody->MacGetSinkNumChannelsL( aNumChannels );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacGetSinkFormatL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacGetSinkFormatL( TUid& aFormat )
+ {
+ iBody->MacGetSinkFormatL( aFormat );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacGetSinkDataTypeL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacGetSinkDataTypeL( TFourCC& aDataType )
+ {
+ iBody->MacGetSinkDataTypeL( aDataType );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacGetSupportedSourceSampleRatesL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacGetSupportedSourceSampleRatesL( RArray<TUint>& aSupportedRates )
+ {
+ iBody->MacGetSupportedSourceSampleRatesL( aSupportedRates );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacGetSupportedSourceBitRatesL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacGetSupportedSourceBitRatesL( RArray<TUint>& aSupportedRates )
+ {
+ iBody->MacGetSupportedSourceBitRatesL( aSupportedRates );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacGetSupportedSourceNumChannelsL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacGetSupportedSourceNumChannelsL( RArray<TUint>& aSupportedChannels )
+ {
+ iBody->MacGetSupportedSourceNumChannelsL( aSupportedChannels );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacGetSupportedSourceDataTypesL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacGetSupportedSourceDataTypesL( RArray<TFourCC>& aSupportedDataTypes )
+ {
+ iBody->MacGetSupportedSourceDataTypesL( aSupportedDataTypes );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacGetSupportedSinkSampleRatesL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacGetSupportedSinkSampleRatesL( RArray<TUint>& aSupportedRates )
+ {
+ iBody->MacGetSupportedSinkSampleRatesL( aSupportedRates );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacGetSupportedSinkBitRatesL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacGetSupportedSinkBitRatesL( RArray<TUint>& aSupportedRates )
+ {
+ iBody->MacGetSupportedSinkBitRatesL( aSupportedRates );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacGetSupportedSinkNumChannelsL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacGetSupportedSinkNumChannelsL( RArray<TUint>& aSupportedChannels )
+ {
+ iBody->MacGetSupportedSinkNumChannelsL( aSupportedChannels );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MacGetSupportedSinkDataTypesL
+// Not supported by TTS controller plugin.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MacGetSupportedSinkDataTypesL( RArray<TFourCC>& aSupportedDataTypes )
+ {
+ iBody->MacGetSupportedSinkDataTypesL( aSupportedDataTypes );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MapdSetVolumeL
+// Forward call to the implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MapdSetVolumeL( TInt aVolume )
+ {
+ iBody->MapdSetVolumeL( aVolume );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MapdGetMaxVolumeL
+// Forward call to the implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MapdGetMaxVolumeL( TInt& aMaxVolume )
+ {
+ iBody->MapdGetMaxVolumeL( aMaxVolume );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MapdGetVolumeL
+// Forward call to the implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MapdGetVolumeL( TInt& aVolume )
+ {
+ iBody->MapdGetVolumeL( aVolume );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MapdSetVolumeRampL
+// Forward call to the implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MapdSetVolumeRampL( const TTimeIntervalMicroSeconds& aRampDuration )
+ {
+ iBody->MapdSetVolumeRampL( aRampDuration );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MapdSetBalanceL
+// Forward call to the implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MapdSetBalanceL( TInt aBalance )
+ {
+ iBody->MapdSetBalanceL( aBalance );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MapdGetBalanceL
+// Forward call to the implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MapdGetBalanceL( TInt& aBalance )
+ {
+ iBody->MapdGetBalanceL( aBalance );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MttscAddStyleL
+// Forward call to the implementation object.
+// -----------------------------------------------------------------------------
+//
+TTtsStyleID CTtsControllerPlugin::MttscAddStyleL( const TTtsStyle& aStyle )
+ {
+ return iBody->MttscAddStyleL( aStyle );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MttscDeleteStyle
+// Forward call to the implementation object.
+// -----------------------------------------------------------------------------
+//
+TInt CTtsControllerPlugin::MttscDeleteStyle( TTtsStyleID aID )
+ {
+ return iBody->MttscDeleteStyle( aID );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MttscGetPositionL
+// Forward call to the implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MttscGetPositionL( TInt& aWordIndex )
+ {
+ iBody->MttscGetPositionL( aWordIndex );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MttscNumberOfStyles
+// Forward call to the implementation object.
+// -----------------------------------------------------------------------------
+//
+TUint16 CTtsControllerPlugin::MttscNumberOfStyles()
+ {
+ return iBody->MttscNumberOfStyles();
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MttscOpenParsedTextL
+// Forward call to the implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MttscOpenParsedTextL( CTtsParsedText& aText )
+ {
+ iBody->MttscOpenParsedTextL( aText );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MttscSetPositionL
+// Forward call to the implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MttscSetPositionL( TInt aWordIndex )
+ {
+ iBody->MttscSetPositionL( aWordIndex );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MttscAddStyleL
+// Forward call to the implementation object.
+// -----------------------------------------------------------------------------
+//
+TTtsStyle& CTtsControllerPlugin::MttscStyleL( TTtsStyleID aStyleID )
+ {
+ return iBody->MttscStyleL( aStyleID );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MttscStyleL
+// Forward call to the implementation object.
+// -----------------------------------------------------------------------------
+//
+TTtsStyle& CTtsControllerPlugin::MttscStyleL( TUint16 aIndex )
+ {
+ return iBody->MttscStyleL( aIndex );
+ }
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MttscSetDefaultStyleL
+// Forward call to the implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MttscSetDefaultStyleL( const TTtsStyle& aStyle )
+ {
+ iBody->MttscSetDefaultStyleL( aStyle );
+ }
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MttscDefaultStyleL
+// Forward call to the implementation object.
+// -----------------------------------------------------------------------------
+//
+TTtsStyle& CTtsControllerPlugin::MttscDefaultStyleL()
+ {
+ return iBody->MttscDefaultStyleL();
+ }
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MttscSetSpeakingRateL
+// Forward call to the implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MttscSetSpeakingRateL( TInt aRate )
+ {
+ iBody->MttscSetSpeakingRateL( aRate );
+ }
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MttscSpeakingRateL
+// Forward call to the implementation object.
+// -----------------------------------------------------------------------------
+//
+TInt CTtsControllerPlugin::MttscSpeakingRateL()
+ {
+ return iBody->MttscSpeakingRateL();
+ }
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MttscGetSupportedLanguagesL
+// Forward call to the implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MttscGetSupportedLanguagesL( RArray<TLanguage>& aLanguages )
+ {
+ return iBody->MttscGetSupportedLanguagesL( aLanguages );
+ }
+
+// -----------------------------------------------------------------------------
+// CTtsControllerPlugin::MttscGetSupportedVoicesL
+// Forward call to the implementation object.
+// -----------------------------------------------------------------------------
+//
+void CTtsControllerPlugin::MttscGetSupportedVoicesL( TLanguage aLanguage,
+ RArray<TTtsStyle>& aVoices )
+ {
+ iBody->MttscGetSupportedVoicesL( aLanguage, aVoices );
+ }
+
+// ========================== OTHER EXPORTED FUNCTIONS =========================
+
+
+/**
+* ImplementationTable
+*/
+const TImplementationProxy ImplementationTable[] =
+ {
+ {{ KTtsImplementationUid }, ( TProxyNewLPtr ) CTtsControllerPlugin::NewL }
+ };
+
+// -----------------------------------------------------------------------------
+// ImplementationGroupProxy
+// Needed for MMF Controller Plugin goodness.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
+ {
+ aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
+ return ImplementationTable;
+ }
+
+// End of File