os/mm/mmplugins/mmfwplugins/src/Plugin/subtitle/subtitlegraphic/mmfsubtitlegraphic.h
author sl
Tue, 10 Jun 2014 14:32:02 +0200
changeset 1 260cb5ec6c19
permissions -rw-r--r--
Update contrib.
sl@0
     1
// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
sl@0
     2
// All rights reserved.
sl@0
     3
// This component and the accompanying materials are made available
sl@0
     4
// under the terms of "Eclipse Public License v1.0"
sl@0
     5
// which accompanies this distribution, and is available
sl@0
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
sl@0
     7
//
sl@0
     8
// Initial Contributors:
sl@0
     9
// Nokia Corporation - initial contribution.
sl@0
    10
//
sl@0
    11
// Contributors:
sl@0
    12
//
sl@0
    13
// Description:
sl@0
    14
//
sl@0
    15
sl@0
    16
/**
sl@0
    17
 @file
sl@0
    18
 @publishedPartner
sl@0
    19
 @prototype
sl@0
    20
*/
sl@0
    21
sl@0
    22
#ifndef MMFSUBTITLEGRAPHIC_H
sl@0
    23
#define MMFSUBTITLEGRAPHIC_H
sl@0
    24
sl@0
    25
#include <e32std.h>
sl@0
    26
#include <w32std.h>
sl@0
    27
sl@0
    28
/** 
sl@0
    29
 * Client representation of a window-server-side subtitle drawer
sl@0
    30
*/
sl@0
    31
NONSHARABLE_CLASS(CMMFSubtitleGraphic): public CWsGraphic
sl@0
    32
    {
sl@0
    33
public:
sl@0
    34
    IMPORT_C static CMMFSubtitleGraphic* NewL();
sl@0
    35
    IMPORT_C virtual ~CMMFSubtitleGraphic();
sl@0
    36
	IMPORT_C void Clear();
sl@0
    37
	IMPORT_C TInt DrawFrame(TInt aFrameHandle, const TRect& aDirtyRegion, const TTimeIntervalMicroSeconds& aDisplayDuration);
sl@0
    38
	IMPORT_C TInt Initialize(TInt aBuffer1, TInt aBuffer2);
sl@0
    39
	IMPORT_C void Initialize();
sl@0
    40
	IMPORT_C TInt SwapFrame(TUint aExpectedBuffer, const TRect& aDirtyRegion, const TTimeIntervalMicroSeconds& aDisplayDuration);
sl@0
    41
sl@0
    42
private:
sl@0
    43
	CMMFSubtitleGraphic();
sl@0
    44
	void ConstructL();
sl@0
    45
	
sl@0
    46
	// Utility functions
sl@0
    47
	TInt CheckBitmapHandle(TInt aHandle);
sl@0
    48
	
sl@0
    49
	// From CWsGraphic
sl@0
    50
	void HandleMessage(const TDesC8 &aData);
sl@0
    51
	void OnReplace();
sl@0
    52
sl@0
    53
private:
sl@0
    54
	enum TSubtitleGraphicState
sl@0
    55
		{
sl@0
    56
		ESubtitleGraphicStateWaiting 		= 1,
sl@0
    57
		ESubtitleGraphicStateInit			= 2,
sl@0
    58
		ESubtitleGraphicStateInitSimple		= 3
sl@0
    59
		};	
sl@0
    60
		
sl@0
    61
	TSubtitleGraphicState iState;
sl@0
    62
		
sl@0
    63
	// Used to check bitmap handles.  Constructed as part of the object to avoid
sl@0
    64
	// duplicate allocation.
sl@0
    65
	CFbsBitmap* iTempBitmap;
sl@0
    66
	};
sl@0
    67
sl@0
    68
#endif