void joy_hid_unmap_device(struct joystick_descriptor *joy) { joy_hid_descriptor_t *hid = joy->hid; joy_hid_device_t *device = hid->device; if(device != NULL) { joy_hidlib_free_elements(device); joy_hidlib_close_device(device); hid->device = NULL; } /* clear all */ memset( hid, 0, sizeof(joy_hid_descriptor_t) ); joy->mapped = 0; }
void joy_hidlib_free_devices(joy_hid_device_array_t *devices) { if(devices == NULL) { return; } int num_devices = devices->num_devices; int i; for(i = 0; i<num_devices; i++) { joy_hidlib_free_elements(&devices->devices[i]); } if(devices->internal_devices) { CFRelease( devices->internal_devices ); devices->internal_devices = NULL; } if(devices != NULL) { free(devices); devices = NULL; } }