mmsharing/mmshindicator/src/musindicatorapi.cpp
changeset 15 ccd8e69b5392
parent 2 b31261fd4e04
child 20 e8be2c2e049d
child 22 496ad160a278
--- a/mmsharing/mmshindicator/src/musindicatorapi.cpp	Tue Feb 02 00:09:07 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,350 +0,0 @@
-/*
-* 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:  MusIndicatorApi provides means to show notes and indicate
-*                availability of videosharing to user.
-*
-*/
-
-
-
-#include "musindicatorapi.h"
-#include "musresourcefinderutil.h"
-#include "muslogger.h"
-#include "musindicatordsa.h"
-#include "mussettings.h"
-#include "mussettingskeys.h"
-#include "mussoundplayer.h"
-#include "musresourceutil.h"
-#include <musindicator.rsg>
-#include <coreapplicationuisdomainpskeys.h>
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CMusIndicatorApi* CMusIndicatorApi::NewL( MMusIndicatorObserver& aObserver )
-    {
-    CMusIndicatorApi* self = CMusIndicatorApi::NewLC( aObserver );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CMusIndicatorApi* CMusIndicatorApi::NewLC( MMusIndicatorObserver& aObserver )
-    {
-    CMusIndicatorApi* self = new (ELeave) CMusIndicatorApi( &aObserver );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CMusIndicatorApi* CMusIndicatorApi::NewL()
-    {
-    CMusIndicatorApi* self = new (ELeave) CMusIndicatorApi( NULL );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-CMusIndicatorApi::~CMusIndicatorApi()
-    {
-    MUS_LOG( "mus: [MUSIND ]  ->  MusIndicatorApi::~CMusIndicatorApi" );
-    
-    Cancel();
-    delete iIndicatorWindow;
-    delete iSoundPlayer;
-    if ( !IsSubscriber() )
-        {
-        Indicator( EFalse );
-        }
-    
-    iProperty.Close();
-
-    MUS_LOG( "mus: [MUSIND ]  <-  MusIndicatorApi::~CMusIndicatorApi" );
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-TBool CMusIndicatorApi::IsSubscriber() const
-    {
-    return !iObserver;
-    }
-
-
-// -----------------------------------------------------------------------------
-// Indicates VS availability to user.
-// In operator specific variant this can include DSA note and an audio tone
-// played with CMdaAudioPlayerUtility.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CMusIndicatorApi::IndicateAvailabilityL()
-    {
-    MUS_LOG( "mus: [MUSIND]  -> CMusIndicatorApi::IndicateAvailabilityL" )
-    __ASSERT_ALWAYS( !IsSubscriber(), User::Leave( KErrArgument ) );
-    
-    Indicator( ETrue );
-
-    if( MultimediaSharingSettings::AuditoryNotificationSettingL() ==
-        MusSettingsKeys::EAuditoryNotificationOn )
-        {
-        MUS_LOG( "mus: [MUSIND]     Play tone" )
-        PlayToneL();
-        }
-
-    MUS_LOG( "mus: [MUSIND]  <- CMusIndicatorApi::IndicateAvailabilityL" )
-    }
-
-
-// -----------------------------------------------------------------------------
-// From CActive.
-// Handles completion of an outstanding asynchronous request.
-// -----------------------------------------------------------------------------
-//
-void CMusIndicatorApi::RunL()
-    {
-    MUS_LOG( "mus: [MUSIND]  <- CMusIndicatorApi::RunL" )
-    
-    if ( !IsSubscriber() )
-        {
-        MUS_LOG( "mus: [MUSIND ] : publisher" )
-        StartLiveSharingL();
-        }
-    else
-        {
-        MUS_LOG( "mus: [MUSIND ] : subscriber" )
-        ToggleIndicatorL();
-        }
-
-    MUS_LOG( "mus: [MUSIND]  -> CMusIndicatorApi::RunL" )
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-void CMusIndicatorApi::StartLiveSharingL()
-    {
-    MUS_LOG( "mus: [MUSIND]  -> CMusIndicatorApi::StartLiveSharingL" )
-
-    if( iStatus.Int() != KErrNotFound ) // eq. Cancel -button
-        {
-        if ( iObserver )
-            {
-            iObserver->StartLiveSharingL();
-            }
-        }
-
-    MUS_LOG( "mus: [MUSIND]  <- CMusIndicatorApi::StartLiveSharingL" )
-    }
-
-
-// -----------------------------------------------------------------------------
-// 
-// -----------------------------------------------------------------------------
-//
-void CMusIndicatorApi::ToggleIndicatorL()
-    {
-    MUS_LOG( "mus: [MUSIND]  -> CMusIndicatorApi::ToggleIndicatorL" )
-    TInt val;
-    
-
-    
-    User::LeaveIfError( RProperty::Get( KPSUidCoreApplicationUIs,
-                                        KCoreAppUIsVideoSharingIndicator,
-                                        val ) );
-    iProperty.Subscribe( iStatus );
-    SetActive();
-    
-    TBool on = ( val == ECoreAppUIsVideoSharingIndicatorOn );
-    
-    if ( on && !iIndicatorWindow 
-         && MultimediaSharingSettings::OperatorVariantSettingL() ==
-         MusSettingsKeys::EOperatorSpecific )
-        {
-        iIndicatorWindow = CMusIndicatorDsa::NewL();
-        }
-    else if ( !on )
-        {
-        delete iIndicatorWindow;
-        iIndicatorWindow = NULL;
-        }
-    else
-        {
-        //NOP
-        }
-    
-    MUS_LOG( "mus: [MUSIND]  <- CMusIndicatorApi::ToggleIndicatorL" )
-    }
-
-
-// -----------------------------------------------------------------------------
-// From CActive.
-// Cancels an outstanding asynchronous request.
-// -----------------------------------------------------------------------------
-//
-void CMusIndicatorApi::DoCancel()
-    {
-    MUS_LOG( "mus: [MUSIND]  <- CMusIndicatorApi::DoCancel" )
-    
-    if ( IsSubscriber() )
-        {
-        iProperty.Cancel();
-        }
-    MUS_LOG( "mus: [MUSIND]  -> CMusIndicatorApi::DoCancel" )
-    }
-
-
-// -----------------------------------------------------------------------------
-// From CActive.
-// Handles a leave occurring in the request completion event handler RunL.
-// -----------------------------------------------------------------------------
-//
-#ifdef _DEBUG
-TInt CMusIndicatorApi::RunError( TInt aError )
-#else
-TInt CMusIndicatorApi::RunError( TInt )
-#endif
-    {
-    MUS_LOG1( "mus: [MUSIND]  -> CMusIndicatorApi::RunError(%d)", aError )
-
-    MUS_LOG( "mus: [MUSIND]  <- CMusIndicatorApi::RunError(%d)" )
-    return KErrNone;
-    }
-
-
-// -----------------------------------------------------------------------------
-// From MMusSoundPlayerObserver.
-// Indicates completion of sound playback.
-// -----------------------------------------------------------------------------
-//
-#ifdef _DEBUG
-void CMusIndicatorApi::PlaySoundComplete( TInt aError )
-#else
-void CMusIndicatorApi::PlaySoundComplete( TInt /* aError */ )
-#endif
-    {
-    MUS_LOG1( "mus: [MUSIND ] -> MusIndicatorApi::PlaySoundComplete(%d)", aError )
-    delete iSoundPlayer;
-    iSoundPlayer = NULL;
-    MUS_LOG( "mus: [MUSIND ] <- MusIndicatorApi::PlaySoundComplete" )
-    }
-
-
-// -----------------------------------------------------------------------------
-//
-// -----------------------------------------------------------------------------
-//
-CMusIndicatorApi::CMusIndicatorApi( MMusIndicatorObserver* aObserver )
-    : CActive( EPriorityStandard ),
-    iObserver( aObserver )
-    {
-    }
-
-
-// -----------------------------------------------------------------------------
-// 
-// -----------------------------------------------------------------------------
-//
-void CMusIndicatorApi::ConstructL()
-    {
-    MUS_LOG( "mus: [MUSIND ]  ->  MusIndicatorApi::ConstructL" )
-    
-    if ( IsSubscriber() )
-        {
-        MUS_LOG( "mus: [MUSIND ] :  subscriber (called by aiwprovider)" )
-
-        User::LeaveIfError( iProperty.Attach( KPSUidCoreApplicationUIs,
-                                              KCoreAppUIsVideoSharingIndicator ) );
-        CActiveScheduler::Add( this );
-        iProperty.Subscribe( iStatus );
-        SetActive();
-        }
-    else
-        {
-        MUS_LOG( "mus: [MUSIND ] : publisher (called by manager)" )
-        CActiveScheduler::Add( this );
-        }
-    MUS_LOG( "mus: [MUSIND ]  <-  MusIndicatorApi::ConstructL" )
-    }
-
-
-// -----------------------------------------------------------------------------
-// Indicating availability of VS.
-// -----------------------------------------------------------------------------
-//
-void CMusIndicatorApi::Indicator( TBool aShown )
-	{
-    MUS_LOG1( "mus: [MUSIND ]  <-  MusIndicatorApi::Indicator( %d)" , aShown )
-    
-	RProperty property;
-    TInt error( KErrNone );
-
-    error = property.Attach( KPSUidCoreApplicationUIs, KCoreAppUIsVideoSharingIndicator );
-    if ( error == KErrNone )
-        {
-        if ( aShown )
-            {
-            MUS_LOG( "mus: [MUSIND ] : indicator ON" )
-            
-            property.Set( ECoreAppUIsVideoSharingIndicatorOn );
-            }
-        else
-            {
-            MUS_LOG( "mus: [MUSIND ] : indicator OFF" )
-            property.Set( ECoreAppUIsVideoSharingIndicatorOff );
-            }
-        }
-    property.Close();
-    MUS_LOG( "mus: [MUSIND ]  <-  MusIndicatorApi::Indicator" )
-    
-	}
-
-// -----------------------------------------------------------------------------
-// Plays tone indicating availability of VS.
-// -----------------------------------------------------------------------------
-//
-void CMusIndicatorApi::PlayToneL()
-    {    
-    MUS_LOG( "mus: [MUSIND ] -> MusIndicatorApi::PlayToneL" )
-    delete iSoundPlayer;
-    iSoundPlayer = NULL;
-    iSoundPlayer = CMusSoundPlayer::NewL( *this );
-    MUS_LOG( "mus: [MUSIND ]    MusIndicatorApi::PlayToneL - Play sound" )
-    iSoundPlayer->PlayL( CMusSoundPlayer::EVsAvailableSound );
-    MUS_LOG( "mus: [MUSIND ] <- MusIndicatorApi::PlayToneL" )
-    }
-
-