os/mm/mdfdevvideoextensions/nga_mdf_postprocessor_shai/inc/devvideosurfacehandlecustominterface.h
changeset 0 bde4ae8d615e
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/os/mm/mdfdevvideoextensions/nga_mdf_postprocessor_shai/inc/devvideosurfacehandlecustominterface.h	Fri Jun 15 03:10:57 2012 +0200
     1.3 @@ -0,0 +1,78 @@
     1.4 +/*
     1.5 +* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
     1.6 +* All rights reserved.
     1.7 +* This component and the accompanying materials are made available
     1.8 +* under the terms of "Eclipse Public License v1.0"
     1.9 +* which accompanies this distribution, and is available
    1.10 +* at the URL "http://www.eclipse.org/legal/epl-v10.html".
    1.11 +*
    1.12 +* Initial Contributors:
    1.13 +* Nokia Corporation - initial contribution.
    1.14 +*
    1.15 +* Contributors:
    1.16 +*
    1.17 +* Description:
    1.18 +*
    1.19 +*/
    1.20 +
    1.21 +#ifndef DEVVIDEOSURFACEHANDLECUSTOMINTERFACE_H
    1.22 +#define DEVVIDEOSURFACEHANDLECUSTOMINTERFACE_H
    1.23 +
    1.24 +#include <graphics/surface.h>
    1.25 +#include <mmf/common/mmfvideo.h>
    1.26 +#include <graphics/surfacemanager.h>
    1.27 +
    1.28 +/** 
    1.29 +DevVideo SurfaceHandle Custom Interface UID.
    1.30 +
    1.31 +@publishedPartner
    1.32 +@prototype
    1.33 +*/
    1.34 +const TUid KUidMMFVideoSurfaceHandleControl = { 0x10286486 };
    1.35 +
    1.36 +/**
    1.37 +Video play surface handle custom interface. This interface can be used by
    1.38 +a H/W device which creates a surface to pass the surface handle to 
    1.39 +another H/W device. Alternatively, a H/W device may create resources for the 
    1.40 +surface, for example, chunks and pass details to another H/W device to 
    1.41 +create surface based on the chunk information.
    1.42 +Typically implemented by the post processor and used by a decoder.
    1.43 +
    1.44 +@publishedPartner
    1.45 +@prototype
    1.46 +*/
    1.47 +class MMmfVideoSurfaceHandleControl
    1.48 +	{
    1.49 +	public:
    1.50 +
    1.51 +	/**
    1.52 +	@param aSurfaceHandle Surface handle for the new surface.
    1.53 +	*/
    1.54 +	virtual void MmvshcSetSurfaceHandle(const TSurfaceId& aSurfaceHandle) = 0;
    1.55 +	
    1.56 +    /**
    1.57 +    @param  aRedrawBuffer Buffer  for the  redrawing of  the last  picture. The
    1.58 +    memory of this buffer is owned  by the caller and ownerhship of  this memory
    1.59 +    is not transerred as  part of this call.  Also, the memory may  not be valid
    1.60 +    after the call completes.
    1.61 +     */
    1.62 +     virtual void MmvshcRedrawBufferToSurface(TPtrC8& aRedrawBuffer) = 0;
    1.63 +     
    1.64 +     /**
    1.65 +      This is used to get th esurface create dbased on an ixisting chunk. Typically,
    1.66 +      the chunk would be created by the caller of this method and surface would be 
    1.67 +      created by the implementer.
    1.68 +       
    1.69 +      @param aAttributes Info necessary to create surface based on existing chunk.
    1.70 +      @param aHandle Handle of the existing chunk
    1.71 +      @param aSurfaceId Surface Id created as on output of this method.
    1.72 +      
    1.73 +      @return error code 
    1.74 +      */
    1.75 +     virtual TInt MmvshcCreateSurface(const RSurfaceManager::TSurfaceCreationAttributes& aAttributes, TInt aHandle, TSurfaceId& aSurfaceId) = 0;
    1.76 +    
    1.77 +    };
    1.78 +
    1.79 +
    1.80 +#endif // DEVVIDEOSURFACEHANDLECUSTOMINTERFACE_H
    1.81 +