--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/srsf/speechsynthesis/server/inc/speechsynthesisserverutilities.h Wed Sep 01 12:29:17 2010 +0100
@@ -0,0 +1,213 @@
+/*
+* Copyright (c) 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: Utility classes for speech synthesis server
+*
+*/
+
+
+#ifndef SPEECHSYNTHESISSERVERUTILITIES_H
+#define SPEECHSYNTHESISSERVERUTILITIES_H
+
+// INCLUDES
+
+#include <e32base.h>
+#include <e32property.h>
+#include <speechsynthesis.h>
+
+
+// CONSTANTS
+
+_LIT( KPanic, "SpeechSynthesisServer" );
+
+// Time after server is closed if nobody is connected to it
+const TTimeIntervalMicroSeconds32 KSpeechSynthesisShutdownDelay = 0x200000; // 2 seconds
+
+
+// ----------------------------------------------------------------------------
+// TSpeechSynthesisPanic
+// Server's panic codes
+// ----------------------------------------------------------------------------
+//
+enum TSpeechSynthesisPanic
+ {
+ EPanicGeneral,
+ EPanicIllegalFunction
+ };
+
+// ----------------------------------------------------------------------------
+// PanicClient
+//
+// ----------------------------------------------------------------------------
+//
+void PanicClient( const RMessagePtr2& aMessage, TSpeechSynthesisPanic aPanic );
+
+
+// ----------------------------------------------------------------------------
+// MSpeechSynthesisServerObserver
+// Observer to receive callbacks from server
+// ----------------------------------------------------------------------------
+//
+class MSpeechSynthesisServerObserver
+ {
+
+ public:
+
+ /**
+ * Initialisation has finished
+ * @param aError KErrNone if initialisation succeeded
+ * @param aDuration Estimated duration of synthesis
+ */
+ virtual void MsssInitComplete( TInt aError,
+ const TTimeIntervalMicroSeconds& aDuration ) = 0;
+
+ /**
+ * Synthesis complete
+ * @param aError KErrNone synthesis has finalised without errors
+ */
+ virtual void MsssPlayComplete( TInt aError ) = 0;
+
+ /**
+ * Initialisation or synthesis has been aborted.
+ */
+ virtual void MsssOperationAborted() = 0;
+
+ };
+
+
+// ----------------------------------------------------------------------------
+// MConfigurationObserver
+// Observer to receive callbacks from CConfigurationListener
+// ----------------------------------------------------------------------------
+//
+class MConfigurationObserver
+ {
+
+ public:
+
+ /**
+ * Change in configuration detected
+ */
+ virtual void McoConfigurationChanged() = 0;
+
+ };
+
+
+// ----------------------------------------------------------------------------
+// TVoiceConfiguration
+//
+// ----------------------------------------------------------------------------
+//
+class TVoiceConfiguration : public TVoice
+ {
+ public:
+
+ TUid iPluginUid;
+
+ TVoiceConfiguration():
+ TVoice(),
+ iPluginUid( KNullUid ) {};
+ };
+
+
+
+// ----------------------------------------------------------------------------
+// Auto shutdown class
+//
+// ----------------------------------------------------------------------------
+//
+class CShutdown : public CTimer
+ {
+
+ public:
+
+ static CShutdown* NewL();
+
+ void Start();
+
+ private:
+
+ inline CShutdown();
+
+ inline void ConstructL();
+
+ void RunL();
+
+ };
+
+
+// ----------------------------------------------------------------------------
+// Class used to detect installation and removal of SIS package
+//
+// ----------------------------------------------------------------------------
+//
+class CConfigurationListener : public CActive
+ {
+
+ public:
+
+ static CConfigurationListener* NewL( MConfigurationObserver& aHost );
+
+ virtual ~CConfigurationListener();
+
+ private:
+
+ CConfigurationListener( MConfigurationObserver& aHost );
+
+ void ConstructL();
+
+ void RunL();
+
+ void DoCancel();
+
+ private:
+
+ RProperty iProperty;
+
+ MConfigurationObserver& iHost;
+ };
+
+// ----------------------------------------------------------------------------
+// Class used to detect insertion and removal of MMC card
+// @todo Changes needed due to multiple drive support?
+// ----------------------------------------------------------------------------
+//
+class CMMCListener : public CActive
+ {
+
+ public:
+
+ static CMMCListener* NewL( MConfigurationObserver& aHost );
+
+ virtual ~CMMCListener();
+
+ private:
+
+ CMMCListener( MConfigurationObserver& aHost );
+
+ void ConstructL();
+
+ void RunL();
+
+ void DoCancel();
+
+ private:
+
+ RProperty iProperty;
+
+ TInt iPrevValue;
+
+ MConfigurationObserver& iHost;
+ };
+
+#endif // SPEECHSYNTHESISSERVERUTILITIES_H