williamr@2: // Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // include\mmf\server\mmfvideoframebuffer.h williamr@2: // williamr@2: // williamr@2: williamr@2: williamr@2: #ifndef __MMF_SERVER_VIDEOFRAMEBUFFER_H__ williamr@2: #define __MMF_SERVER_VIDEOFRAMEBUFFER_H__ williamr@2: williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @deprecated williamr@2: williamr@2: Class to store a frame of video data using an EPOC bitmap (RGB data). williamr@2: */ williamr@2: class CMMFBitmapFrameBuffer : public CMMFBuffer williamr@2: { williamr@2: public: williamr@2: IMPORT_C ~CMMFBitmapFrameBuffer(); williamr@2: IMPORT_C static CMMFBitmapFrameBuffer* NewL(const TSize& aSize,TDisplayMode aDisplayMode); williamr@2: IMPORT_C static CMMFBitmapFrameBuffer* NewL(TInt aBitmapHandle); williamr@2: inline TUint BufferSize() const; williamr@2: inline CFbsBitmap* Data(); williamr@2: private: williamr@2: CMMFBitmapFrameBuffer() : CMMFBuffer(KUidMmfBitmapFrameBuffer) {}; williamr@2: void ConstructL(); williamr@2: private: williamr@2: CFbsBitmap* iFrame; williamr@2: }; williamr@2: williamr@2: /** williamr@2: Dummy implementation. Not applicable to bitmap frame data. williamr@2: williamr@2: @return Always zero for bitmap frames williamr@2: */ williamr@2: inline TUint CMMFBitmapFrameBuffer::BufferSize() const williamr@2: { williamr@2: return 0; //Not applicable to bitmap williamr@2: } williamr@2: williamr@2: /** williamr@2: Retrieves the frame data. williamr@2: williamr@2: @return A pointer to a bitmap containing the frame data. williamr@2: */ williamr@2: inline CFbsBitmap* CMMFBitmapFrameBuffer::Data() williamr@2: { williamr@2: if (iFrame) return iFrame; williamr@2: else return NULL; williamr@2: } williamr@2: williamr@2: williamr@2: /** williamr@2: @publishedAll williamr@2: @deprecated williamr@2: williamr@2: Class to store a frame of video data using YUV data instead of an EPOC bitmap. williamr@2: */ williamr@2: class CMMFYUVBuffer : public CMMFBuffer williamr@2: { williamr@2: public: williamr@2: IMPORT_C static CMMFYUVBuffer* NewL(); williamr@2: IMPORT_C ~CMMFYUVBuffer(); williamr@2: inline TUint BufferSize() const; williamr@2: private: williamr@2: CMMFYUVBuffer() : CMMFBuffer(KUidMmfYUVBuffer) {}; williamr@2: void ConstructL(); williamr@2: public: williamr@2: /** The buffer to hold the YUV data */ williamr@2: HBufC8* iYUVBuffer; williamr@2: /** The size of a pixel */ williamr@2: TSize iPixelSize; williamr@2: private: williamr@2: }; williamr@2: williamr@2: /** williamr@2: Returns the buffer size. williamr@2: williamr@2: @return The buffer size. williamr@2: */ williamr@2: inline TUint CMMFYUVBuffer::BufferSize() const williamr@2: { williamr@2: return iYUVBuffer->Size(); williamr@2: } williamr@2: williamr@2: #endif