Add check for joystick when initializing library

Fix C++ inclusion
pull/7/head
nirenjan 2015-12-06 12:57:15 -08:00
parent f2ee9707cb
commit b7141a3e8b
2 changed files with 8 additions and 3 deletions

View File

@ -15,7 +15,7 @@
#include <time.h> #include <time.h>
#include <stdint.h> #include <stdint.h>
#ifndef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
@ -313,7 +313,7 @@ int libx52_update(libx52_device *x52);
*/ */
int libx52_vendor_command(libx52_device *x52, uint16_t index, uint16_t value); int libx52_vendor_command(libx52_device *x52, uint16_t index, uint16_t value);
#ifndef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -47,7 +47,7 @@ libx52_device* libx52_init(void)
libx52_device *x52_dev; libx52_device *x52_dev;
/* Allocate memory for the library's data structures */ /* Allocate memory for the library's data structures */
x52_dev = malloc(sizeof(libx52_device)); x52_dev = calloc(1, sizeof(libx52_device));
if (!x52_dev) { if (!x52_dev) {
errno = ENOMEM; errno = ENOMEM;
return NULL; return NULL;
@ -77,6 +77,11 @@ libx52_device* libx52_init(void)
} }
libusb_free_device_list(list, 1); libusb_free_device_list(list, 1);
/* Make sure we actually have an X52 device detected */
if (!x52_dev->hdl) {
goto err_recovery;
}
return x52_dev; return x52_dev;
err_recovery: err_recovery:
free(x52_dev); free(x52_dev);