diff -r 924385140d98 -r c2c61fdca848 startupservices/Startup/src/StartupMediatorObserver.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/startupservices/Startup/src/StartupMediatorObserver.cpp Wed Sep 01 12:24:48 2010 +0100 @@ -0,0 +1,182 @@ +/* +* Copyright (c) 2005-2008 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: Implementation of CStartupMediatorObserver class +* +*/ + + +#include + +#include "StartupMediatorObserver.h" +#include "StartupAppUi.h" +#include "startupdomainpskeys.h" + +// ================= MEMBER FUNCTIONS ======================= + +// ---------------------------------------------------- +// CStartupMediatorObserver::ConstructL() +// ---------------------------------------------------- +void CStartupMediatorObserver::ConstructL() + { + TRACES("CStartupMediatorObserver::ConstructL()"); + + TRACES("CStartupMediatorObserver::ConstructL(): iCommandInitiator"); + iCommandInitiator = CMediatorCommandInitiator::NewL(this); + + TRACES("CStartupMediatorObserver::ConstructL(): iEventProvider"); + iEventProvider = CMediatorEventProvider::NewL(); + + TRACES("CStartupMediatorObserver::ConstructL(): Register event: EMsgWelcomeImageEvent "); + iEventProvider->RegisterEvent( KMediatorSecondaryDisplayDomain, + SecondaryDisplay::KCatStartup, + SecondaryDisplay::EMsgWelcomeImageEvent, + TVersion(0,0,0), + ECapabilitySwEvent ); + + TRACES("CStartupMediatorObserver::ConstructL(): Register event: EMsgStartupEvent "); + iEventProvider->RegisterEvent( KMediatorSecondaryDisplayDomain, + SecondaryDisplay::KCatStartup, + SecondaryDisplay::EMsgStartupEvent, + TVersion(0,0,0), + ECapabilitySwEvent ); + + TRACES("CStartupMediatorObserver::ConstructL(): End"); + } + +// ---------------------------------------------------- +// CStartupMediatorObserver::NewL( CStartupAppUi* aStartupAppUi ) +// ---------------------------------------------------- +CStartupMediatorObserver* CStartupMediatorObserver::NewL( CStartupAppUi* aStartupAppUi ) + { + TRACES("CStartupMediatorObserver::NewL()"); + CStartupMediatorObserver* self = new (ELeave) CStartupMediatorObserver( aStartupAppUi ); + + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop(); // self + + TRACES("CStartupMediatorObserver::NewL(): End"); + return self; + } + +// ---------------------------------------------------- +// CStartupMediatorObserver::CStartupMediatorObserver( CStartupAppUi* aStartupAppUi ) +// C++ default constructor can NOT contain any code, that +// might leave. +// ---------------------------------------------------- +CStartupMediatorObserver::CStartupMediatorObserver( CStartupAppUi* aStartupAppUi ) : + iStartupAppUi( aStartupAppUi ), + iSyncData( NULL ) + { + TRACES("CStartupMediatorObserver::CStartupMediatorObserver()"); + } + +// ---------------------------------------------------- +// CStartupMediatorObserver::~CStartupMediatorObserver() +// ---------------------------------------------------- +CStartupMediatorObserver::~CStartupMediatorObserver() + { + TRACES("CStartupMediatorObserver::~CStartupMediatorObserver()"); + delete iCommandInitiator; + delete iEventProvider; + TRACES("CStartupMediatorObserver::~CStartupMediatorObserver(): End"); + } + +// --------------------------------------------------------- +// +// --------------------------------------------------------- +void CStartupMediatorObserver::IssueCommand(TInt aCommandId, TInt aData) + { + TRACES("CStartupMediatorObserver::IssueCommand()"); + TRACES1("CStartupMediatorObserver::IssueCommand(): aCommandId %d", aCommandId); + TRACES1("CStartupMediatorObserver::IssueCommand(): aData: %d", aData); + if (aCommandId == SecondaryDisplay::ECmdStartupSync) + { + iSyncData = aData; + } + + TPckgBuf data( aData ); + iCommandInitiator->IssueCommand( KMediatorSecondaryDisplayDomain, + SecondaryDisplay::KCatStartup, + aCommandId, + TVersion(0,0,0), + data); + + TRACES("CStartupMediatorObserver::IssueCommand(): End"); + } + +// --------------------------------------------------------- +// +// --------------------------------------------------------- +void CStartupMediatorObserver::CommandResponseL( TUid /*aDomain*/, + TUid /*aCategory*/, + TInt aCommandId, + TInt /*aStatus*/, + const TDesC8& /*aData*/ ) + { + TRACES("CStartupMediatorObserver::CommandResponseL()"); + if (aCommandId == SecondaryDisplay::ECmdStartupSync) + { +#ifndef RD_STARTUP_ANIMATION_CUSTOMIZATION + if ( iSyncData == SecondaryDisplay::EStartWelcomeAnimation ) + { + TRACES("CStartupMediatorObserver::CommandResponseL(): EStartWelcomeAnimation"); + iStartupAppUi->CoverUIWelcomeAnimationSyncOKL(); + } + else if ( iSyncData == SecondaryDisplay::EStartOperatorAnimation ) + { + TRACES("CStartupMediatorObserver::CommandResponseL(): EStartOperatorAnimation"); + iStartupAppUi->CoverUIOperatorAnimationSyncOKL(); + } + else +#endif // RD_STARTUP_ANIMATION_CUSTOMIZATION + if ( iSyncData == SecondaryDisplay::EStartStartupReady ) + { + TRACES("CStartupMediatorObserver::CommandResponseL(): EStartStartupReady"); + iStartupAppUi->CoverUIStartupReadySyncOKL(); + } + else + { + TRACES("CStartupMediatorObserver::CommandResponseL(): Unsupported command"); + } + } + + TRACES("CStartupMediatorObserver::CommandResponseL(): End"); + } + +// --------------------------------------------------------- +// +// --------------------------------------------------------- +void CStartupMediatorObserver::RaiseEvent( TUid aCategory, + TInt aEventId, + const TDesC8& aData ) + { + TRACES("CStartupMediatorObserver::RaiseEvent()"); + TRACES1("CStartupMediatorObserver::RaiseEvent(): domain :%d", KMediatorSecondaryDisplayDomain); + TRACES1("CStartupMediatorObserver::RaiseEvent(): category:%d", aCategory); + TRACES1("CStartupMediatorObserver::RaiseEvent(): event id:%d", aEventId); + TRACES1("CStartupMediatorObserver::RaiseEvent(): data :%S", &aData); + TInt err = iEventProvider->RaiseEvent( KMediatorSecondaryDisplayDomain, + aCategory, + aEventId, + TVersion(0,0,0), + aData ); + if ( err != KErrNone ) + { + TRACES1("CStartupMediatorObserver::RaiseEvent(): Error raising event: err = d", err); + } + TRACES("CStartupMediatorObserver::RaiseEvent(): End"); + } + +// End of File