mmsharing/livecommsui/lcui/tsrc/mustester/Stubs/mceclientstub/src/mcedisplaysink.cpp
branchRCL_3
changeset 22 73a1feb507fb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmsharing/livecommsui/lcui/tsrc/mustester/Stubs/mceclientstub/src/mcedisplaysink.cpp	Tue Aug 31 15:12:07 2010 +0300
@@ -0,0 +1,246 @@
+/*
+* 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:  
+*
+*/
+
+
+#include "mcedisplaysink.h"
+#include "mcesession.h"
+#include "mcemediastream.h"
+#include "mcemanager.h"
+#include "mccscreen.h"
+#include "muslogger.h"
+
+#include <e32std.h>
+#include <e32cmn.h>
+
+
+#define _FLAT_DATA static_cast<CMceComDisplaySink*>( iFlatData )
+#define FLAT_DATA( data ) _FLAT_DATA->data
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CMceDisplaySink* CMceDisplaySink::NewL( CMceManager& aManager )
+    {
+    CMceDisplaySink* self = CMceDisplaySink::NewLC( aManager );
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CMceDisplaySink* CMceDisplaySink::NewLC( CMceManager& /*aManager*/ )
+    {
+    CMceDisplaySink* self = new (ELeave) CMceDisplaySink();
+    CleanupStack::PushL( self );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CMceDisplaySink* CMceDisplaySink::NewL()
+    {
+    CMceDisplaySink* self = CMceDisplaySink::NewLC();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CMceDisplaySink* CMceDisplaySink::NewLC()
+    {
+    CMceDisplaySink* self = new( ELeave )CMceDisplaySink();
+    CleanupStack::PushL( self );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CMceDisplaySink::~CMceDisplaySink()
+    {
+    delete iScreen;
+    iScreen = 0;
+    }
+
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CMceDisplaySink::EnableL()
+    {
+    MUS_LOG("CMceDisplaySink::EnableL ->")
+    CMceMediaSink::DoEnableL();   
+    if ( !iScreen )
+        {
+        TPoint pos (0,0);
+        TSize area = iDisplayRect.Size();
+        TInt index = iDisplayIndex; 
+        TInt windowOrdinalPosition = 2;
+        TInt windowOrdinalPriority = 1;
+        TSize viewFinderImageSize = iDisplayRect.Size();
+        MUS_LOG2("CMceDisplaySink::EnableL display rect height=%d width=%d )",area.iHeight,area.iWidth)        
+        iScreen =  CMccScreen::NewL( pos,area,index,windowOrdinalPosition,windowOrdinalPriority,viewFinderImageSize);
+        }
+    
+    iScreen->StartL();
+    MUS_LOG("CMceDisplaySink::EnableL <-")
+    }
+
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CMceDisplaySink::DisableL()
+    {
+    MUS_LOG("CMceDisplaySink::DisableL ->")
+    CMceMediaSink::DoDisableL();
+    if( iScreen ) iScreen->Stop();
+    MUS_LOG("CMceDisplaySink::DisableL <-")
+    }
+
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt CMceDisplaySink::DisplaysAvailable() const
+    {
+    return 1;
+    }
+
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CMceDisplaySink::SetDisplayIndexL( TInt aDisplayIndex )
+    {
+    __ASSERT_ALWAYS( aDisplayIndex >= 0 &&
+                     aDisplayIndex < this->DisplaysAvailable(),
+                     User::Leave( KErrArgument ) );
+                     
+    iDisplayIndex = aDisplayIndex;
+         
+    }   
+	    
+	    
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//    
+EXPORT_C void CMceDisplaySink::SetDisplay( RWindow& /*aWindow*/, 
+                                           CWindowGc& /*aGc*/ )
+    {
+    }
+
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CMceDisplaySink::SetDisplayRectL( const TRect& aRect )
+    {
+    iDisplayRect = aRect;
+    }
+
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+EXPORT_C const TRect CMceDisplaySink::DisplayRectL()
+    {
+    return iDisplayRect;
+    }
+
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CMceDisplaySink::SetPriorityL( TUint aPriority )
+    {
+    iDisplayPriority = aPriority; 
+    }
+
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TUint CMceDisplaySink::PriorityL()
+    {
+    return iDisplayPriority; 
+    }
+
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CMceDisplaySink::SetRotationL( TRotation aRotation )
+    {
+    iRotation = aRotation;
+    }
+		
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//	
+EXPORT_C CMceDisplaySink::TRotation CMceDisplaySink::RotationL()
+    {
+    return iRotation;
+    }
+    
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CMceDisplaySink::InitializeL( CMceManager* /*aManager*/ )
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// 
+// -----------------------------------------------------------------------------
+//
+CMceDisplaySink::CMceDisplaySink()
+    :CMceMediaSink(),
+    iDisplayIndex( 0 ),
+    iDisplayRect( TRect( 0, 0, 0, 0 ) ),
+    iDisplayPriority( 0 ),
+    iRotation( ENone )
+    {
+    iType = KMceDisplaySink;
+    }