diff -r 41a7f70b3818 -r 5266b1f337bd phoneapp/phoneuiview/inc/cphoneaudiocontroller.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneapp/phoneuiview/inc/cphoneaudiocontroller.h Wed Sep 01 12:30:10 2010 +0100 @@ -0,0 +1,193 @@ +/* +* Copyright (c) 2002-2006 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: It manages incall indicator. +* +*/ + + +#ifndef CPHONEAUDIOCONTROLLER_H +#define CPHONEAUDIOCONTROLLER_H + +// INCLUDES +#include + +// FORWARD DECLARATIONS +class CPhoneStatusPane; +class TPhoneCommandParam; +class CPhoneTimer; + +// CLASS DECLARATION + +/** +* It manages navi pane audio indicators +* +* @since 1.0 +*/ +class CPhoneAudioController : public CBase, public MCoeControlObserver, + public MCoeForegroundObserver + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @return new instance. + */ + static CPhoneAudioController* NewL(); + + /** + * Destructor. + */ + ~CPhoneAudioController(); + + public: // New functions + + /** + * Activates voice volume control. + */ + void ActivateVolumeControlL(); + + /** + * Deactivate voice volume control. + */ + void DeactivateVolumeControl(); + + /** + * Update control using the specified data + * @param aCommandParam command parameter + */ + void HandleVolumeChangeL( TPhoneCommandParam* aCommandParam ); + + /** + * Update control using the specified data + * @param aCommandParam command parameter + */ + void HandleIhfChange( TPhoneCommandParam* aCommandParam ); + + /** + * Gets volume level from navi pane control. + * @return Volume level. + */ + TInt VolumeLevelFromControl(); + + private: // MCoeControlObserver + + void HandleControlEventL( CCoeControl* aControl, + TCoeEvent aEventType ); + + private: // MCoeForegroundObserver + + /** + * Handles the application coming to the foreground. + */ + void HandleGainingForeground(); + + /** + * Handles the application going into the background. + */ + void HandleLosingForeground(); + + private: + + /** + * C++ constructor. + */ + CPhoneAudioController(); + + /** + * Symbian OS constructor. + */ + void ConstructL(); + + /** + * Update indicator. + */ + void ActivateL(); + + /** + * Recovery system callback + */ + static TInt DoRecoverActivateL( TAny* aAny ); + + /** + * Pushes new decorator to navi pane replacing the + * previous one if needed. + * @param aNew new to replace the old one. + */ + void PushL(CAknNavigationDecorator& aNew); + + /** + * Get current volume decorator (Ihf or Ear) + * @return Current volume decorator + */ + CAknNavigationDecorator& VolumeDecorator(); + + /** + * Get current volume control (Ihf or Ear) + * @return Current volume control (Ihf or Ear) + */ + CAknVolumeControl& VolumeControl(); + + /** + * Get current volume level (Ihf or Ear) + * @return Current Ihf or Ear volume level + */ + TInt VolumeLevel(); + + /** + * Set volume level for given volume control + * @param aVolumeControl Volume control + * @param aVolumeLevel New volume level + */ + void SetVolumeLevel(CAknVolumeControl& aVolumeControl, TInt aVolumeLevel); + + private: // Data + + // Recovery id for activating volume control + TInt iActivateRecoveryId; + + CPhoneStatusPane* iStatusPane; + + // Count the volume control activations + TInt iVolumeControlCount; + + // Owned IHF volume control + CAknNavigationDecorator* iIhfVolumeControl; + + // IHF volume, from 1 to 10 + TInt iIhfVolume; + + // ETrue IHF is active + TBool iIhfMode; + + // Owned non-IHF volume control. + CAknNavigationDecorator* iEarVolumeControl; + + // Non-IHF volume, from 1 to 10 + TInt iEarVolume; + + // Pointer the current control that is in navi pane + CAknNavigationDecorator* iOldControl; + + + /** + * ETrue if Telephony is the foreground application, + * otherwise EFalse. + */ + TBool iPhoneInForeground; + + }; + +#endif // CPHONEAUDIOCONTROLLER_H + +// End of File