116 lines
3.5 KiB
C
116 lines
3.5 KiB
C
/** \file capturesync.h
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License.
|
|
* Kinect For Azure SDK.
|
|
*
|
|
* Synchronize depth and color captures
|
|
*/
|
|
|
|
#ifndef CAPTURESYNC_H
|
|
#define CAPTURESYNC_H
|
|
|
|
#include <k4a/k4atypes.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/** Handle to the capturesync module
|
|
*
|
|
* Handles are created with capturesync_create() and closed
|
|
* with \ref color_destroy.
|
|
* Invalid handles are set to 0.
|
|
*/
|
|
K4A_DECLARE_HANDLE(capturesync_t);
|
|
|
|
/** Creates an capturesync instance
|
|
*
|
|
* \param capturesync_handle
|
|
* pointer to a handle location to store the handle. This is only written on K4A_RESULT_SUCCEEDED;
|
|
*
|
|
* To cleanup this resource call capturesync_destroy().
|
|
*
|
|
* \ref K4A_RESULT_SUCCEEDED is returned on success
|
|
*/
|
|
k4a_result_t capturesync_create(capturesync_t *capturesync_handle);
|
|
|
|
/** Destroys an capturesync instance
|
|
*
|
|
* \param capturesync_handle
|
|
* The capturesync handle to destroy
|
|
*
|
|
* This call only cleans up the capturesync handle.
|
|
* This function should not be called until all outstanding ::k4a_capture_t objects are freed.
|
|
*
|
|
* This function should return 0 to indicate the number of outstanding allocations. Consider this the
|
|
* number of leaked allocations.
|
|
*/
|
|
void capturesync_destroy(capturesync_t capturesync_handle);
|
|
|
|
/** Prepares the capturesync object for synchronizing color and depth captures
|
|
*
|
|
* \param capturesync_handle
|
|
* The capturesync handle from capturesync_create()
|
|
*
|
|
* \param config
|
|
* The device configuration provided by the caller
|
|
*
|
|
* \remarks
|
|
* Enables the capturesync to enable its queues and begin synchronizing depth and color frames
|
|
*/
|
|
k4a_result_t capturesync_start(capturesync_t capturesync_handle, const k4a_device_configuration_t *config);
|
|
|
|
/** Prepares the capturesync object to stop synchronizing color and depth captures
|
|
*
|
|
* \param capturesync_handle
|
|
* The capturesync handle from capturesync_create()
|
|
*
|
|
* \remarks
|
|
* Closes queues and unblocks any waiters waiting for the queue
|
|
*/
|
|
void capturesync_stop(capturesync_t capturesync_handle);
|
|
|
|
/** Reads a sample from the synchronized capture queue
|
|
*
|
|
* \param capturesync_handle
|
|
* The capturesync handle from capturesync_create()
|
|
*
|
|
* \param capture_handle
|
|
* The location to write the capture handle to
|
|
*
|
|
* \remarks
|
|
* Closes queues and unblocks any waiters waiting for the queue
|
|
*/
|
|
k4a_wait_result_t capturesync_get_capture(capturesync_t capturesync_handle,
|
|
k4a_capture_t *capture_handle,
|
|
int32_t timeout_in_ms);
|
|
|
|
/** Capturesync module asynchronously accepts new captures from color and depth modules through this API.
|
|
*
|
|
* \param capturesync_handle
|
|
* The capturesync handle from capturesync_create()
|
|
*
|
|
* \param result
|
|
* The result of the USB opperation providing the sample.
|
|
*
|
|
* \param capture_raw
|
|
* A capture of a single color image, or a capture with upto 2 images; depth and IR.
|
|
*
|
|
* \param color_capture
|
|
* True if the capture contains a single color capture. False is the capture contains upto 2 images; depth and IR.
|
|
*
|
|
* \remarks
|
|
* If ::K4A_SUCCEEDED(result) is true then capture_raw must be valid. If ::K4A_SUCCEEDED(result) is false then
|
|
* capture_raw is optional and may be NULL.
|
|
*/
|
|
void capturesync_add_capture(capturesync_t capturesync_handle,
|
|
k4a_result_t result,
|
|
k4a_capture_t capture_raw,
|
|
bool color_capture);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* CAPTURESYNC_H */
|