mmswadaptation/videorenderer/src/rendererutil.cpp
changeset 0 40261b775718
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmswadaptation/videorenderer/src/rendererutil.cpp	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,98 @@
+// Copyright (c) 2007-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:
+//
+
+#include <mmf/devvideo/devvideobase.h>
+#include "rendererutil.h"
+
+/** Convert TVideoRendererPixelFormat pixel format from resource file to uncompressed video format */
+TUncompressedVideoFormat VideoRendererUtil::ConvertPixelFormatToUncompressedVideoFormatL(TVideoRendererPixelFormat aPixelFormat)
+	{
+	TUncompressedVideoFormat ret;
+	
+	switch (aPixelFormat)
+		{
+	case EVideoRendererPixelFormatXRGB_8888:
+		ret.iDataFormat = ERgbRawData;
+		ret.iRgbFormat = ERgb32bit888;
+		break;
+	case EVideoRendererPixelFormatRGB_565:
+		ret.iDataFormat = ERgbRawData;
+		ret.iRgbFormat = ERgb16bit565;
+		break;
+	case EVideoRendererPixelFormatXRGB_4444:
+		ret.iDataFormat = ERgbRawData;
+		ret.iRgbFormat = ERgb16bit444;
+		break;
+	default:
+		DEBUGPRINT2(_L("VideoRendererUtil::ConvertPixelFormatToUncompressedVideoFormatL aPixelFormat=%d"), aPixelFormat);
+		User::Leave(KErrNotSupported);
+		}
+	
+	return ret;
+	}
+
+/** Convert TUidPixelFormat pixel format to uncompressed video format */
+TUncompressedVideoFormat VideoRendererUtil::ConvertUidPixelFormatToUncompressedVideoFormatL(TUidPixelFormat aUidPixelFormat)
+	{
+	return ConvertPixelFormatToUncompressedVideoFormatL(static_cast<TVideoRendererPixelFormat>(aUidPixelFormat));
+	}
+
+/** Convert uncompressed video format to TUidPixelFormat pixel format */
+TUidPixelFormat VideoRendererUtil::ConvertUncompressedVideoFormatToUidPixelFormatL(const TUncompressedVideoFormat& aFormat)
+	{
+	TUidPixelFormat ret = EUidPixelFormatUnknown;
+	
+	if (aFormat.iDataFormat != ERgbRawData)
+		{
+		DEBUGPRINT2(_L("VideoRendererUtil::ConvertUncompressedVideoFormatToUidPixelFormat iDataFormat=%d"), aFormat.iDataFormat);
+		User::Leave(KErrNotSupported);
+		}
+	
+	switch (aFormat.iRgbFormat)
+		{
+	case ERgb32bit888:
+		ret = EUidPixelFormatXRGB_8888;
+		break;
+	case ERgb16bit565:
+		ret = EUidPixelFormatRGB_565;
+		break;
+	case ERgb16bit444:
+		ret = EUidPixelFormatXRGB_4444;
+		break;
+	default:
+		DEBUGPRINT2(_L("VideoRendererUtil::ConvertUncompressedVideoFormatToUidPixelFormatL iRgbFormat=%d"), aFormat.iRgbFormat);
+		User::Leave(KErrNotSupported);
+		}
+
+	return ret;
+	}
+
+/** return the bytes per pixel for a uid pixel format */
+TInt VideoRendererUtil::BytesPerPixelL(TUidPixelFormat aPixelFormat)
+	{
+	switch (aPixelFormat)
+		{
+	case EUidPixelFormatXRGB_4444:
+	case EUidPixelFormatRGB_565:
+		return 2;
+	case EUidPixelFormatXRGB_8888:
+		return 4;
+	default:
+		DEBUGPRINT2(_L("VideoRendererUtil::BytesPerPixelL aPixelFormat=%d"), aPixelFormat);
+		User::Leave(KErrNotSupported);
+		}
+	
+	return 0; // to remove compile warning
+	}