tacticonserver/server/inc/tacticonserver.h
changeset 0 d54f32e146dd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tacticonserver/server/inc/tacticonserver.h	Thu Dec 17 08:53:38 2009 +0200
@@ -0,0 +1,177 @@
+/*
+* Copyright (c) 2009 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: Tacticon server implementation.
+* Part of    : Tacticon Server
+*/
+
+#ifndef C_TACTICONSERVER_H
+#define C_TACTICONSERVER_H
+
+#include <e32base.h>
+#include <f32file.h>
+
+#include <tacticon.hrh>
+
+#include "tacticonplayer.h"
+#include "tacticonprivatecrkeys.h"
+#include "tacticondefs.h"
+
+class CRepository;
+class CTacticonShutdown;
+
+/** Total number of ranges */
+const TUint KTacticonRangeCount = 1;
+
+/** Definition of the ranges of IPC numbers */
+const TInt KTacticonRanges[KTacticonRangeCount] = 
+    {
+    0,
+    }; 
+
+/** Policy to implement for each of the above ranges */       
+const TUint8 KTacticonElementsIndex[KTacticonRangeCount] = 
+    {
+    0,
+    };
+
+const CPolicyServer::TPolicyElement KTacticonPolicyElements[] = 
+    {
+    _INIT_SECURITY_POLICY_C2(ECapability_None,
+                               ECapability_None),
+                               CPolicyServer::EFailClient
+    };
+
+/** Package all the above together into a policy */
+const CPolicyServer::TPolicy KTacticonPolicy =
+    {
+    CPolicyServer::EAlwaysPass,     // all attempts should pass
+    KTacticonRangeCount,     // number of ranges
+    KTacticonRanges,         // ranges array
+    KTacticonElementsIndex,  // elements<->ranges index
+    KTacticonPolicyElements, // array of elements
+    };
+    
+/**
+*  A server class to initialize server. 
+*  @lib tacticonserver.lib
+*  @since S60 5.2
+*/
+class CTacticonServer : public CPolicyServer
+    {
+public:
+    /**
+    * 2-phased constructor.
+    */
+    static CTacticonServer* NewLC();
+    
+    /**
+    * C++ destructor.
+    */ 
+    virtual ~CTacticonServer();
+    
+   
+public:
+    /**
+    * From CServer2, creates a new session.
+    * @since S60 5.2
+    * @param aVersion, Tacticon server version
+    * @param aMessage, a message from client     
+    */
+    CSession2* NewSessionL( const TVersion& aVersion,
+                            const RMessage2& aMessage ) const;
+                            
+public:
+    /**
+     * Increase session count.
+     * @since S60 5.2
+     */
+    void AddSession();
+    
+    /**
+     * Decrease session count, close server if count is zero.
+     * @since S60 5.2
+     */
+    void RemoveSession();  
+    
+public:
+    /**
+     * Plays tacticon according to aTacticonType
+     * @since S60 5.2
+     * @param aTacticonType, Tacticon type to be played
+     */
+    void PlayTacticon( TTacticonType aTacticonType ); 
+    
+    /**
+     * Stops playing tacticon
+     * @since S60 5.2
+     */    
+    void StopTacticon();                             
+
+    /**
+     * Sets tacticons enabled/disabled.
+     * @since S60 5.2
+     */    
+    void EnableTacticons( TBool aEnabled );
+    
+    /**
+     * Returns boolean value whether tacticons are enabled or disabled.
+     * @since S60 5.2
+     */        
+    TBool TacticonsEnabled();
+
+private:    
+    /**
+    * C++ constructor.
+    */
+    CTacticonServer();
+    
+    /**
+    * 2nd phase constructor.
+    */
+    void ConstructL();
+
+private:
+    /**
+     * Counter of opened client sessions.
+     */
+    TInt iSessionCount;
+
+    /**
+     * Player plugin. 
+     * Own.
+     */
+    CTacticonPlayer* iPlayer;  
+    
+     /**
+     * Access to settings.
+     * Own.
+     */    
+    CRepository* iRepository;
+  
+    /**
+     * Timer for server shutdown
+     * Own.
+     */
+    CTacticonShutdown* iShutdown; 
+    
+    /**
+     * 
+     */    
+    TBool   iTacticonsEnabled;
+
+    };
+
+
+#endif // C_TACTICONSERVER_H
+