From 88695159e16bdfb8424de99d482adf332a93740d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomi=20Korpip=C3=A4=C3=A4?= Date: Thu, 26 Sep 2013 09:17:09 +0300 Subject: Kinect surface added to tests - theme changing etc. to be added Change-Id: I26e72757c90b450aeeecf89ffdf39d312f6c2769 Reviewed-by: Miikka Heikkinen --- .../OpenNI/Include/XnStringsHashT.h | 90 ++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 tests/kinectsurface/QtKinectWrapper/OpenNI/Include/XnStringsHashT.h (limited to 'tests/kinectsurface/QtKinectWrapper/OpenNI/Include/XnStringsHashT.h') diff --git a/tests/kinectsurface/QtKinectWrapper/OpenNI/Include/XnStringsHashT.h b/tests/kinectsurface/QtKinectWrapper/OpenNI/Include/XnStringsHashT.h new file mode 100644 index 00000000..57602211 --- /dev/null +++ b/tests/kinectsurface/QtKinectWrapper/OpenNI/Include/XnStringsHashT.h @@ -0,0 +1,90 @@ +#ifndef _XN_STRINGS_HASH_T_H_ +#define _XN_STRINGS_HASH_T_H_ + +//--------------------------------------------------------------------------- +// Includes +//--------------------------------------------------------------------------- +#include "XnHashT.h" + +//--------------------------------------------------------------------------- +// Code +//--------------------------------------------------------------------------- +class XnStringsHashKeyManager +{ +public: + static XnHashCode Hash(const XnChar* const& key) + { + XnUInt32 nCRC = 0; + xnOSStrCRC32(key, &nCRC); + + // convert from UINT32 to XnHashValue + return nCRC % (1 << (sizeof(XnHashCode)*8)); + } + + static XnInt32 Compare(const XnChar* const& key1, const XnChar* const& key2) + { + return strcmp(key1, key2); + } +}; + +template +class XnStringsNodeAllocator +{ +public: + typedef XnKeyValuePair TPair; + typedef XnLinkedNodeT TLinkedNode; + + static TLinkedNode* Allocate(TPair const& pair) + { + XnChar* pKeyCopy = xnOSStrDup(pair.Key()); + if (pKeyCopy == NULL) + { + return NULL; + } + + return XN_NEW(TLinkedNode, TPair(pKeyCopy, pair.Value())); + } + + static void Deallocate(TLinkedNode* pNode) + { + XN_ASSERT(pNode != NULL); + XN_ASSERT(pNode->value.Key() != NULL); + + xnOSFree(pNode->value.Key()); + XN_DELETE(pNode); + } +}; + +template +class XnStringsHashT : public XnHashT > +{ + typedef XnHashT > Base; + +public: + XnStringsHashT() : Base() {} + + XnStringsHashT(const XnStringsHashT& other) : Base() + { + *this = other; + } + + XnStringsHashT& operator=(const XnStringsHashT& other) + { + Base::operator=(other); + // no other members + return *this; + } +}; + +class XnStringsSet : public XnStringsHashT +{ + typedef XnStringsHashT Base; + +public: + XnStatus Set(const XnChar* key) + { + return Base::Set(key, NULL); + } +}; + +#endif // _XN_STRINGS_HASH_T_H_ \ No newline at end of file -- cgit v1.2.3