os/mm/mmlibs/mmfw/tsrc/mmfunittest/videorenderer/src/testrupdatesession.cpp
author sl@SLION-WIN7.fritz.box
Fri, 15 Jun 2012 03:10:57 +0200
changeset 0 bde4ae8d615e
permissions -rw-r--r--
First public contribution.
     1 // Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 //
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
    10 //
    11 // Contributors:
    12 //
    13 // Description:
    14 //
    15 
    16 #include <graphics/surfaceupdateclient.h>
    17 #include <graphics/surface.h>
    18 #include <graphics/suerror.h>
    19 #include "testgceharness.h"
    20 
    21 inline void SurfaceUpdateAssert(TInt aCond)	{__ASSERT_ALWAYS(aCond, User::Panic(_L("surfaceupdateclient.cpp; assertion failed"), __LINE__));}
    22 
    23 EXPORT_C RSurfaceUpdateSession::RSurfaceUpdateSession() :
    24 	RSessionBase(), 
    25 	iStatusAvailable(NULL), iStatusDisplayed(NULL), iStatusDisplayedXTimes(NULL)
    26 	{
    27 	}
    28 
    29 EXPORT_C TInt RSurfaceUpdateSession::Connect(TInt /*aMessageSlots*/)
    30 	{
    31 	iStatusAvailable = NULL;
    32 	iStatusDisplayed = NULL;
    33 	iStatusDisplayedXTimes = NULL;
    34 
    35 	CTestGCEHarness* gceHarness = NULL;
    36 	TRAPD(err, gceHarness = CTestGCEHarness::RetrieveL());
    37 	if(err != KErrNone)
    38 		{
    39 		return err;
    40 		}
    41 	return gceHarness->Connect();
    42 	}
    43 
    44 EXPORT_C void RSurfaceUpdateSession::Close()	
    45 	{
    46 	iStatusAvailable = NULL;
    47 	iStatusDisplayed = NULL;
    48 	iStatusDisplayedXTimes = NULL;
    49 	
    50 	CTestGCEHarness* gceHarness = NULL;
    51 	TRAPD(err, gceHarness = CTestGCEHarness::RetrieveL());
    52 	if(err != KErrNone)
    53 		{
    54 		return;
    55 		}
    56 	gceHarness->Close();
    57 	}
    58 
    59 EXPORT_C TInt RSurfaceUpdateSession::SubmitUpdate(TInt aScreen, const TSurfaceId& aSurfaceId, 
    60 									TInt aBuffer, const TRegion* /*aDirtyRegion*/)
    61 	{
    62 	if(aScreen != KAllScreens || aBuffer < 0 || aSurfaceId.IsNull())
    63 		{
    64 		IssueRequestComplete(KErrArgument);
    65         return KErrArgument;
    66         }
    67 
    68 	CTestGCEHarness* gceHarness = NULL;
    69 	TRAPD(err, gceHarness = CTestGCEHarness::RetrieveL());
    70 	if(err != KErrNone)
    71 		{
    72 		return err;
    73 		}
    74 	return gceHarness->SubmitUpdate(aBuffer);
    75 	}
    76 
    77 EXPORT_C void RSurfaceUpdateSession::NotifyWhenAvailable(TRequestStatus& aStatus)
    78 	{
    79 	CTestGCEHarness* gceHarness = NULL;
    80 	TRAPD(err, gceHarness = CTestGCEHarness::RetrieveL());
    81 
    82 	if(err != KErrNone)
    83 		{
    84 		return;
    85 		}
    86 	
    87 	gceHarness->NotifyWhenAvailable(aStatus);
    88 	}
    89 	
    90 EXPORT_C void RSurfaceUpdateSession::NotifyWhenDisplayed(TRequestStatus& aStatus, TTimeStamp& aTimeStamp)
    91 	{
    92 	CTestGCEHarness* gceHarness = NULL;
    93 	TRAPD(err, gceHarness = CTestGCEHarness::RetrieveL());
    94 
    95 	if(err != KErrNone)
    96 		{
    97 		return;
    98 		}
    99 
   100 	gceHarness->NotifyWhenDisplayed(aStatus, aTimeStamp);
   101 	}
   102 
   103 EXPORT_C void RSurfaceUpdateSession::NotifyWhenDisplayedXTimes(TInt aCount, TRequestStatus &aStatus)
   104 	{
   105 	iStatusDisplayedXTimes = &aStatus;
   106 	//we will check aCount validity at submission time (in SubmitUpdate)
   107 	iCount = aCount;
   108 	}
   109 
   110 EXPORT_C void RSurfaceUpdateSession::CancelAllUpdateNotifications()
   111 	{
   112 	CTestGCEHarness* gceHarness = NULL;
   113 	TRAPD(err, gceHarness = CTestGCEHarness::RetrieveL());
   114 	if(err != KErrNone)
   115 		{
   116 		return;
   117 		}
   118 	gceHarness->CancelAllNotifications();
   119 	}
   120 	
   121 TVersion RSurfaceUpdateSession::Version() const
   122 	{
   123 	return (TVersion(1, 1, 1));
   124 	}
   125 
   126 void RSurfaceUpdateSession::IssueRequestComplete(TInt /*aErr*/)
   127 	{
   128 	}