omxil/omxilcomponentcommon/src/common/omxilspecversion.h
changeset 0 40261b775718
child 16 eedf2dcd43c6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/omxil/omxilcomponentcommon/src/common/omxilspecversion.h	Tue Feb 02 01:56:55 2010 +0200
@@ -0,0 +1,123 @@
+// Copyright (c) 2008-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:
+//
+
+
+/**
+ @file
+ @internalComponent
+*/
+
+#ifndef OMXILSPECVERSION_H
+#define OMXILSPECVERSION_H
+
+#include <e32def.h>
+#include <e32const.h>
+
+#include <openmax/il/khronos/v1_x/OMX_Types.h>
+
+class TOmxILVersion
+	{
+
+public:
+
+	inline TOmxILVersion(TUint8	aMajor,
+						 TUint8	aMinor,
+						 TUint8	aRev,
+						 TUint8	aStep);
+
+
+	inline operator OMX_VERSIONTYPE&();
+	
+#ifdef _OMXIL_COMMON_SPEC_VERSION_CHECKS_ON
+	inline TBool operator!=(const OMX_VERSIONTYPE& aVer) const;
+
+	inline TBool operator==(const OMX_VERSIONTYPE& aVer) const;
+#endif
+
+private:
+
+	OMX_VERSIONTYPE iSpecVersion;
+
+	};
+
+class TOmxILSpecVersion : public TOmxILVersion
+	{
+
+public:
+
+	static const TUint8 KSpecVersionMajor	  = OMX_VERSION_MAJOR;
+	static const TUint8 KSpecVersionMinor	  = OMX_VERSION_MINOR;
+	static const TUint8 KSpecVersionRevision  = OMX_VERSION_REVISION;
+	static const TUint8 KSpecVersionStep	  = OMX_VERSION_STEP;
+
+public:
+
+	inline TOmxILSpecVersion();
+
+	};
+
+inline
+TOmxILVersion::TOmxILVersion(TUint8	aMajor,
+							 TUint8	aMinor,
+							 TUint8	aRev,
+							 TUint8	aStep)
+	{
+	iSpecVersion.s.nVersionMajor = aMajor;
+	iSpecVersion.s.nVersionMinor = aMinor;
+	iSpecVersion.s.nRevision	 = aRev;
+	iSpecVersion.s.nStep		 = aStep;
+	}
+
+inline
+TOmxILVersion::operator OMX_VERSIONTYPE&()
+	{
+	return iSpecVersion;
+	}
+
+#ifdef _OMXIL_COMMON_SPEC_VERSION_CHECKS_ON
+inline TBool
+TOmxILVersion::operator!=(
+	const OMX_VERSIONTYPE& aVer) const
+	{
+	return !operator==(aVer);
+	}
+
+inline TBool
+TOmxILVersion::operator==(
+	const OMX_VERSIONTYPE& aVer) const
+	{
+	if (iSpecVersion.s.nVersionMajor == aVer.s.nVersionMajor		&&
+		iSpecVersion.s.nVersionMinor == aVer.s.nVersionMinor		&&
+		iSpecVersion.s.nRevision	 == aVer.s.nRevision			&&
+		iSpecVersion.s.nStep		 == aVer.s.nStep)
+		{
+		return ETrue;
+		}
+	return EFalse;
+	}
+#endif	
+
+inline
+TOmxILSpecVersion::TOmxILSpecVersion()
+	:
+	TOmxILVersion(KSpecVersionMajor,
+				  KSpecVersionMinor,
+				  KSpecVersionRevision,
+				  KSpecVersionStep)
+	{
+	}
+
+#endif // OMXILSPECVERSION_H
+