Skip to content

Commit 439ee92

Browse files
slompqdot
authored andcommitted
renamed EXPORT to FREENECTAPI to avoid name collisions with client code.
removed '#include <libusb10/libusb.h>' dependency for WIN32 client code (freenect_usb_context is actually masqueraded as void type, and because of that, 'core.c' required an additional pointer cast) Signed-off-by: Marcos Paulo Berteli Slomp <[email protected]>
1 parent 4bf4e83 commit 439ee92

File tree

3 files changed

+49
-43
lines changed

3 files changed

+49
-43
lines changed

include/libfreenect.h

Lines changed: 37 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -113,21 +113,26 @@ struct _freenect_device;
113113
typedef struct _freenect_device freenect_device; /**< Holds device information. */
114114

115115
// usb backend specific section
116-
#include <libusb-1.0/libusb.h>
117-
typedef libusb_context freenect_usb_context; /**< Holds libusb-1.0 specific information */
116+
#ifdef _WIN32
117+
/* frees Windows users of the burden of specifying the path to <libusb-1.0/libusb.h> */
118+
typedef void freenect_usb_context;
119+
#else
120+
#include <libusb-1.0/libusb.h>
121+
typedef libusb_context freenect_usb_context; /**< Holds libusb-1.0 specific information */
122+
#endif
118123
//
119124

120125
/// If Win32, export all functions for DLL usage
121126
#ifndef _WIN32
122-
#define EXPORT /**< DLLExport information for windows, set to nothing on other platforms */
127+
#define FREENECTAPI /**< DLLExport information for windows, set to nothing on other platforms */
123128
#else
124129
/**< DLLExport information for windows, set to nothing on other platforms */
125130
#ifdef __cplusplus
126-
#define EXPORT extern "C" __declspec(dllexport)
131+
#define FREENECTAPI extern "C" __declspec(dllexport)
127132
#else
128133
// this is required when building from a Win32 port of gcc without being
129134
// forced to compile all of the library files (.c) with g++...
130-
#define EXPORT __declspec(dllexport)
135+
#define FREENECTAPI __declspec(dllexport)
131136
#endif
132137
#endif
133138

