text: /*****************************************************************************
  *                                                                            *
  *  OpenNI 1.x Alpha                                                          *
  *  Copyright (C) 2012 PrimeSense Ltd.                                        *
  *                                                                            *
  *  This file is part of OpenNI.                                              *
  *                                                                            *
  *  Licensed under the Apache License, Version 2.0 (the "License");           *
  *  you may not use this file except in compliance with the License.          *
  *  You may obtain a copy of the License at                                   *
  *                                                                            *
  *      http://www.apache.org/licenses/LICENSE-2.0                            *
  *                                                                            *
  *  Unless required by applicable law or agreed to in writing, software       *
  *  distributed under the License is distributed on an "AS IS" BASIS,         *
  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  *
  *  See the License for the specific language governing permissions and       *
  *  limitations under the License.                                            *
  *                                                                            *
  *****************************************************************************/
  #ifndef __XN_OS_WIN32_H__
  #define __XN_OS_WIN32_H__
  
  //---------------------------------------------------------------------------
  // Includes
  //---------------------------------------------------------------------------
  #include <XnPlatform.h>
  
  //---------------------------------------------------------------------------
  // Files
  //---------------------------------------------------------------------------
  /** A generic handle type. */ 
  typedef	HANDLE	XN_HANDLE;
  
  /** A file handle type. */ 
  typedef HANDLE	XN_FILE_HANDLE;
  
  /** The value of an invalid file handle. */
  #define XN_INVALID_FILE_HANDLE INVALID_HANDLE_VALUE
  
  /** A string that specifies the current directory. */ 
  #define XN_FILE_LOCAL_DIR ".\\"
  
  /** The file directory separator. */ 
  #define XN_FILE_DIR_SEP "\\"
  
  /** The file extension separator. */ 
  #define XN_FILE_EXT_SEP "."
  
  /** The file "all" wildcard. */ 
  #define XN_FILE_ALL_WILDCARD "*"
  
  /** The newline separation string. */
  #define XN_NEW_LINE_SEP "\r\n"
  
  //---------------------------------------------------------------------------
  // INI Files
  //---------------------------------------------------------------------------
  /** A string that specifies the extension of INI files. */ 
  #define XN_INI_FILE_EXT "ini"
  
  /** The maximum allowed INI string length (in bytes). */
  // Note: This must always be big enough to contain a 32-bit number!
  #define XN_INI_MAX_LEN 256
  
  //---------------------------------------------------------------------------
  // Shared Libraries
  //---------------------------------------------------------------------------
  /** A shared library handle type. */ 
  typedef	HMODULE	XN_LIB_HANDLE;
  
  /** A string that specifies the prefix of shared library files. */ 
  #define XN_SHARED_LIBRARY_PREFIX ""
  
  /** A string that specifies the postfix of shared library files. */ 
  #define XN_SHARED_LIBRARY_POSTFIX ".dll"
  
  //---------------------------------------------------------------------------
  // Threads
  //---------------------------------------------------------------------------
  /** A Xiron thread type. */ 
  typedef	HANDLE XN_THREAD_HANDLE;
  
  /** A Xiron thread ID. */ 
  typedef	DWORD XN_THREAD_ID;
  
  /** A Xiron process ID. */
  typedef DWORD XN_PROCESS_ID;
  
  /** The thread entry point function prototype. */
  typedef	LPTHREAD_START_ROUTINE XN_THREAD_PROC_PROTO;
  
  /** The thread entry point function definition. */
  #define	XN_THREAD_PROC DWORD WINAPI
  
  /** The thread return function. */
  #define	XN_THREAD_PROC_RETURN(ret) return 0;
  
  /** The thread passable data pointer type. */ 
  typedef	LPVOID XN_THREAD_PARAM;
  
  //---------------------------------------------------------------------------
  // Time Outs
  //---------------------------------------------------------------------------
  /** The mutex lock infinite timeout. */
  #define	XN_WAIT_INFINITE INFINITE
  
  //---------------------------------------------------------------------------
  // Mutex
  //---------------------------------------------------------------------------
  /** A Xiron mutex type. */ 
  typedef	HANDLE XN_MUTEX_HANDLE;
  
  //---------------------------------------------------------------------------
  // Critical Sections
  //---------------------------------------------------------------------------
  /** A Xiron critical sections type. */ 
  typedef	CRITICAL_SECTION* XN_CRITICAL_SECTION_HANDLE;
  
  //---------------------------------------------------------------------------
  // Events
  //---------------------------------------------------------------------------
  /** A Xiron event type. */ 
  typedef	HANDLE XN_EVENT_HANDLE;
  
  //---------------------------------------------------------------------------
  // Semaphores
  //---------------------------------------------------------------------------
  /** A Xiron semaphore type. */ 
  typedef	HANDLE XN_SEMAPHORE_HANDLE;
  
  //---------------------------------------------------------------------------
  // Timer
  //---------------------------------------------------------------------------
  /** The Xiron OS timer structure. */ 
  typedef struct XnOSTimer
  {
  	XnDouble dTicksPerTimeUnit;
  	LARGE_INTEGER nStartTick;
  } XnOSTimer;
  
  //---------------------------------------------------------------------------
  // Network
  //---------------------------------------------------------------------------
  /** The network host name and port separator. */ 
  #define XN_NETWORK_HOST_PORT_SEP ":"
  
  //---------------------------------------------------------------------------
  // Swaps
  //---------------------------------------------------------------------------
  #define XN_PREPARE_VAR16_IN_BUFFER(var) (var)
  #define XN_PREPARE_VAR32_IN_BUFFER(var) (var)
  #define XN_PREPARE_VAR64_IN_BUFFER(var) (var)
  #define XN_PREPARE_VAR_FLOAT_IN_BUFFER(var) (var)
  
  #endif //__XN_OS_WIN32_H__
  