devsoundextensions/globalaudiosettings/inc/GlobalAudioSettingsImpl.h
changeset 0 40261b775718
child 38 4269ca484c7b
child 43 98aa3ecc14d2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devsoundextensions/globalaudiosettings/inc/GlobalAudioSettingsImpl.h	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,290 @@
+/*
+* Copyright (c) 2004 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:   This file contains definitions of GlobalAudioSettings.
+*
+*/
+
+
+
+
+#ifndef GLOBALAUDIOSETTINGSIMPL_H
+#define GLOBALAUDIOSETTINGSIMPL_H
+
+#include <e32property.h>
+#include <e32base.h>
+#include <e32debug.h>
+#include "GlobalAudioSettingsData.h"
+#include <GlobalAudioSettings.h>
+#include <MAudioClientsListObserver.h>
+
+class MAudioSettingsObserver;
+//class CGlobalAudioSettings;
+class CWarningTonesObserverAO;
+class CMessagingTonesObserverAO;
+class CSilentProfileObserverAO;
+class CVibraObserverAO;
+class CAudioClientsListManagerAO;
+
+
+/**
+*  Defines functions that client uses to set phone profile settings.
+*
+*  @lib GlobalAudioSettings.lib
+*  @since Series 60 3.2
+*/
+class CGlobalAudioSettingsImpl: public CBase
+    {
+    public:
+        /**
+        * function for creating the GlobalAudioSettingsImpl
+        *
+        */
+        IMPORT_C static CGlobalAudioSettingsImpl* NewL(
+                        CGlobalAudioSettings& aGlobalAudioSettings,
+                        MAudioSettingsObserver& aAudioSettingsObserver);
+        /**
+        * Destructor.
+        *
+        */
+        ~CGlobalAudioSettingsImpl();
+        /**
+        * Returns warning tones status.
+        *
+        * @since Series 60 3.2
+        * @return TBool aEnable. ETrue if warning tones are enabled else EFalse.
+        */
+        IMPORT_C TBool IsWarningTonesEnabled();
+        /**
+        * Returns message tones status.
+        *
+        * @since Series 60 3.2
+        * @return TBool aEnable. ETrue if message tones are enabled else EFalse.
+        */
+        IMPORT_C TBool IsMessageTonesEnabled();
+        /**
+        * Returns silent profile status.
+        *
+        * @since Series 60 3.2
+        * @return TBool aEnable. ETrue if current profile is silent profile else EFalse.
+        */
+        IMPORT_C TBool IsSilentProfileEnabled();
+        /**
+        * Returns vibra is enabled or not in the current profile status.
+        *
+        * @since Series 60 3.2
+        * @return TBool aEnable. ETrue if current profile vibra active else EFalse.
+        */
+        IMPORT_C TBool IsVibraEnabled();
+        /**
+        * Returns PublicSilence is enabled or not status.
+        *
+        * @since Series 60 3.2
+        * @return TBool aEnable. ETrue if PublicSilence active else EFalse.
+        */
+        IMPORT_C TBool IsPublicSilenceEnabled();
+
+        /**
+        * Registers audio clients list observer.
+        *
+        * When registered successfully, the observer will start receiveing
+        * callback defined in MAudioClientsListObserver when audio clients list
+        * changes.
+        *
+        * @since S60 3.2
+        * @param MAudioClientsListObserver& aObserver. A reference to class
+        *           implementing MAudioClientsListObserver interface.
+        * @return TInt. KErrNone if successful. KErrAlreadyExists if the observer
+        *           is already registered.
+        */
+        TInt RegisterAudioClientsListObserver(
+                                    MAudioClientsListObserver& aObserver );
+                
+        /**
+        * Unregisters audio clients list observer.
+        *
+        * When unregistered, the observer will no longer receive callback when
+        * audio clients list changes.
+        *
+        * @since S60 3.2
+        * @param MAudioClientsListObserver& aObserver. A reference to class
+        *           implementing MAudioClientsListObserver interface.
+        * @return TInt. KErrNone if successful. KErrNotFound if the observer
+        *           is not registered.
+        */
+        TInt UnregisterAudioClientsListObserver(
+                                    MAudioClientsListObserver& aObserver);
+
+        /**
+        * Gets audio clients list.
+        *
+        * On return of this function, the parameter aList will contain active
+        * audio client application process ids.
+        *
+        * The parameter aList will be reset in the case
+        *
+        * @since S60 3.2
+        * @param TAudioClientListType aFilter. Type of client list.
+        * @param RArray<TProcessId>& aList. A reference to RArray.
+        * @return TInt. KErrNone if successful. KErrBadName if
+        *           aType is not one of the TAudioClientListType enumeration.
+        *           Otherwise a systemwide error code.
+        *           In case of error, the array aList will be reset.
+        */
+        TInt GetAudioClientsList(
+                                CGlobalAudioSettings::TAudioClientListType aType,
+                                RArray<TProcessId>& aList );
+
+    
+    private:
+        CGlobalAudioSettingsImpl(CGlobalAudioSettings &aGlobalAudioSettings,
+                                 MAudioSettingsObserver& aAudioSettingsObserver);
+        /**
+        * Second Phase Costructor for GlobalAudioSettingsImpl Instance
+        * @since 3.2
+        * @param void
+        */
+        void ConstructL();
+            
+    private:
+        TGlobalAudioSettings iGlobalAudioSettingsData;
+        CGlobalAudioSettings& iGlobalAudioSettings;
+        MAudioSettingsObserver&   iAudioSettingsObserver;
+        CWarningTonesObserverAO* iWarningTonesObserverAO;
+        CMessagingTonesObserverAO* iMessagingTonesObserverAO;
+        CSilentProfileObserverAO* iSilentProfileObserverAO;
+        CVibraObserverAO* iVibraObserverAO;
+        // Object managing Audio Clients List implementation
+        CAudioClientsListManagerAO* iCAudioClientsListManagerAO;
+        // Object managing Paused Clients List implementation
+        CAudioClientsListManagerAO* iPausedClientsListManagerAO;              
+        // List of Audio Clients List Observer objects
+        RPointerArray<MAudioClientsListObserver> iAudioClientsListObserverArray;
+    };
+
+
+class CWarningTonesObserverAO : public CActive
+	{
+public:
+    // Ist Phase constr and Destr
+	static CWarningTonesObserverAO* NewL(CGlobalAudioSettings &aGlobalAudioSettings,
+                                         MAudioSettingsObserver& aAudioSettingsObserver,
+                                         TGlobalAudioSettings& aGlobalAudioSettingsData);
+	~CWarningTonesObserverAO();
+	void Subscribe();
+
+protected:
+	// From CActive
+	void RunL();
+	void DoCancel();
+	TInt RunError(TInt aError);
+
+private:
+	// Constr and IInd phase constr
+	CWarningTonesObserverAO(CGlobalAudioSettings &aGlobalAudioSettings,
+                                                 MAudioSettingsObserver& aAudioSettingsObserver,
+                                                 TGlobalAudioSettings& aGlobalAudioSettingsData);
+	void ConstructL();
+	CGlobalAudioSettings& iGlobalAudioSettings;
+    MAudioSettingsObserver&   iAudioSettingsObserver;
+    RProperty iWarningTonesProperty;
+    TGlobalAudioSettings& iGlobalAudioSettingsData;
+	};
+
+class CMessagingTonesObserverAO : public CActive
+	{
+public:
+    // Ist Phase constr and Destr
+	static CMessagingTonesObserverAO* NewL(CGlobalAudioSettings &aGlobalAudioSettings,
+                                         MAudioSettingsObserver& aAudioSettingsObserver,
+                                         TGlobalAudioSettings& aGlobalAudioSettingsData);
+	~CMessagingTonesObserverAO();
+	void Subscribe();
+
+protected:
+	// From CActive
+	void RunL();
+	void DoCancel();
+	TInt RunError(TInt aError);
+
+private:
+	// Constr and IInd phase constr
+	CMessagingTonesObserverAO(CGlobalAudioSettings &aGlobalAudioSettings,
+                                                 MAudioSettingsObserver& aAudioSettingsObserver,
+                                                 TGlobalAudioSettings& aGlobalAudioSettingsData);
+	void ConstructL();
+	CGlobalAudioSettings& iGlobalAudioSettings;
+    MAudioSettingsObserver&   iAudioSettingsObserver;
+    RProperty iMessagingTonesProperty;
+    TGlobalAudioSettings& iGlobalAudioSettingsData;
+	};
+	
+class CSilentProfileObserverAO : public CActive
+	{
+public:
+    // Ist Phase constr and Destr
+	static CSilentProfileObserverAO* NewL(CGlobalAudioSettings &aGlobalAudioSettings,
+                                         MAudioSettingsObserver& aAudioSettingsObserver,
+                                         TGlobalAudioSettings& aGlobalAudioSettingsData);
+	~CSilentProfileObserverAO();
+	void Subscribe();
+
+protected:
+	// From CActive
+	void RunL();
+	void DoCancel();
+	TInt RunError(TInt aError);
+
+private:
+	// Constr and IInd phase constr
+	CSilentProfileObserverAO(CGlobalAudioSettings &aGlobalAudioSettings,
+                                                 MAudioSettingsObserver& aAudioSettingsObserver,
+                                                 TGlobalAudioSettings& aGlobalAudioSettingsData);
+	void ConstructL();
+	CGlobalAudioSettings& iGlobalAudioSettings;
+    MAudioSettingsObserver&   iAudioSettingsObserver;
+    RProperty iSilentProfileProperty;
+    TGlobalAudioSettings& iGlobalAudioSettingsData;
+	};
+
+class CVibraObserverAO : public CActive
+	{
+public:
+    // Ist Phase constr and Destr
+	static CVibraObserverAO* NewL(CGlobalAudioSettings &aGlobalAudioSettings,
+                                         MAudioSettingsObserver& aAudioSettingsObserver,
+                                         TGlobalAudioSettings& aGlobalAudioSettingsData);
+	~CVibraObserverAO();
+	void Subscribe();
+
+protected:
+	// From CActive
+	void RunL();
+	void DoCancel();
+	TInt RunError(TInt aError);
+
+private:
+	// Constr and IInd phase constr
+	CVibraObserverAO(CGlobalAudioSettings &aGlobalAudioSettings,
+                                                 MAudioSettingsObserver& aAudioSettingsObserver,
+                                                 TGlobalAudioSettings& aGlobalAudioSettingsData);
+	void ConstructL();
+	CGlobalAudioSettings& iGlobalAudioSettings;
+    MAudioSettingsObserver&   iAudioSettingsObserver;
+    RProperty iVibraProperty;
+    TGlobalAudioSettings& iGlobalAudioSettingsData;
+	};
+
+#endif // GLOBALAUDIOSETTINGSIMPL_H
+
+// End of file