summaryrefslogtreecommitdiffstats
path: root/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnEvent.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnEvent.h')
-rw-r--r--tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnEvent.h301
1 files changed, 0 insertions, 301 deletions
diff --git a/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnEvent.h b/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnEvent.h
deleted file mode 100644
index f915b6aa..00000000
--- a/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnEvent.h
+++ /dev/null
@@ -1,301 +0,0 @@
-/****************************************************************************
-* *
-* OpenNI 1.x Alpha *
-* Copyright (C) 2011 PrimeSense Ltd. *
-* *
-* This file is part of OpenNI. *
-* *
-* OpenNI is free software: you can redistribute it and/or modify *
-* it under the terms of the GNU Lesser General Public License as published *
-* by the Free Software Foundation, either version 3 of the License, or *
-* (at your option) any later version. *
-* *
-* OpenNI is distributed in the hope that it will be useful, *
-* but WITHOUT ANY WARRANTY; without even the implied warranty of *
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
-* GNU Lesser General Public License for more details. *
-* *
-* You should have received a copy of the GNU Lesser General Public License *
-* along with OpenNI. If not, see <http://www.gnu.org/licenses/>. *
-* *
-****************************************************************************/
-#ifndef __XN_EVENT_H__
-#define __XN_EVENT_H__
-
-//---------------------------------------------------------------------------
-// Includes
-//---------------------------------------------------------------------------
-#include "XnCallback.h"
-#include "XnList.h"
-#include "XnTypes.h"
-#include "XnOSCpp.h"
-
-//---------------------------------------------------------------------------
-// Types
-//---------------------------------------------------------------------------
-class XnEventInterface
-{
-public:
- XnEventInterface() {}
- virtual ~XnEventInterface() {}
-
- typedef XnStatus (XN_CALLBACK_TYPE* HandlerPtr)(void* pCookie);
-
- virtual XnStatus Register(HandlerPtr pFunc, void* pCookie, XnCallbackHandle* pHandle = NULL) = 0;
- virtual XnStatus Unregister(XnCallbackHandle handle) = 0;
-};
-
-class XnEvent : public XnEventInterface
-{
-public:
- XnEvent() : m_hLock(0)
- {
- xnOSCreateCriticalSection(&m_hLock);
- }
-
- virtual ~XnEvent()
- {
- Clear();
- xnOSCloseCriticalSection(&m_hLock);
- }
-
- XnStatus Register(HandlerPtr pFunc, void* pCookie, XnCallbackHandle* pHandle)
- {
- XnStatus nRetVal = XN_STATUS_OK;
-
- XN_VALIDATE_INPUT_PTR(pFunc);
-
- XnCallback* pCallback = NULL;
- XN_VALIDATE_NEW(pCallback, XnCallback, (XnFuncPtr)pFunc, pCookie);
-
- // always add to list of added (actual list will be updated in Raise method, to allow registering
- // from a callback).
- {
- XnAutoCSLocker lock(m_hLock);
- nRetVal = m_ToBeAdded.AddLast(pCallback);
- }
-
- if (nRetVal != XN_STATUS_OK)
- {
- XN_DELETE(pCallback);
- return (nRetVal);
- }
-
- // return handle
- if (pHandle != NULL)
- {
- *pHandle = pCallback;
- }
-
- return XN_STATUS_OK;
- }
-
- XnStatus Unregister(XnCallbackHandle handle)
- {
- XnStatus nRetVal = XN_STATUS_OK;
-
- XnCallback* pObject = (XnCallback*)handle;
-
- // add it to a temp list, to allow unregistering from a callback (actual list will be updated in raise
- // function).
- {
- XnAutoCSLocker lock(m_hLock);
-
- // try to remove it from the ToBeAdded list.
- if (!RemoveCallback(m_ToBeAdded, pObject))
- {
- // it's not in this list, so it's probably in the main list
- nRetVal = m_ToBeRemoved.AddLast(pObject);
- }
- }
- XN_IS_STATUS_OK(nRetVal);
-
- return XN_STATUS_OK;
- }
-
- XnStatus Clear()
- {
- ApplyListChanges();
-
- for (XnCallbackPtrList::ConstIterator it = m_Handlers.begin(); it != m_Handlers.end(); ++it)
- {
- XnCallback* pCallback = *it;
- XN_DELETE(pCallback);
- }
-
- m_Handlers.Clear();
- m_ToBeRemoved.Clear();
- m_ToBeAdded.Clear();
- return (XN_STATUS_OK);
- }
-
-protected:
- XnStatus ApplyListChanges()
- {
- // first add all
- for (XnCallbackPtrList::ConstIterator it = m_ToBeAdded.begin(); it != m_ToBeAdded.end(); ++it)
- {
- m_Handlers.AddLast(*it);
- }
- m_ToBeAdded.Clear();
-
- // and now remove
- for (XnCallbackPtrList::ConstIterator it = m_ToBeRemoved.begin(); it != m_ToBeRemoved.end(); ++it)
- {
- XnCallback* pCallback = *it;
- RemoveCallback(m_Handlers, pCallback);
- }
- m_ToBeRemoved.Clear();
-
- return (XN_STATUS_OK);
- }
-
-#if (XN_PLATFORM == XN_PLATFORM_WIN32)
-#pragma warning (push)
-#pragma warning (disable: 4127)
-#endif
-
- XN_DECLARE_LIST(XnCallback*, XnCallbackPtrList)
-
-#if (XN_PLATFORM == XN_PLATFORM_WIN32)
-#pragma warning (pop)
-#endif
-
- XN_CRITICAL_SECTION_HANDLE m_hLock;
- XnCallbackPtrList m_Handlers;
- XnCallbackPtrList m_ToBeAdded;
- XnCallbackPtrList m_ToBeRemoved;
-
-private:
- XnBool RemoveCallback(XnCallbackPtrList& list, XnCallback* pCallback)
- {
- XnCallbackPtrList::Iterator handlerIt = list.Find(pCallback);
- if (handlerIt != list.end())
- {
- list.Remove(handlerIt);
- XN_DELETE(pCallback);
- return TRUE;
- }
-
- return FALSE;
- }
-};
-
-#define _XN_RAISE_WITH_RET_CODE(args) \
- { \
- XnStatus nRetVal = pFunc(args pCallback->pCookie); \
- if (nRetVal != XN_STATUS_OK) \
- { \
- XnEvent::ApplyListChanges(); \
- return (nRetVal); \
- } \
- }
-
-#define _XN_RAISE_NO_RET_CODE(args) \
- pFunc(args pCallback->pCookie);
-
-/**
-* Declares a class inheriting from XnEvent, that can be used as an event with specific signature.
-* It is highly recommended not to use this macro directly.
-*/
-#define _XN_DECLARE_EVENT_CLASS(_class, _interface, _retVal, _raise, _signature, _raise_sign) \
- XN_PRAGMA_START_DISABLED_WARNING_SECTION(XN_HIDES_PARENT_METHOD_WARNING_ID) \
- class _interface : protected XnEvent \
- { \
- public: \
- typedef _retVal (XN_CALLBACK_TYPE* HandlerPtr)(_signature); \
- virtual XnStatus Register(HandlerPtr pFunc, void* pCookie, XnCallbackHandle* pHandle = NULL) = 0; \
- virtual XnStatus Unregister(XnCallbackHandle handle) = 0; \
- }; \
- class _class : public _interface \
- { \
- public: \
- XnStatus Register(HandlerPtr pFunc, void* pCookie, XnCallbackHandle* pHandle = NULL) \
- { \
- return XnEvent::Register((XnEvent::HandlerPtr)pFunc, pCookie, pHandle); \
- } \
- XnStatus Unregister(XnCallbackHandle handle) \
- { \
- return XnEvent::Unregister(handle); \
- } \
- XnStatus Raise(_raise_sign) \
- { \
- XnAutoCSLocker lock(m_hLock); \
- XnEvent::ApplyListChanges(); \
- XnEvent::XnCallbackPtrList::Iterator it = XnEvent::m_Handlers.begin(); \
- for (; it != XnEvent::m_Handlers.end(); ++it) \
- { \
- XnCallback* pCallback = *it; \
- HandlerPtr pFunc = (HandlerPtr)pCallback->pFuncPtr; \
- _raise \
- } \
- XnEvent::ApplyListChanges(); \
- return (XN_STATUS_OK); \
- } \
- XnStatus Clear() { return XnEvent::Clear(); } \
- }; \
- XN_PRAGMA_STOP_DISABLED_WARNING_SECTION
-
-
-#define _XN_SIGNATURE_0ARG()
-#define _XN_FULL_SIGNATURE_0ARG() void* pCookie
-#define _XN_ARGS_0ARG()
-
-#define _XN_SIGNATURE_1ARG(_type1, _name1) _type1 _name1
-#define _XN_FULL_SIGNATURE_1ARG(_type1, _name1) _type1 _name1, void* pCookie
-#define _XN_ARGS_1ARG(_name1) _name1,
-
-#define _XN_SIGNATURE_2ARG(_type1, _name1, _type2, _name2) _type1 _name1, _type2 _name2
-#define _XN_FULL_SIGNATURE_2ARG(_type1, _name1, _type2, _name2) _type1 _name1, _type2 _name2, void* pCookie
-#define _XN_ARGS_2ARG(_name1, _name2) _name1, _name2,
-
-#define _XN_SIGNATURE_3ARG(_type1, _name1, _type2, _name2, _type3, _name3) _type1 _name1, _type2 _name2, _type3 _name3
-#define _XN_FULL_SIGNATURE_3ARG(_type1, _name1, _type2, _name2, _type3, _name3) _type1 _name1, _type2 _name2, _type3 _name3, void* pCookie
-#define _XN_ARGS_3ARG(_name1, _name2, _name3) _name1, _name2, _name3,
-
-#define _XN_SIGNATURE_4ARG(_type1, _name1, _type2, _name2, _type3, _name3, _type4, _name4) _type1 _name1, _type2 _name2, _type3 _name3, _type4 _name4
-#define _XN_FULL_SIGNATURE_4ARG(_type1, _name1, _type2, _name2, _type3, _name3, _type4, _name4) _type1 _name1, _type2 _name2, _type3 _name3, _type4 _name4, void* pCookie
-#define _XN_ARGS_4ARG(_name1, _name2, _name3, _name4) _name1, _name2, _name3, _name4,
-
-#define _XN_SIGNATURE_5ARG(_type1, _name1, _type2, _name2, _type3, _name3, _type4, _name4, _type5, _name5) _type1 _name1, _type2 _name2, _type3 _name3, _type4 _name4, _type5 _name5
-#define _XN_FULL_SIGNATURE_5ARG(_type1, _name1, _type2, _name2, _type3, _name3, _type4, _name4, _type5, _name5) _type1 _name1, _type2 _name2, _type3 _name3, _type4 _name4, _type5 _name5, void* pCookie
-#define _XN_ARGS_5ARG(_name1, _name2, _name3, _name4, _name5) _name1, _name2, _name3, _name4, _name5,
-
-/** Declares an event class */
-#define XN_DECLARE_EVENT_0ARG(_class, _interface) \
- _XN_DECLARE_EVENT_CLASS(_class, _interface, void, _XN_RAISE_NO_RET_CODE(_XN_ARGS_0ARG()), _XN_FULL_SIGNATURE_0ARG(), _XN_SIGNATURE_0ARG())
-
-#define XN_DECLARE_EVENT_0ARG_RETVAL(_class, _interface) \
- _XN_DECLARE_EVENT_CLASS(_class, _interface, XnStatus, _XN_RAISE_WITH_RET_CODE(_XN_ARGS_0ARG()), _XN_FULL_SIGNATURE_0ARG(), _XN_SIGNATURE_0ARG())
-
-#define XN_DECLARE_EVENT_1ARG(_class, _interface, _type1, _name1) \
- _XN_DECLARE_EVENT_CLASS(_class, _interface, void, _XN_RAISE_NO_RET_CODE(_XN_ARGS_1ARG(_name1)), _XN_FULL_SIGNATURE_1ARG(_type1, _name1), _XN_SIGNATURE_1ARG(_type1, _name1))
-
-#define XN_DECLARE_EVENT_1ARG_RETVAL(_class, _interface, _type1, _name1) \
- _XN_DECLARE_EVENT_CLASS(_class, _interface, XnStatus, _XN_RAISE_WITH_RET_CODE(_XN_ARGS_1ARG(_name1)), _XN_FULL_SIGNATURE_1ARG(_type1, _name1), _XN_SIGNATURE_1ARG(_type1, _name1))
-
-#define XN_DECLARE_EVENT_2ARG(_class, _interface, _type1, _name1, _type2, _name2) \
- _XN_DECLARE_EVENT_CLASS(_class, _interface, void, _XN_RAISE_NO_RET_CODE(_XN_ARGS_2ARG(_name1, _name2)), _XN_FULL_SIGNATURE_2ARG(_type1, _name1, _type2, _name2), _XN_SIGNATURE_2ARG(_type1, _name1, _type2, _name2))
-
-#define XN_DECLARE_EVENT_2ARG_RETVAL(_class, _interface, _type1, _name1, _type2, _name2) \
- _XN_DECLARE_EVENT_CLASS(_class, _interface, XnStatus, _XN_RAISE_WITH_RET_CODE(_XN_ARGS_2ARG(_name1, _name2)), _XN_FULL_SIGNATURE_2ARG(_type1, _name1, _type2, _name2), _XN_SIGNATURE_2ARG(_type1, _name1, _type2, _name2))
-
-#define XN_DECLARE_EVENT_3ARG(_class, _interface, _type1, _name1, _type2, _name2, _type3, _name3) \
- _XN_DECLARE_EVENT_CLASS(_class, _interface, void, _XN_RAISE_NO_RET_CODE(_XN_ARGS_3ARG(_name1, _name2, _name3)), _XN_FULL_SIGNATURE_3ARG(_type1, _name1, _type2, _name2, _type3, _name3), _XN_SIGNATURE_3ARG(_type1, _name1, _type2, _name2, _type3, _name3))
-
-#define XN_DECLARE_EVENT_3ARG_RETVAL(_class, _interface, _type1, _name1, _type2, _name2, _type3, _name3) \
- _XN_DECLARE_EVENT_CLASS(_class, _interface, XnStatus, _XN_RAISE_WITH_RET_CODE(_XN_ARGS_3ARG(_name1, _name2, _name3)), _XN_FULL_SIGNATURE_3ARG(_type1, _name1, _type2, _name2, _type3, _name3), _XN_SIGNATURE_3ARG(_type1, _name1, _type2, _name2, _type3, _name3))
-
-#define XN_DECLARE_EVENT_4ARG(_class, _interface, _type1, _name1, _type2, _name2, _type3, _name3, _type4, _name4) \
- _XN_DECLARE_EVENT_CLASS(_class, _interface, void, _XN_RAISE_NO_RET_CODE(_XN_ARGS_4ARG(_name1, _name2, _name3, _name4)), _XN_FULL_SIGNATURE_4ARG(_type1, _name1, _type2, _name2, _type3, _name3, _type4, _name4), _XN_SIGNATURE_4ARG(_type1, _name1, _type2, _name2, _type3, _name3, _type4, _name4))
-
-#define XN_DECLARE_EVENT_4ARG_RETVAL(_class, _interface, _type1, _name1, _type2, _name2, _type3, _name3, _type4, _name4) \
- _XN_DECLARE_EVENT_CLASS(_class, _interface, XnStatus, _XN_RAISE_WITH_RET_CODE(_XN_ARGS_4ARG(_name1, _name2, _name3, _name4)), _XN_FULL_SIGNATURE_4ARG(_type1, _name1, _type2, _name2, _type3, _name3, _type4, _name4), _XN_SIGNATURE_4ARG(_type1, _name1, _type2, _name2, _type3, _name3, _type4, _name4))
-
-#define XN_DECLARE_EVENT_5ARG(_class, _interface, _type1, _name1, _type2, _name2, _type3, _name3, _type4, _name4, _type5, _name5) \
- _XN_DECLARE_EVENT_CLASS(_class, _interface, void, _XN_RAISE_NO_RET_CODE(_XN_ARGS_5ARG(_name1, _name2, _name3, _name4, _name5)), _XN_FULL_SIGNATURE_5ARG(_type1, _name1, _type2, _name2, _type3, _name3, _type4, _name4, _type5, _name5), _XN_SIGNATURE_5ARG(_type1, _name1, _type2, _name2, _type3, _name3, _type4, _name4, _type5, _name5))
-
-#define XN_DECLARE_EVENT_5ARG_RETVAL(_class, _interface, _type1, _name1, _type2, _name2, _type3, _name3, _type4, _name4, _type5, _name5) \
- _XN_DECLARE_EVENT_CLASS(_class, _interface, XnStatus, _XN_RAISE_WITH_RET_CODE(_XN_ARGS_5ARG(_name1, _name2, _name3, _name4, _name5)), _XN_FULL_SIGNATURE_5ARG(_type1, _name1, _type2, _name2, _type3, _name3, _type4, _name4, _type5, _name5), _XN_SIGNATURE_5ARG(_type1, _name1, _type2, _name2, _type3, _name3, _type4, _name4, _type5, _name5))
-
-#endif //__XN_EVENT_H__