srsf/speechsynthesis/server/inc/speechsynthesisserver.h
branchRCL_3
changeset 18 cad71a31b7fc
parent 17 8ce15fced3a6
child 19 e36f3802f733
--- 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