vtuis/videotelui/src/features/cvtuifeaturebase.cpp
branchRCL_3
changeset 35 779871d1e4f4
parent 0 ed9695c8bcbe
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vtuis/videotelui/src/features/cvtuifeaturebase.cpp	Wed Sep 01 12:29:12 2010 +0100
@@ -0,0 +1,116 @@
+/*
+* Copyright (c) 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:  CVtUiFeatureBase implementation.
+*
+*/
+
+
+// INCLUDE FILES
+
+#include    "cvtuifeaturebase.h"
+#include    "mvtuifeature.h"
+#include    "cvtuicommandpolicymanager.h"
+#include    <cvtlogger.h>
+#include    "cvtuifeaturemanager.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CVtUiFeatureBase::CVtUiFeatureBase
+// C++ constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CVtUiFeatureBase::CVtUiFeatureBase( TVtUiFeatureId aId,
+    CVtUiFeatureManager& aFeatureManager ) : iId( aId ), 
+    iFeatureManager ( aFeatureManager ),
+    iFeatureState ( EUnprepared )
+    {
+    __VTPRINTENTER( "CVtUiFeatureBase.CVtUiFeatureBase" )
+    __VTPRINTEXIT( "CVtUiFeatureBase.CVtUiFeatureBase" )
+    }
+
+// -----------------------------------------------------------------------------
+// CVtUiFeatureBase::BaseConstructL
+// -----------------------------------------------------------------------------
+//
+void CVtUiFeatureBase::StartL()
+	{
+	if ( iFeatureState == EUnprepared )
+		{
+		iAsyncCallback->Cancel();
+		InitFeatureL();
+		}
+	}
+
+// -----------------------------------------------------------------------------
+// CVtUiFeatureBase::BaseConstructL
+// -----------------------------------------------------------------------------
+//
+void CVtUiFeatureBase::BaseConstructL()
+    {
+    __VTPRINTENTER( "CVtUiFeatureBase.BaseConstructL" )
+    iAsyncCallback = 
+    	new ( ELeave ) CAsyncCallBack ( CActive::EPriorityLow );
+    iAsyncCallback->Set( TCallBack( &DoInitFeaturesL, this ) );
+    iAsyncCallback->CallBack(); 
+    __VTPRINTEXIT( "CVtUiFeatureBase.BaseConstructL" )
+    }
+
+// -----------------------------------------------------------------------------
+// CVtUiFeatureBase::~CVtUiFeatureBase
+// Destructor.
+// -----------------------------------------------------------------------------
+//
+CVtUiFeatureBase::~CVtUiFeatureBase()
+    {
+    __VTPRINTENTER( "CVtUiFeatureBase.~" )
+    delete iAsyncCallback;
+    __VTPRINTEXIT( "CVtUiFeatureBase.~" )
+    }
+
+// -----------------------------------------------------------------------------
+// CVtUiFeatureBase::State
+// -----------------------------------------------------------------------------
+//
+MVtUiFeature::TVtUiFeatureState CVtUiFeatureBase::State() const
+    {
+    __VTPRINTENTER( "CVtUiFeatureBase.State" )
+    __VTPRINTEXITR( "CVtUiFeatureBase.State. %d", (TInt)iFeatureState )
+    return iFeatureState;
+    }
+        
+// -----------------------------------------------------------------------------
+// CVtUiFeatureBase::Id
+// -----------------------------------------------------------------------------
+//
+TVtUiFeatureId CVtUiFeatureBase::Id() const
+    {
+    __VTPRINTENTER( "CVtUiFeatureBase.Id" )
+    __VTPRINTEXITR( "CVtUiFeatureBase.Id %d", iId )
+    return iId;
+    }
+    
+// -----------------------------------------------------------------------------
+// CVtUiFeatureBase::DoInitFeaturesL
+// -----------------------------------------------------------------------------
+//  
+TInt CVtUiFeatureBase::DoInitFeaturesL( TAny* aAny )
+    {
+    __VTPRINTENTER( "CVtUiFeatureBase.DoInitFeaturesL" )
+    CVtUiFeatureBase* self = static_cast< CVtUiFeatureBase* >( aAny );
+    self->InitFeatureL();
+    __VTPRINTEXIT( "CVtUiFeatureBase.DoInitFeaturesL" )
+    return KErrNone;
+    }