@@ -152,7 +157,7 @@ typedef enum {
152157
*
153158
* @return 0 on success, < 0 on error
154159
*/
155-
EXPORT int freenect_init(freenect_context **ctx, freenect_usb_context *usb_ctx);
160+
FREENECTAPI int freenect_init(freenect_context **ctx, freenect_usb_context *usb_ctx);
156161

157162
/**
158163
* Closes the device if it is open, and frees the context
@@ -161,7 +166,7 @@ EXPORT int freenect_init(freenect_context **ctx, freenect_usb_context *usb_ctx);
161166
*
162167
* @return 0 on success
163168
*/
164-
EXPORT int freenect_shutdown(freenect_context *ctx);
169+
FREENECTAPI int freenect_shutdown(freenect_context *ctx);
165170

166171
/// Typedef for logging callback functions
167172
typedef void (*freenect_log_cb)(freenect_context *dev, freenect_loglevel level, const char *msg);
@@ -172,7 +177,7 @@ typedef void (*freenect_log_cb)(freenect_context *dev, freenect_loglevel level,
172177
* @param ctx context to set log level for
173178
* @param level log level to use (see freenect_loglevel enum)
174179
*/
175-
EXPORT void freenect_set_log_level(freenect_context *ctx, freenect_loglevel level);
180+
FREENECTAPI void freenect_set_log_level(freenect_context *ctx, freenect_loglevel level);
176181

177182
/**
178183
* Callback for log messages (i.e. for rerouting to a file instead of
@@ -181,7 +186,7 @@ EXPORT void freenect_set_log_level(freenect_context *ctx, freenect_loglevel leve
181186
* @param ctx context to set log callback for
182187
* @param cb callback function pointer
183188
*/
184-
EXPORT void freenect_set_log_callback(freenect_context *ctx, freenect_log_cb cb);
189+
FREENECTAPI void freenect_set_log_callback(freenect_context *ctx, freenect_log_cb cb);
185190

186191
/**
187192
* Calls the platform specific usb event processor
@@ -190,7 +195,7 @@ EXPORT void freenect_set_log_callback(freenect_context *ctx, freenect_log_cb cb)
190195
*
191196
* @return 0 on success, other values on error, platform/library dependant
192197
*/
193-
EXPORT int freenect_process_events(freenect_context *ctx);
198+
FREENECTAPI int freenect_process_events(freenect_context *ctx);
194199

195200
/**
196201
* Return the number of kinect devices currently connected to the
@@ -200,7 +205,7 @@ EXPORT int freenect_process_events(freenect_context *ctx);
200205
*
201206
* @return Number of devices connected, < 0 on error
202207
*/
203-
EXPORT int freenect_num_devices(freenect_context *ctx);
208+
FREENECTAPI int freenect_num_devices(freenect_context *ctx);
204209

205210
/**
206211
* Opens a kinect device via a context. Index specifies the index of
@@ -213,7 +218,7 @@ EXPORT int freenect_num_devices(freenect_context *ctx);
213218
*
214219
* @return 0 on success, < 0 on error
215220
*/
216-
EXPORT int freenect_open_device(freenect_context *ctx, freenect_device **dev, int index);
221+
FREENECTAPI int freenect_open_device(freenect_context *ctx, freenect_device **dev, int index);
217222

218223
/**
219224
* Closes a device that is currently open
@@ -222,7 +227,7 @@ EXPORT int freenect_open_device(freenect_context *ctx, freenect_device **dev, in
222227
*
223228
* @return 0 on success
224229
*/
225-
EXPORT int freenect_close_device(freenect_device *dev);
230+
FREENECTAPI int freenect_close_device(freenect_device *dev);
226231

227232
/**
228233
* Set the device user data, for passing generic information into
@@ -231,7 +236,7 @@ EXPORT int freenect_close_device(freenect_device *dev);
231236
* @param dev Device to attach user data to
232237
* @param user User data to attach
233238
*/
234-
EXPORT void freenect_set_user(freenect_device *dev, void *user);
239+
FREENECTAPI void freenect_set_user(freenect_device *dev, void *user);
235240

236241
/**
237242
* Retrieve the pointer to user data from the device struct
@@ -240,7 +245,7 @@ EXPORT void freenect_set_user(freenect_device *dev, void *user);
240245
*
241246
* @return Pointer to user data
242247
*/
243-
EXPORT void *freenect_get_user(freenect_device *dev);
248+
FREENECTAPI void *freenect_get_user(freenect_device *dev);
244249

245250
/// Typedef for depth image received event callbacks
246251
typedef void (*freenect_depth_cb)(freenect_device *dev, void *depth, uint32_t timestamp);
@@ -253,15 +258,15 @@ typedef void (*freenect_video_cb)(freenect_device *dev, void *video, uint32_t ti
253258
* @param dev Device to set callback for
254259
* @param cb Function pointer for processing depth information
255260
*/
256-
EXPORT void freenect_set_depth_callback(freenect_device *dev, freenect_depth_cb cb);
261+
FREENECTAPI void freenect_set_depth_callback(freenect_device *dev, freenect_depth_cb cb);
257262

258263
/**
259264
* Set callback for video information received event
260265
*
261266
* @param dev Device to set callback for
262267
* @param cb Function pointer for processing video information
263268
*/
264-
EXPORT void freenect_set_video_callback(freenect_device *dev, freenect_video_cb cb);
269+
FREENECTAPI void freenect_set_video_callback(freenect_device *dev, freenect_video_cb cb);
265270

266271
/**
267272
* Set the format for depth information
@@ -271,7 +276,7 @@ EXPORT void freenect_set_video_callback(freenect_device *dev, freenect_video_cb
271276
*
272277
* @return 0 on success, < 0 on error
273278
*/
274-
EXPORT int freenect_set_depth_format(freenect_device *dev, freenect_depth_format fmt);
279+
FREENECTAPI int freenect_set_depth_format(freenect_device *dev, freenect_depth_format fmt);
275280

276281
/**
277282
* Set the format for video information
@@ -281,7 +286,7 @@ EXPORT int freenect_set_depth_format(freenect_device *dev, freenect_depth_format
281286
*
282287
* @return 0 on success, < 0 on error
283288
*/
284-
EXPORT int freenect_set_video_format(freenect_device *dev, freenect_video_format fmt);
289+
FREENECTAPI int freenect_set_video_format(freenect_device *dev, freenect_video_format fmt);
285290

286291
/**
287292
* Set the buffer to store depth information to. Size of buffer is
@@ -293,7 +298,7 @@ EXPORT int freenect_set_video_format(freenect_device *dev, freenect_video_format
293298
*
294299
* @return 0 on success, < 0 on error
295300
*/
296-
EXPORT int freenect_set_depth_buffer(freenect_device *dev, void *buf);
301+
FREENECTAPI int freenect_set_depth_buffer(freenect_device *dev, void *buf);
297302

298303
/**
299304
* Set the buffer to store depth information to. Size of buffer is
@@ -305,7 +310,7 @@ EXPORT int freenect_set_depth_buffer(freenect_device *dev, void *buf);
305310
*
306311
* @return 0 on success, < 0 on error
307312
*/
308-
EXPORT int freenect_set_video_buffer(freenect_device *dev, void *buf);
313+
FREENECTAPI int freenect_set_video_buffer(freenect_device *dev, void *buf);
309314

310315
/**
311316
* Start the depth information stream for a device.
@@ -314,7 +319,7 @@ EXPORT int freenect_set_video_buffer(freenect_device *dev, void *buf);
314319
*
315320
* @return 0 on success, < 0 on error
316321
*/
317-
EXPORT int freenect_start_depth(freenect_device *dev);
322+
FREENECTAPI int freenect_start_depth(freenect_device *dev);
318323

319324
/**
320325
* Start the video information stream for a device.
@@ -323,7 +328,7 @@ EXPORT int freenect_start_depth(freenect_device *dev);
323328
*
324329
* @return 0 on success, < 0 on error
325330
*/
326-
EXPORT int freenect_start_video(freenect_device *dev);
331+
FREENECTAPI int freenect_start_video(freenect_device *dev);
327332

328333
/**
329334
* Stop the depth information stream for a device
@@ -332,7 +337,7 @@ EXPORT int freenect_start_video(freenect_device *dev);
332337
*
333338
* @return 0 on success, < 0 on error
334339
*/
335-
EXPORT int freenect_stop_depth(freenect_device *dev);
340+
FREENECTAPI int freenect_stop_depth(freenect_device *dev);
336341

337342
/**
338343
* Stop the video information stream for a device
@@ -341,7 +346,7 @@ EXPORT int freenect_stop_depth(freenect_device *dev);
341346
*
342347
* @return 0 on success, < 0 on error
343348
*/
344-
EXPORT int freenect_stop_video(freenect_device *dev);
349+
FREENECTAPI int freenect_stop_video(freenect_device *dev);
345350

346351
/**
347352
* Updates the accelerometer state using a blocking control message
@@ -352,7 +357,7 @@ EXPORT int freenect_stop_video(freenect_device *dev);
352357
* @return 0 on success, < 0 on error. Accelerometer data stored to
353358
* device struct.
354359
*/
355-
EXPORT int freenect_update_tilt_state(freenect_device *dev);
360+
FREENECTAPI int freenect_update_tilt_state(freenect_device *dev);
356361

357362
/**
358363
* Retrieve the tilt state from a device
@@ -361,7 +366,7 @@ EXPORT int freenect_update_tilt_state(freenect_device *dev);
361366
*
362367
* @return The tilt state struct of the device
363368
*/
364-
EXPORT freenect_raw_tilt_state* freenect_get_tilt_state(freenect_device *dev);
369+
FREENECTAPI freenect_raw_tilt_state* freenect_get_tilt_state(freenect_device *dev);
365370

366371
/**
367372
* Return the tilt state, in degrees with respect to the horizon
@@ -370,7 +375,7 @@ EXPORT freenect_raw_tilt_state* freenect_get_tilt_state(freenect_device *dev);
370375
*
371376
* @return Current degree of tilt of the device
372377
*/
373-
EXPORT double freenect_get_tilt_degs(freenect_raw_tilt_state *state);
378+
FREENECTAPI double freenect_get_tilt_degs(freenect_raw_tilt_state *state);
374379

375380
/**
376381
* Set the tilt state of the device, in degrees with respect to the
@@ -384,7 +389,7 @@ EXPORT double freenect_get_tilt_degs(freenect_raw_tilt_state *state);
384389
*
385390
* @return 0 on success, < 0 on error.
386391
*/
387-
EXPORT int freenect_set_tilt_degs(freenect_device *dev, double angle);
392+
FREENECTAPI int freenect_set_tilt_degs(freenect_device *dev, double angle);
388393

389394
/**
390395
* Return the movement state of the tilt motor (moving, stopped, etc...)
@@ -394,7 +399,7 @@ EXPORT int freenect_set_tilt_degs(freenect_device *dev, double angle);
394399
* @return Status code of the tilt device. See
395400
* freenect_tilt_status_code enum for more info.
396401
*/
397-
EXPORT freenect_tilt_status_code freenect_get_tilt_status(freenect_raw_tilt_state *state);
402+
FREENECTAPI freenect_tilt_status_code freenect_get_tilt_status(freenect_raw_tilt_state *state);
398403

399404
/**
400405
* Set the state of the LED. Uses blocking control message call to
@@ -405,7 +410,7 @@ EXPORT freenect_tilt_status_code freenect_get_tilt_status(freenect_raw_tilt_stat
405410
*
406411
* @return 0 on success, < 0 on error
407412
*/
408-
EXPORT int freenect_set_led(freenect_device *dev, freenect_led_options option);
413+
FREENECTAPI int freenect_set_led(freenect_device *dev, freenect_led_options option);
409414

410415
/**
411416
* Get the axis-based gravity adjusted accelerometer state, as laid
@@ -418,7 +423,7 @@ EXPORT int freenect_set_led(freenect_device *dev, freenect_led_options option);
418423
* @param y Stores Y-axis accelerometer state
419424
* @param z Stores Z-axis accelerometer state
420425
*/
421-
EXPORT void freenect_get_mks_accel(freenect_raw_tilt_state *state, double* x, double* y, double* z);
426+
FREENECTAPI void freenect_get_mks_accel(freenect_raw_tilt_state *state, double* x, double* y, double* z);
422427

423428
#ifdef __cplusplus
424429
}

src/core.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333

3434
#include "freenect_internal.h"
3535

36-
EXPORT int freenect_init(freenect_context **ctx, freenect_usb_context *usb_ctx)
36+
FREENECTAPI int freenect_init(freenect_context **ctx, freenect_usb_context *usb_ctx)
3737
{
3838
*ctx = (freenect_context*)malloc(sizeof(freenect_context));
3939
if (!ctx)
@@ -45,7 +45,7 @@ EXPORT int freenect_init(freenect_context **ctx, freenect_usb_context *usb_ctx)
4545
return fnusb_init(&(*ctx)->usb, usb_ctx);
4646
}
4747

48-
EXPORT int freenect_shutdown(freenect_context *ctx)
48+
FREENECTAPI int freenect_shutdown(freenect_context *ctx)
4949
{
5050
while (ctx->first) {
5151
FN_NOTICE("Device %p open during shutdown, closing...\n", ctx->first);
@@ -57,17 +57,17 @@ EXPORT int freenect_shutdown(freenect_context *ctx)
5757
return 0;
5858
}
5959

60-
EXPORT int freenect_process_events(freenect_context *ctx)
60+
FREENECTAPI int freenect_process_events(freenect_context *ctx)
6161
{
6262
return fnusb_process_events(&ctx->usb);
6363
}
6464

65-
EXPORT int freenect_num_devices(freenect_context *ctx)
65+
FREENECTAPI int freenect_num_devices(freenect_context *ctx)
6666
{
6767
return fnusb_num_devices(&ctx->usb);
6868
}
6969

70-
EXPORT int freenect_open_device(freenect_context *ctx, freenect_device **dev, int index)
70+
FREENECTAPI int freenect_open_device(freenect_context *ctx, freenect_device **dev, int index)
7171
{
7272
int res;
7373
freenect_device *pdev = (freenect_device*)malloc(sizeof(freenect_device));
@@ -98,7 +98,7 @@ EXPORT int freenect_open_device(freenect_context *ctx, freenect_device **dev, in
9898
return 0;
9999
}
100100

101-
EXPORT int freenect_close_device(freenect_device *dev)
101+
FREENECTAPI int freenect_close_device(freenect_device *dev)
102102
{
103103
freenect_context *ctx = dev->parent;
104104
int res;
@@ -135,22 +135,22 @@ EXPORT int freenect_close_device(freenect_device *dev)
135135
return 0;
136136
}
137137

138-
EXPORT void freenect_set_user(freenect_device *dev, void *user)
138+
FREENECTAPI void freenect_set_user(freenect_device *dev, void *user)
139139
{
140140
dev->user_data = user;
141141
}
142142

143-
EXPORT void *freenect_get_user(freenect_device *dev)
143+
FREENECTAPI void *freenect_get_user(freenect_device *dev)
144144
{
145145
return dev->user_data;
146146
}
147147

148-
EXPORT void freenect_set_log_level(freenect_context *ctx, freenect_loglevel level)
148+
FREENECTAPI void freenect_set_log_level(freenect_context *ctx, freenect_loglevel level)
149149
{
150150
ctx->log_level = level;
151151
}
152152

153-
EXPORT void freenect_set_log_callback(freenect_context *ctx, freenect_log_cb cb)
153+
FREENECTAPI void freenect_set_log_callback(freenect_context *ctx, freenect_log_cb cb)
154154
{
155155
ctx->log_cb = cb;
156156
}

src/usb_libusb10.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,8 @@ int fnusb_init(fnusb_ctx *ctx, freenect_usb_context *usb_ctx)
6868
return res;
6969
}
7070
} else {
71-
ctx->ctx = usb_ctx;
71+
// explicit cast required: in WIN32, freenect_usb_context* maps to void*
72+
ctx->ctx = (libusb_context*)usb_ctx;
7273
ctx->should_free_ctx = 0;
7374
return 0;
7475
}

0 commit comments

Comments
 (0)