--- a/srsf/speechsynthesis/server/inc/speechsynthesisserver.h Thu Aug 19 09:56:14 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,336 +0,0 @@
-/*
-* Copyright (c) 2006-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: Speech synthesis server
-*
-*/
-
-
-#ifndef SPEECHSYNTHESISSERVER_H
-#define SPEECHSYNTHESISSERVER_H
-
-// INCLUDES
-
-#include <e32base.h>
-#include <nssttsutility.h>
-#include <speechsynthesis.h>
-
-#include "speechsynthesisclientserver.h"
-#include "speechsynthesisserverutilities.h"
-
-
-// DEFINITION OF SERVER POLICY
-
-// Total number of ranges
-const TUint KSpeechSynthesisRangeCount = 4;
-
-// Definition of the ranges of IPC numbers
-const TInt KSpeechSynthesisRanges[KSpeechSynthesisRangeCount] =
- {
- 0, // Messages 0..19
- ESetAudioPriority, // Message 20
- ESetAudioOutput, // Message 21
- ESetAudioOutput+1 // Messages 22..
- };
-
-// Policy to implement for the above range
-const TUint8 KSpeechSynthesisElementsIndex[KSpeechSynthesisRangeCount] =
- {
- CPolicyServer::EAlwaysPass, // Applies to 0th range
- 0, // Applies to 1st range
- CPolicyServer::ECustomCheck, // Applies to 2nd range
- CPolicyServer::EAlwaysPass, // Applies to 3rd range
- };
-
-// Specific capability checks
-const CPolicyServer::TPolicyElement KSpeechSynthesisElements[] =
- {
- // Only clients having Nokia VID capability passes this policy element.
- { _INIT_SECURITY_POLICY_V0( VID_DEFAULT ), CPolicyServer::EFailClient },
- };
-
-// Package all the above together into a policy
-const CPolicyServer::TPolicy KSpeechSynthesisPolicy =
- {
- CPolicyServer::EAlwaysPass, // Specifies all connect attempts should pass
- KSpeechSynthesisRangeCount, // Number of ranges
- KSpeechSynthesisRanges, // Ranges array
- KSpeechSynthesisElementsIndex, // Elements<->ranges index
- KSpeechSynthesisElements, // Array of elements
- };
-
-
-// ----------------------------------------------------------------------------
-// CSpeechSynthesisServer
-// Server implementation
-// ----------------------------------------------------------------------------
-class CSpeechSynthesisServer : public CPolicyServer,
- public MConfigurationObserver,
- public MTtsClientUtilityObserver
- {
-
- public: // New functions
-
- /**
- * 2nd phase constructor
- */
- static CServer2* NewLC();
-
- /**
- * Destructor
- */
- virtual ~CSpeechSynthesisServer();
-
- /**
- * Add new sessios
- */
- void AddSession();
-
- /**
- * Remove session
- */
- void DropSession();
-
- /**
- * Reserve server for aSession
- */
- void ReserveL( MSpeechSynthesisServerObserver* aSession );
- void ReserveL( MSpeechSynthesisServerObserver* aSession, TInt aPriority );
-
- /**
- * Release server to be used by other sessions
- */
- void Release( const MSpeechSynthesisServerObserver* aSession );
-
- /**
- * Used to ask server's default settings
- */
- void GetDefaultSettingsL( TVoice& aVoice,
- TInt& aSpeakingRate, TInt& aMaxSpeakingRate,
- TInt& aVolume, TInt& aMaxVolume,
- TInt& aAudioPriority, TInt& aAudioPreference,
- TInt& aAudioOutput );
-
- /**
- * Used to ask server's default voice
- */
- void GetDefaultVoiceL( TVoice& aVoice );
-
- /**
- * Prime the synthesizer
- *
- * @param aText Text to be synthesized
- *
- */
- void PrimeL( const TDesC& aText );
-
- /**
- * Prime the synthesizer
- *
- * @param aText Text to be synthesized
- * @param aFile Open handle to file
- *
- */
- void PrimeL( const TDesC& aText, const RFile& aFile );
-
- /**
- * Synthesize text
- */
- void Synthesize();
-
- /**
- * Stop synthesis
- */
- void Stop();
-
- /**
- * Pause synthesis
- */
- void Pause();
-
- /**
- * Get available languages
- *
- * @param aLanguages Contains supported languages after function call
- */
- void GetSupportedLanguagesL( RArray<TLanguage>& aLanguages );
-
- /**
- * Get available voices
- *
- * @param aLanguage Language
- * @param aVoices Contains voices after the function call
- */
- void GetSupportedVoicesL( TLanguage aLanguage, RArray<TVoice>& aVoices );
-
- /**
- * Change voice.
- *
- * @param aVoice New voice
- * @param aSpeakingRate Speaking rate to be used
- */
- void SetVoiceL( const TVoice aVoice, TInt aSpeakingRate );
-
- /**
- * Change volume.
- *
- * @param aVolume New volume
- */
- void SetVolume( TInt aVolume );
-
- /**
- * Set audio priority
- *
- * @param aPriority New priority
- * @param aPreference New preference
- */
- void SetAudioPriorityL( TInt aPriority, TInt aPreference );
-
- /**
- * Set audio output
- */
- void SetAudioOutputL( TInt aAudioOutput );
-
- /**
- * Custom command
- *
- * @param aCommand A custom command
- * @param aValue Value
- * @return Error code
- */
- TInt CustomCommand( TInt aCommand, TInt aValue );
-
- /**
- * Checks if given voice exists
- *
- * @param aVoice Voice to be checked
- * @return ETrue if voice exists, EFalse otherwise
- */
- TBool IsVoiceValidL( const TVoice& aVoice );
-
- /*
- * Returns pointer to the previous session. Plugin is closed if it doesn't
- * match new session in order to avoid using settings from other session.
- */
- const MSpeechSynthesisServerObserver* PreviousSession();
-
- /*
- * Closes open plugin
- */
- void ClosePlugin();
-
- public: // From base class MConfigurationObserver
-
- /**
- * This is called when installation or removal of SIS package is detected
- */
- void McoConfigurationChanged();
-
- public: // From base class MTtsClientUtilityObserver
-
- /**
- * Called when asynchronous custom command finishes.
- */
- void MapcCustomCommandEvent( TInt aEvent, TInt aError );
-
- /**
- * Callback when initialized
- */
- void MapcInitComplete( TInt aError, const TTimeIntervalMicroSeconds& aDuration );
-
- /**
- * Callback when playback finished
- */
- void MapcPlayComplete( TInt aError );
-
- public:
-
- /**
- * Callback function called when server has been idle certain time.
- */
- static TInt ClosePlugin( TAny* aAny );
-
- private:
-
- // Constructor
- CSpeechSynthesisServer();
-
- // 2nd phase constructor
- void ConstructL();
-
- // Create new session
- CSession2* NewSessionL( const TVersion& aVersion,
- const RMessage2& aMessage ) const;
-
- // Custom access policy check
- TCustomResult CustomSecurityCheckL( const RMessage2& aMsg,
- TInt& aAction,
- TSecurityInfo& aMissing );
-
- // Updates configuration if needed
- void UpdateSynthesisConfigurationIfNeededL();
-
- // Updates configuration
- void UpdateSynthesisConfigurationL();
-
- private:
-
- // Pointer to active session observer, not owned.
- MSpeechSynthesisServerObserver* iSession;
-
- // Pointer to previous session observer, not owned.
- MSpeechSynthesisServerObserver* iPreviousSession;
-
- // Pointer to tts, owned.
- CTtsUtility* iTtsUtility;
-
- // Object used to stop the server when it has been idle for a while.
- // Owned
- CShutdown* iShutdown;
-
- // Object for closing tts plugin when server has been idle some time.
- // Frees memory and lets tts components to be removed.
- CPeriodic* iPluginCloser;
-
- // SIS package installer listener, owned.
- CConfigurationListener* iConfigurationListener;
-
- // MMC status listener, owned.
- CMMCListener* iMMCListener;
-
- // Supported voice configurations
- RArray<TVoiceConfiguration> iTtsVoiceConfigs;
-
- // Uid of open tts plugin
- TUid iOpenTtsPlugin;
-
- // Number of sessions using this server
- TInt iSessionCount;
-
- //
- TInt iSessionPriority;
-
- // Default settings
- TVoice iDefaultVoice;
- TInt iDefaultSpeakingRate;
- TInt iDefaultVolume;
- TInt iDefaultMaxVolume;
- TInt iDefaultAudioPriority;
- TInt iDefaultAudioPreference;
-
- // If ETrue updates to voice configuration and
- // default settings are needed.
- TBool iUpdateNeeded;
- };
-
-#endif // SPEECHSYNTHESISSERVER_H