diff options
Diffstat (limited to 'tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnStatus.h')
-rw-r--r-- | tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnStatus.h | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnStatus.h b/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnStatus.h new file mode 100644 index 00000000..f279a515 --- /dev/null +++ b/tests/manual/kinectsurface/QtKinectWrapper/OpenNI/Include/XnStatus.h @@ -0,0 +1,110 @@ +/**************************************************************************** +* * +* 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_OPEN_NI_STATUS_H__ +#define __XN_OPEN_NI_STATUS_H__ + +#include "XnPlatform.h" + +//--------------------------------------------------------------------------- +// Types +//--------------------------------------------------------------------------- + +/** Defines the XnStatus type. + * The high word represents the group to which this error belongs to. + * The low word is a sequential number inside the group. */ +typedef XnUInt32 XnStatus; + +/** Definition of the OK error code. */ +#define XN_STATUS_OK ((XnStatus)0) + +//--------------------------------------------------------------------------- +// API +//--------------------------------------------------------------------------- + +/** + * Converts a Xiron Status enumerator into a meaningful error string. + * + * @param Status [in] The input Xiron Status to be converted to a string. + * + * @return A string representation of the Xiron status. + */ +XN_C_API const XnChar* XN_C_DECL xnGetStatusString(const XnStatus Status); + +/** +* Gets the name of a Xiron Status as a string. +* +* @param Status [in] The input Xiron Status. +* +* @return A string representation of the Xiron status name. +*/ +XN_C_API const XnChar* XN_C_DECL xnGetStatusName(const XnStatus Status); + +/** +* Prints a user message with a description of the error. +* +* @param Status [in] The input Xiron Status. +* @param csUserMessage [in] A user message. +* +*/ +XN_C_API void XN_C_DECL xnPrintError(const XnStatus Status, const XnChar* csUserMessage); + +//--------------------------------------------------------------------------- +// Enums +//--------------------------------------------------------------------------- +/** A list of modules for Xiron status. */ +typedef enum XnErrorGroup +{ + XN_ERROR_GROUP_NI = 1, + XN_ERROR_GROUP_OS = 2, + XN_ERROR_GROUP_PRIMESENSE = 3, +} XnErrorGroup; + +/** Constructs a status code from a module and an error code. */ +#define XN_STATUS_MAKE(group, code) ((group << 16) | code) + +/** Returns the group of the status. */ +#define XN_STATUS_GROUP(status) XnUInt16(status >> 16) + +/** Returns the code of the status. */ +#define XN_STATUS_CODE(status) XnUInt16(status & 0x0000FFFF) + +/** Marks the beginning of a message map of a specific module. */ +#define XN_STATUS_MESSAGE_MAP_START_FROM(group, first) \ + enum _##group##first##Errors \ + { \ + group##first##_OK = XN_STATUS_MAKE(group, first), + +#define XN_STATUS_MESSAGE_MAP_START(group) \ + XN_STATUS_MESSAGE_MAP_START_FROM(group, 0) + +/** Adds an entry to the message map. */ +#define XN_STATUS_MESSAGE(csName, csMessage) \ + csName, + +/** Marks the end of a message map. */ +#define XN_STATUS_MESSAGE_MAP_END_FROM(group, first) \ + }; + +#define XN_STATUS_MESSAGE_MAP_END(group) \ + XN_STATUS_MESSAGE_MAP_END_FROM(group, 0) + +#endif // __XN_OPEN_NITE_STATUS_H__ |