mmsharing/mmshengine/src/musengsession.cpp
branchRCL_3
changeset 33 bc78a40cd63c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmsharing/mmshengine/src/musengsession.cpp	Wed Sep 01 12:31:01 2010 +0100
@@ -0,0 +1,245 @@
+/*
+* Copyright (c) 2005 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: 
+*
+*/
+
+
+// USER INCLUDES
+#include "musengsession.h"
+#include "musengsessionobserver.h"
+#include "musengtelephoneutils.h"
+#include "muslogger.h"
+
+// SYSTEM INCLUDES
+
+#include <e32cmn.h>
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+CMusEngSession::~CMusEngSession() // destruct - virtual, so no export
+    {
+    MUS_LOG( "mus: [ENGINE]  -> CMusEngSession::~CMusEngSession()" )
+    delete iTelephoneUtils;
+    MUS_LOG( "mus: [ENGINE]  <- CMusEngSession::~CMusEngSession()" )
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TRect CMusEngSession::Rect() const
+    {
+    MUS_LOG( "mus: [ENGINE]  CMusEngSession::Rect()" )
+    return iRect;
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CMusEngSession::SetRectL( const TRect& aRect )
+    {
+    MUS_LOG( "mus: [ENGINE]  CMusEngSession::SetRect()" )
+    iRect = aRect;
+    RectChangedL();
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CMusEngSession::AudioRoutingCanBeChanged() const
+    {
+    return iTelephoneUtils->AudioRoutingCanBeChanged();
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CMusEngSession::IsAudioRoutingHeadset() const
+    {
+    return iTelephoneUtils->IsAudioRoutingHeadset();
+    }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CMusEngSession::IsAudioRoutingLoudSpeaker() const
+    {
+    return iTelephoneUtils->IsAudioRoutingLoudSpeaker();
+    }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CMusEngSession::EnableLoudspeakerL( TBool aEnable,
+                                                  TBool aShowDialog )
+    {
+    TRAPD( error, iTelephoneUtils->LoudspeakerL( aEnable, aShowDialog ) )
+
+    if ( error != KErrNone )
+        {
+        // This is writed for emulator use
+        if ( error != KErrNotSupported )
+            {
+            MUS_LOG1( "mus: [ENGINE]     CMusEngSession::EnableLoudspeakerL() Leave: #%d",
+                      error)
+            User::Leave( error );
+            }
+        // Not leave in emulator if KErrNotSupported
+        #if (!defined (__WINS__) && !defined(__WINSCW__))
+        User::Leave( error );
+        #endif
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CMusEngSession::IsLoudSpeakerEnabled() const
+    {
+    return iTelephoneUtils->IsLoudSpeakerEnabled();
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt CMusEngSession::VolumeL() const
+    {
+    return iTelephoneUtils->GetVolume();
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CMusEngSession::MuteMicL( TBool aMute )
+    {
+    iTelephoneUtils->MuteMicL( aMute );
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CMusEngSession::IsMicMutedL()
+    {
+    return iTelephoneUtils->IsMicMutedL();
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CMusEngSession::SetAudioRoutingObserver( 
+                                    MMusEngAudioRoutingObserver* aObserver )
+    {
+    iTelephoneUtils->SetAudioRoutingObserver( aObserver );
+    }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CMusEngSession::SetVolumeChangeObserver( 
+                                   MMusEngVolumeChangeObserver* aObserver )
+    {
+    iVolumeObserver = aObserver;
+    }
+
+
+// -----------------------------------------------------------------------------
+// Increases CS call volume level by one.
+// Leaves if error occurs when accessing central repository.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CMusEngSession::VolumeUpL( )
+    {
+    TInt currentVolume = iTelephoneUtils->GetVolume();
+    iTelephoneUtils->SetVolumeL( currentVolume  + 1 );
+    }
+
+
+// -----------------------------------------------------------------------------
+// Decreases CS call volume level by one.
+// Leaves if error occurs when accessing central repository.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CMusEngSession::VolumeDownL( )
+    {
+    TInt currentVolume = iTelephoneUtils->GetVolume();
+    iTelephoneUtils->SetVolumeL( currentVolume - 1 );
+    }
+
+// -----------------------------------------------------------------------------
+// Set CS call volume value
+// Leaves if error occurs when accessing central repository.
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CMusEngSession::SetVolumeL( TInt aVal )
+    {
+    iTelephoneUtils->SetVolumeL( aVal );
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+CMusEngSession::CMusEngSession( const TRect& aRect )
+    :iRect( aRect )
+    {
+    }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CMusEngSession::ConstructL() // second-phase constructor
+    {
+    MUS_LOG( "mus: [ENGINE]  -> CMusEngSession::ConstructL()" )
+    iTelephoneUtils = CMusEngTelephoneUtils::NewL();
+    iTelephoneUtils->SetVolumeChangeObserver( this );
+    MUS_LOG( "mus: [ENGINE]  <- CMusEngSession::ConstructL()" )
+    }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CMusEngSession::VolumeChanged( TInt aVolume, TBool aAudioRouteChanged )
+    {
+    if ( iVolumeObserver )         
+        {
+        iVolumeObserver->VolumeChanged( aVolume, aAudioRouteChanged );
+        }
+    }