khronosfws/openmax_al/src/mmf_adaptation/xangavideosink.cpp
changeset 53 eabc8c503852
parent 48 a493a607b5bf
--- a/khronosfws/openmax_al/src/mmf_adaptation/xangavideosink.cpp	Fri Sep 03 19:34:12 2010 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-/*
-* Copyright (c) 2009 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: 
-*
-*/
-/*
-Media Helper Class for handling surface events
-
-Shy Ward
-*/
-
-#include "xangavideosink.h"
-#include "openmaxalwrapper.h"
-
-
-CNgaVideoSink* CNgaVideoSink::NewL()
-{
-	CNgaVideoSink* self = new CNgaVideoSink();
-	self->ConstructL();
-	return self;
-}
-
-CNgaVideoSink::~CNgaVideoSink()
-{
-    RemoveWindow();
-    
-    delete iMediaClientVideoDisplay;
-    if(IsActive())
-    {
-    Cancel();
-    }	
-}
-    
-void CNgaVideoSink::RemoveWindow()
-    {
-    iMediaClientVideoDisplay->RemoveDisplayWindow(*m_pWindow);
-    }
-
-CNgaVideoSink::CNgaVideoSink()
-                  :CActive(EPriorityStandard)
-{
-	iMediaClientVideoDisplay = NULL;
-  CActiveScheduler::Add(this);
-  m_ThreadHandle.Duplicate(RThread());
-  m_MediaHelperInitialized = EInitializedReady;
-  m_rotation = EVideoRotationNone;
-  m_scaleWidth = (100.0f);
-  m_scaleHeight = (100.0f);
-  m_horizPos = (EHorizontalAlignCenter);
-  m_vertPos = (EVerticalAlignCenter);      
-}
-
-void CNgaVideoSink::RunL()
-{
-	  iMediaClientVideoDisplay->SurfaceCreated(m_surfaceId,m_cropRect,m_pixelAspectRatio,m_cropRegion);	
-}
-
-void CNgaVideoSink::Activate()
-{
-    if(!IsActive())
-    {
-        iStatus = KRequestPending;
-        SetActive();
-    }
-}
-
-void CNgaVideoSink::DoCancel()
-{
-      if(iStatus.Int() == KRequestPending)
-      {
-          TRequestStatus* pStatus = &iStatus;
-          m_ThreadHandle.RequestComplete(pStatus, KErrCancel);
-    }
-}
-
-void CNgaVideoSink::CompleteRequest(TInt status)
-{
-    // Checking for IsActive alone results in this block getting executed 
-    // from other thread more thanone time. Hence the chk for iStatus
-    if(IsActive() && iStatus == KRequestPending)
-    {
-        TRequestStatus* pStatus = &iStatus;
-        m_ThreadHandle.RequestComplete(pStatus, status);
-    }
-}
-
-void CNgaVideoSink::SurfaceCreated(int surfaceid0,int surfaceid1,int surfaceid2,int surfaceid3,int crop_rect_tl_x,
-                     									 int crop_rect_tl_y,int crop_rect_br_x,int crop_rect_br_y,int aspect_ratio_num,int aspect_ratio_denom)
-{
-   
-   m_surfaceId.iInternal[0] = surfaceid0;
-   m_surfaceId.iInternal[1] = surfaceid1;
-   m_surfaceId.iInternal[2] = surfaceid2;
-   m_surfaceId.iInternal[3] = surfaceid3;
-   m_cropRect.iTl.iX = crop_rect_tl_x;
-   m_cropRect.iTl.iY = crop_rect_tl_y;
-   m_cropRect.iBr.iX = crop_rect_br_x;
-   m_cropRect.iBr.iY = crop_rect_br_y;
-   m_pixelAspectRatio.iNumerator = aspect_ratio_num;
-   m_pixelAspectRatio.iDenominator = aspect_ratio_denom;  
-   
-   Activate();
-   CompleteRequest(KErrNone);
-   	
-}
-
-void CNgaVideoSink::ConstructL()
-{
-	iMediaClientVideoDisplay = CMediaClientVideoDisplay::NewL(0);
-	Activate();
-} 
-
-void CNgaVideoSink::SetNativeDisplayInformation(void* display_info)
-{
-	//display_info is of type XADataSink
-	//display_info.pLocator is of type XADataLocator_NativeDisplay
-	XADataLocator_NativeDisplay* nativeDisplay;
-	XADataSink* videoSink = (XADataSink*)display_info;
-	
-	nativeDisplay = (XADataLocator_NativeDisplay*) (videoSink->pLocator);
-	//TODO: scrDevice is not been passed Properly
-  // Add the display window
-  m_cropRegion = TRect(((RWindow*)(nativeDisplay->hWindow))->Size());
-  m_videoExtent = TRect(((RWindow*)(nativeDisplay->hWindow))->Size());
-  m_cropRect = TRect(((RWindow*)(nativeDisplay->hWindow))->Size());
-  m_clipRect = TRect(((RWindow*)(nativeDisplay->hWindow))->Size());
-  m_cropRegion = TRect(((RWindow*)(nativeDisplay->hWindow))->Size());
-  m_pWindow = ((RWindow*)(nativeDisplay->hWindow));
-  
-
-  TRAPD(err, iMediaClientVideoDisplay->AddDisplayWindowL(m_pWindow, m_clipRect, m_cropRegion, m_videoExtent, m_scaleWidth, m_scaleHeight,
-                                               m_rotation, EAutoScaleBestFit, m_horizPos, m_vertPos, m_pWindow));  
-
-}
-
-extern "C" {
-
-    void* nga_video_sink_init()
-    { 
-          return CNgaVideoSink::NewL();
-    }
-        
-    void surface_created(void* context,int surfaceid0,int surfaceid1,int surfaceid2,int surfaceid3,int crop_rect_tl_x,
-                         									int crop_rect_tl_y,int crop_rect_br_x,int crop_rect_br_y,int aspect_ratio_num,int aspect_ratio_denom)
-    {
-            ((CNgaVideoSink*)(context))->SurfaceCreated(surfaceid0,surfaceid1,surfaceid2,surfaceid3,crop_rect_tl_x,
-                         									                  crop_rect_tl_y,crop_rect_br_x,crop_rect_br_y,aspect_ratio_num,aspect_ratio_denom);
-    }
-        
-    void  setup_native_display(void* context, void* display_info)
-    {
-            ((CNgaVideoSink*)(context))->SetNativeDisplayInformation(display_info);
-    }
-
-}