We are proud to present the first official release of the new CL NUI Platform which consists of an SDK, API and a stable driver for Microsoft’s new Kinect Hardware (Xbox NUI Audio, NUI Camera, NUI Motor and Accelerometer) devices on Windows machines.
The new CL NUI Platform now supports multiple Kinect devices!
You can download the latest copy here: http://codelaboratories.com/get/nui
NOTE: Before installing the CL NUI SDK, please make sure you uninstall any older drivers including the previous preview version of CL NUI Driver and/or libusb drivers.
Features in this release:
- Support for Windows XP/Vista/Win7 both x86 and x64
- Support multiple Kinect cameras
- Device serial number retrieval
- RAW, RGB24 and RGB32 Color frame data
- RAW, Corrected8, Corrected12 and RGB32 Depth frame data
- Full 30fps camera data streaming
- Reading of built-in Accelerometer x, y, z data
- Camera motor control
- Camera LED control
- Fully signed driver
- To get you started we have included sample source code written in C# as well as C/C++ SDK lib and header files
The CL NUI SDK Platform 1.0 Overview:
The CL NUI SDK API:
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// This library is part of CL NUI SDK
// It allows the use of Microsoft Kinect cameras in your own applications
//
// For updates and file downloads go to: http://codelaboratories.com/get/kinect
//
// Copyright 2010 (c) Code Laboratories, Inc. All rights reserved.
//
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#pragma once
#include <windows.h>
#define IMPORT(type) extern "C" __declspec(dllimport)## type __cdecl
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// NUIDevice API
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Device enumeration
IMPORT(int) GetNUIDeviceCount();
IMPORT(PCHAR) GetNUIDeviceSerial(int index);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// CLNUIMotor API
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Motor instance type
typedef void *CLNUIMotor;
// Library initialization
IMPORT(CLNUIMotor) CreateNUIMotor(PCHAR serial);
IMPORT(bool) DestroyNUIMotor(CLNUIMotor mot);
// Motor control
IMPORT(bool) SetNUIMotorPosition(CLNUIMotor mot, SHORT position);
// Get accelerometer data
IMPORT(bool) GetNUIMotorAccelerometer(CLNUIMotor mot, SHORT &x, SHORT &y, SHORT &z);
IMPORT(bool) SetNUIMotorLED(CLNUIMotor mot, BYTE value);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// CLNUICamera API
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Camera instance type
typedef void *CLNUICamera;
// Library initialization
IMPORT(CLNUICamera) CreateNUICamera(PCHAR serial);
IMPORT(bool) DestroyNUICamera(CLNUICamera cam);
// Camera capture control
IMPORT(bool) StartNUICamera(CLNUICamera cam);
IMPORT(bool) StopNUICamera(CLNUICamera cam);
// Camera video frame image data retrieval
IMPORT(bool) GetNUICameraColorFrameRAW(CLNUICamera cam, PBYTE pData, int waitTimeout = 2000);
IMPORT(bool) GetNUICameraColorFrameRGB24(CLNUICamera cam, PBYTE pData, int waitTimeout = 2000);
IMPORT(bool) GetNUICameraColorFrameRGB32(CLNUICamera cam, PDWORD pData, int waitTimeout = 2000);
// Camera depth frame image data retrieval
IMPORT(bool) GetNUICameraDepthFrameRAW(CLNUICamera cam, PUSHORT pData, int waitTimeout = 2000);
IMPORT(bool) GetNUICameraDepthFrameCorrected12(CLNUICamera cam, PUSHORT pData, int waitTimeout = 2000);
IMPORT(bool) GetNUICameraDepthFrameCorrected8(CLNUICamera cam, PBYTE pData, int waitTimeout = 2000);
IMPORT(bool) GetNUICameraDepthFrameRGB32(CLNUICamera cam, PDWORD pData, int waitTimeout = 2000);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
We are currently working on the upcoming CL NUI Audio component, although there are some potential issues related to DMCA so we will keep you updated. Thanks again and please feel free to share any code and/or videos of your projects build on CL NUI Platform. Also to make the CL NUI SDK better, we appreciate any feedback you might have while getting started.
Update:
-Fixed crashing issues on some systems
-Improved image stability
AlexP