#include <stdint.h>
#include <libusb-1.0/libusb.h>
Go to the source code of this file.
|
#define | FREENECT_COUNTS_PER_G 819 |
|
#define | FREENECT_DEPTH_MM_MAX_VALUE 10000 |
| Maximum value that a uint16_t pixel will take on in the buffer of any of the FREENECT_DEPTH_MM or FREENECT_DEPTH_REGISTERED frame callbacks.
|
|
#define | FREENECT_DEPTH_MM_NO_VALUE 0 |
| Value indicating that this pixel has no data, when using FREENECT_DEPTH_MM or FREENECT_DEPTH_REGISTERED depth modes.
|
|
#define | FREENECT_DEPTH_RAW_MAX_VALUE 2048 |
| Maximum value that a uint16_t pixel will take on in the buffer of any of the FREENECT_DEPTH_11BIT, FREENECT_DEPTH_10BIT, FREENECT_DEPTH_11BIT_PACKED, or FREENECT_DEPTH_10BIT_PACKED frame callbacks.
|
|
#define | FREENECT_DEPTH_RAW_NO_VALUE 2047 |
| Value indicating that this pixel has no data, when using FREENECT_DEPTH_11BIT, FREENECT_DEPTH_10BIT, FREENECT_DEPTH_11BIT_PACKED, or FREENECT_DEPTH_10BIT_PACKED.
|
|
#define | FREENECTAPI |
| If Win32, export all functions for DLL usage.
|
|
|
enum | freenect_device_flags { FREENECT_DEVICE_MOTOR = 0x01,
FREENECT_DEVICE_CAMERA = 0x02,
FREENECT_DEVICE_AUDIO = 0x04
} |
|
enum | freenect_resolution { FREENECT_RESOLUTION_LOW = 0,
FREENECT_RESOLUTION_MEDIUM = 1,
FREENECT_RESOLUTION_HIGH = 2,
FREENECT_RESOLUTION_DUMMY = 2147483647
} |
|
enum | freenect_video_format {
FREENECT_VIDEO_RGB = 0,
FREENECT_VIDEO_BAYER = 1,
FREENECT_VIDEO_IR_8BIT = 2,
FREENECT_VIDEO_IR_10BIT = 3,
FREENECT_VIDEO_IR_10BIT_PACKED = 4,
FREENECT_VIDEO_YUV_RGB = 5,
FREENECT_VIDEO_YUV_RAW = 6,
FREENECT_VIDEO_DUMMY = 2147483647
} |
|
enum | freenect_depth_format {
FREENECT_DEPTH_11BIT = 0,
FREENECT_DEPTH_10BIT = 1,
FREENECT_DEPTH_11BIT_PACKED = 2,
FREENECT_DEPTH_10BIT_PACKED = 3,
FREENECT_DEPTH_REGISTERED = 4,
FREENECT_DEPTH_MM = 5,
FREENECT_DEPTH_DUMMY = 2147483647
} |
|
enum | freenect_led_options {
LED_OFF = 0,
LED_GREEN = 1,
LED_RED = 2,
LED_YELLOW = 3,
LED_BLINK_GREEN = 4,
LED_BLINK_RED_YELLOW = 6
} |
|
enum | freenect_tilt_status_code { TILT_STATUS_STOPPED = 0x00,
TILT_STATUS_LIMIT = 0x01,
TILT_STATUS_MOVING = 0x04
} |
| Enumeration of tilt motor status. More...
|
|
enum | freenect_loglevel {
FREENECT_LOG_FATAL = 0,
FREENECT_LOG_ERROR,
FREENECT_LOG_WARNING,
FREENECT_LOG_NOTICE,
FREENECT_LOG_INFO,
FREENECT_LOG_DEBUG,
FREENECT_LOG_SPEW,
FREENECT_LOG_FLOOD
} |
| Enumeration of message logging levels. More...
|
|
|
FREENECTAPI int | freenect_init (freenect_context **ctx, freenect_usb_context *usb_ctx) |
|
FREENECTAPI int | freenect_shutdown (freenect_context *ctx) |
|
FREENECTAPI void | freenect_set_log_level (freenect_context *ctx, freenect_loglevel level) |
|
FREENECTAPI void | freenect_set_log_callback (freenect_context *ctx, freenect_log_cb cb) |
|
FREENECTAPI int | freenect_process_events (freenect_context *ctx) |
|
FREENECTAPI int | freenect_process_events_timeout (freenect_context *ctx, struct timeval *timeout) |
|
FREENECTAPI int | freenect_num_devices (freenect_context *ctx) |
|
FREENECTAPI int | freenect_list_device_attributes (freenect_context *ctx, struct freenect_device_attributes **attribute_list) |
|
FREENECTAPI void | freenect_free_device_attributes (struct freenect_device_attributes *attribute_list) |
|
FREENECTAPI int | freenect_supported_subdevices (void) |
|
FREENECTAPI void | freenect_select_subdevices (freenect_context *ctx, freenect_device_flags subdevs) |
|
FREENECTAPI int | freenect_open_device (freenect_context *ctx, freenect_device **dev, int index) |
|
FREENECTAPI int | freenect_open_device_by_camera_serial (freenect_context *ctx, freenect_device **dev, const char *camera_serial) |
|
FREENECTAPI int | freenect_close_device (freenect_device *dev) |
|
FREENECTAPI void | freenect_set_user (freenect_device *dev, void *user) |
|
FREENECTAPI void * | freenect_get_user (freenect_device *dev) |
|
FREENECTAPI void | freenect_set_depth_callback (freenect_device *dev, freenect_depth_cb cb) |
|
FREENECTAPI void | freenect_set_video_callback (freenect_device *dev, freenect_video_cb cb) |
|
FREENECTAPI int | freenect_set_depth_buffer (freenect_device *dev, void *buf) |
|
FREENECTAPI int | freenect_set_video_buffer (freenect_device *dev, void *buf) |
|
FREENECTAPI int | freenect_start_depth (freenect_device *dev) |
|
FREENECTAPI int | freenect_start_video (freenect_device *dev) |
|
FREENECTAPI int | freenect_stop_depth (freenect_device *dev) |
|
FREENECTAPI int | freenect_stop_video (freenect_device *dev) |
|
FREENECTAPI int | freenect_update_tilt_state (freenect_device *dev) |
|
FREENECTAPI
freenect_raw_tilt_state * | freenect_get_tilt_state (freenect_device *dev) |
|
FREENECTAPI double | freenect_get_tilt_degs (freenect_raw_tilt_state *state) |
|
FREENECTAPI int | freenect_set_tilt_degs (freenect_device *dev, double angle) |
|
FREENECTAPI
freenect_tilt_status_code | freenect_get_tilt_status (freenect_raw_tilt_state *state) |
|
FREENECTAPI int | freenect_set_led (freenect_device *dev, freenect_led_options option) |
|
FREENECTAPI void | freenect_get_mks_accel (freenect_raw_tilt_state *state, double *x, double *y, double *z) |
|
FREENECTAPI int | freenect_get_video_mode_count () |
|
FREENECTAPI freenect_frame_mode | freenect_get_video_mode (int mode_num) |
|
FREENECTAPI freenect_frame_mode | freenect_get_current_video_mode (freenect_device *dev) |
|
FREENECTAPI freenect_frame_mode | freenect_find_video_mode (freenect_resolution res, freenect_video_format fmt) |
|
FREENECTAPI int | freenect_set_video_mode (freenect_device *dev, freenect_frame_mode mode) |
|
FREENECTAPI int | freenect_get_depth_mode_count () |
|
FREENECTAPI freenect_frame_mode | freenect_get_depth_mode (int mode_num) |
|
FREENECTAPI freenect_frame_mode | freenect_get_current_depth_mode (freenect_device *dev) |
|
FREENECTAPI freenect_frame_mode | freenect_find_depth_mode (freenect_resolution res, freenect_depth_format fmt) |
|
FREENECTAPI int | freenect_set_depth_mode (freenect_device *dev, const freenect_frame_mode mode) |
|
#define FREENECT_COUNTS_PER_G 819 |
#define FREENECT_DEPTH_MM_MAX_VALUE 10000 |
Maximum value that a uint16_t pixel will take on in the buffer of any of the FREENECT_DEPTH_MM or FREENECT_DEPTH_REGISTERED frame callbacks.
#define FREENECT_DEPTH_MM_NO_VALUE 0 |
Value indicating that this pixel has no data, when using FREENECT_DEPTH_MM or FREENECT_DEPTH_REGISTERED depth modes.
#define FREENECT_DEPTH_RAW_MAX_VALUE 2048 |
Maximum value that a uint16_t pixel will take on in the buffer of any of the FREENECT_DEPTH_11BIT, FREENECT_DEPTH_10BIT, FREENECT_DEPTH_11BIT_PACKED, or FREENECT_DEPTH_10BIT_PACKED frame callbacks.
#define FREENECT_DEPTH_RAW_NO_VALUE 2047 |
Value indicating that this pixel has no data, when using FREENECT_DEPTH_11BIT, FREENECT_DEPTH_10BIT, FREENECT_DEPTH_11BIT_PACKED, or FREENECT_DEPTH_10BIT_PACKED.
If Win32, export all functions for DLL usage.
DLLExport information for windows, set to nothing on other platforms
Holds information about the usb context.
typedef void(* freenect_depth_cb)(freenect_device *dev, void *depth, uint32_t timestamp) |
Typedef for depth image received event callbacks.
Holds device information.
Typedef for logging callback functions.
Holds libusb-1.0 specific information
typedef void(* freenect_video_cb)(freenect_device *dev, void *video, uint32_t timestamp) |
Typedef for video image received event callbacks.
Enumeration of depth frame states See http://openkinect.org/wiki/Protocol_Documentation#RGB_Camera for more information.
Enumerator |
---|
FREENECT_DEPTH_11BIT |
11 bit depth information in one uint16_t/pixel
|
FREENECT_DEPTH_10BIT |
10 bit depth information in one uint16_t/pixel
|
FREENECT_DEPTH_11BIT_PACKED |
11 bit packed depth information
|
FREENECT_DEPTH_10BIT_PACKED |
10 bit packed depth information
|
FREENECT_DEPTH_REGISTERED |
processed depth data in mm, aligned to 640x480 RGB
|
FREENECT_DEPTH_MM |
depth to each pixel in mm, but left unaligned to RGB image
|
FREENECT_DEPTH_DUMMY |
Dummy value to force enum to be 32 bits wide
|
Flags representing devices to open when freenect_open_device() is called. In particular, this allows libfreenect to grab only a subset of the devices in the Kinect, so you could (for instance) use libfreenect to handle audio and motor support while letting OpenNI have access to the cameras. If a device is not supported on a particular platform, its flag will be ignored.
Enumerator |
---|
FREENECT_DEVICE_MOTOR |
|
FREENECT_DEVICE_CAMERA |
|
FREENECT_DEVICE_AUDIO |
|
Enumeration of LED states See http://openkinect.org/wiki/Protocol_Documentation#Setting_LED for more information.
Enumerator |
---|
LED_OFF |
Turn LED off
|
LED_GREEN |
Turn LED to Green
|
LED_RED |
Turn LED to Red
|
LED_YELLOW |
Turn LED to Yellow
|
LED_BLINK_GREEN |
Make LED blink Green
|
LED_BLINK_RED_YELLOW |
Make LED blink Red/Yellow
|
Enumeration of message logging levels.
Enumerator |
---|
FREENECT_LOG_FATAL |
Log for crashing/non-recoverable errors
|
FREENECT_LOG_ERROR |
Log for major errors
|
FREENECT_LOG_WARNING |
Log for warning messages
|
FREENECT_LOG_NOTICE |
Log for important messages
|
FREENECT_LOG_INFO |
Log for normal messages
|
FREENECT_LOG_DEBUG |
Log for useful development messages
|
FREENECT_LOG_SPEW |
Log for slightly less useful messages
|
FREENECT_LOG_FLOOD |
Log EVERYTHING. May slow performance.
|
Enumeration of available resolutions. Not all available resolutions are actually supported for all video formats. Frame modes may not perfectly match resolutions. For instance, FREENECT_RESOLUTION_MEDIUM is 640x488 for the IR camera.
Enumerator |
---|
FREENECT_RESOLUTION_LOW |
QVGA - 320x240
|
FREENECT_RESOLUTION_MEDIUM |
VGA - 640x480
|
FREENECT_RESOLUTION_HIGH |
SXGA - 1280x1024
|
FREENECT_RESOLUTION_DUMMY |
Dummy value to force enum to be 32 bits wide
|
Enumeration of tilt motor status.
Enumerator |
---|
TILT_STATUS_STOPPED |
Tilt motor is stopped
|
TILT_STATUS_LIMIT |
Tilt motor has reached movement limit
|
TILT_STATUS_MOVING |
Tilt motor is currently moving to new position
|
Enumeration of video frame information states. See http://openkinect.org/wiki/Protocol_Documentation#RGB_Camera for more information.
Enumerator |
---|
FREENECT_VIDEO_RGB |
Decompressed RGB mode (demosaicing done by libfreenect)
|
FREENECT_VIDEO_BAYER |
Bayer compressed mode (raw information from camera)
|
FREENECT_VIDEO_IR_8BIT |
8-bit IR mode
|
FREENECT_VIDEO_IR_10BIT |
10-bit IR mode
|
FREENECT_VIDEO_IR_10BIT_PACKED |
10-bit packed IR mode
|
FREENECT_VIDEO_YUV_RGB |
YUV RGB mode
|
FREENECT_VIDEO_YUV_RAW |
YUV Raw mode
|
FREENECT_VIDEO_DUMMY |
Dummy value to force enum to be 32 bits wide
|
Closes a device that is currently open
- Parameters
-
- Returns
- 0 on success
Convenience function to return a mode descriptor matching the specified resolution and depth camera pixel format, if one exists.
- Parameters
-
res | Resolution desired |
fmt | Pixel format desired |
- Returns
- A freenect_frame_mode that matches the arguments specified, if such a valid mode exists; otherwise, an invalid freenect_frame_mode.
Convenience function to return a mode descriptor matching the specified resolution and video camera pixel format, if one exists.
- Parameters
-
res | Resolution desired |
fmt | Pixel format desired |
- Returns
- A freenect_frame_mode that matches the arguments specified, if such a valid mode exists; otherwise, an invalid freenect_frame_mode.
Get the frame descriptor of the current depth mode for the specified freenect device.
- Parameters
-
dev | Which device to return the currently-set depth mode for |
- Returns
- A freenect_frame_mode describing the current depth mode of the specified device
Get the frame descriptor of the current video mode for the specified freenect device.
- Parameters
-
dev | Which device to return the currently-set video mode for |
- Returns
- A freenect_frame_mode describing the current video mode of the specified device
Get the frame descriptor of the nth supported depth mode for the depth camera.
- Parameters
-
mode_num | Which of the supported modes to return information about |
- Returns
- A freenect_frame_mode describing the nth depth mode
Get the number of depth camera modes supported by the driver. This includes both RGB and IR modes.
- Returns
- Number of depth modes supported by the driver
Get the axis-based gravity adjusted accelerometer state, as laid out via the accelerometer data sheet, which is available at
http://www.kionix.com/Product%20Sheets/KXSD9%20Product%20Brief.pdf
- Parameters
-
state | State to extract accelerometer data from |
x | Stores X-axis accelerometer state |
y | Stores Y-axis accelerometer state |
z | Stores Z-axis accelerometer state |
Return the tilt state, in degrees with respect to the horizon
- Parameters
-
state | The tilt state struct from a device |
- Returns
- Current degree of tilt of the device
Retrieve the tilt state from a device
- Parameters
-
dev | Device to retrieve tilt state from |
- Returns
- The tilt state struct of the device
Return the movement state of the tilt motor (moving, stopped, etc...)
- Parameters
-
state | Raw state struct to get the tilt status code from |
- Returns
- Status code of the tilt device. See freenect_tilt_status_code enum for more info.
Retrieve the pointer to user data from the device struct
- Parameters
-
dev | Device from which to get user data |
- Returns
- Pointer to user data
Get the frame descriptor of the nth supported video mode for the video camera.
- Parameters
-
mode_num | Which of the supported modes to return information about |
- Returns
- A freenect_frame_mode describing the nth video mode
Get the number of video camera modes supported by the driver. This includes both RGB and IR modes.
- Returns
- Number of video modes supported by the driver
Initialize a freenect context and do any setup required for platform specific USB libraries.
- Parameters
-
ctx | Address of pointer to freenect context struct to allocate and initialize |
usb_ctx | USB context to initialize. Can be NULL if not using multiple contexts. |
- Returns
- 0 on success, < 0 on error
Scans for kinect devices and produces a linked list of their attributes (namely, serial numbers), returning the number of devices.
- Parameters
-
ctx | Context to scan for kinect devices with |
attribute_list | Pointer to where this function will store the resultant linked list |
- Returns
- Number of devices connected, < 0 on error
Return the number of kinect devices currently connected to the system
- Parameters
-
ctx | Context to access device count through |
- Returns
- Number of devices connected, < 0 on error
Opens a kinect device via a context. Index specifies the index of the device on the current state of the bus. Bus resets may cause indexes to shift.
- Parameters
-
ctx | Context to open device through |
dev | Device structure to assign opened device to |
index | Index of the device on the bus |
- Returns
- 0 on success, < 0 on error
Opens a kinect device (via a context) associated with a particular camera subdevice serial number. This function will fail if no device with a matching serial number is found.
- Parameters
-
ctx | Context to open device through |
dev | Device structure to assign opened device to |
camera_serial | Null-terminated ASCII string containing the serial number of the camera subdevice in the device to open |
- Returns
- 0 on success, < 0 on error
Calls the platform specific usb event processor
- Parameters
-
ctx | context to process events for |
- Returns
- 0 on success, other values on error, platform/library dependant
Calls the platform specific usb event processor until either an event occurs or the timeout parameter time has passed. If a zero timeval is passed, this function will handle any already-pending events, then return immediately.
- Parameters
-
ctx | Context to process events for |
timeout | Pointer to a timeval containing the maximum amount of time to block waiting for events, or zero for nonblocking mode |
- Returns
- 0 on success, other values on error, platform/library dependant
Set which subdevices any subsequent calls to freenect_open_device() should open. This will not affect devices which have already been opened. The default behavior, should you choose not to call this function at all, is to open all supported subdevices - motor, cameras, and audio, if supported on the platform.
- Parameters
-
ctx | Context to set future subdevice selection for |
subdevs | Flags representing the subdevices to select |
Set the buffer to store depth information to. Size of buffer is dependant on depth format. See FREENECT_DEPTH_*_SIZE defines for more information.
- Parameters
-
dev | Device to set depth buffer for. |
buf | Buffer to store depth information to. |
- Returns
- 0 on success, < 0 on error
Set callback for depth information received event
- Parameters
-
dev | Device to set callback for |
cb | Function pointer for processing depth information |
Sets the current depth mode for the specified device. The mode cannot be changed while streaming is active.
- Parameters
-
dev | Device for which to set the depth mode |
mode | Frame mode to set |
- Returns
- 0 on success, < 0 if error
Set the state of the LED. Uses blocking control message call to update device.
- Parameters
-
dev | Device to set the LED state |
option | LED state to set on device. See freenect_led_options enum. |
- Returns
- 0 on success, < 0 on error
Callback for log messages (i.e. for rerouting to a file instead of stdout)
- Parameters
-
ctx | context to set log callback for |
cb | callback function pointer |
Set the log level for the specified freenect context
- Parameters
-
ctx | context to set log level for |
level | log level to use (see freenect_loglevel enum) |
Set the tilt state of the device, in degrees with respect to the horizon. Uses blocking control message call to update device. Function return does not reflect state of device, device may still be moving to new position after the function returns. Use freenect_get_tilt_status() to find current movement state.
- Parameters
-
dev | Device to set tilt state |
angle | Angle the device should tilt to |
- Returns
- 0 on success, < 0 on error.
Set the device user data, for passing generic information into callbacks
- Parameters
-
dev | Device to attach user data to |
user | User data to attach |
Set the buffer to store depth information to. Size of buffer is dependant on video format. See FREENECT_VIDEO_*_SIZE defines for more information.
- Parameters
-
dev | Device to set video buffer for. |
buf | Buffer to store video information to. |
- Returns
- 0 on success, < 0 on error
Set callback for video information received event
- Parameters
-
dev | Device to set callback for |
cb | Function pointer for processing video information |
Sets the current video mode for the specified device. If the freenect_frame_mode specified is not one provided by the driver e.g. from freenect_get_video_mode() or freenect_find_video_mode() then behavior is undefined. The current video mode cannot be changed while streaming is active.
- Parameters
-
dev | Device for which to set the video mode |
mode | Frame mode to set |
- Returns
- 0 on success, < 0 if error
Closes the device if it is open, and frees the context
- Parameters
-
ctx | freenect context to close/free |
- Returns
- 0 on success
Start the depth information stream for a device.
- Parameters
-
dev | Device to start depth information stream for. |
- Returns
- 0 on success, < 0 on error
Start the video information stream for a device.
- Parameters
-
dev | Device to start video information stream for. |
- Returns
- 0 on success, < 0 on error
Stop the depth information stream for a device
- Parameters
-
dev | Device to stop depth information stream on. |
- Returns
- 0 on success, < 0 on error
Stop the video information stream for a device
- Parameters
-
dev | Device to stop video information stream on. |
- Returns
- 0 on success, < 0 on error
Answer which subdevices this library supports. This is most useful for wrappers trying to determine whether the underlying library was built with audio support or not, so the wrapper can avoid calling functions that do not exist.
- Returns
- Flags representing the subdevices that the library supports opening (see freenect_device_flags)
Updates the accelerometer state using a blocking control message call.
- Parameters
-
dev | Device to get accelerometer data from |
- Returns
- 0 on success, < 0 on error. Accelerometer data stored to device struct.