int freenect_open_device(freenect_context *ctx, freenect_device **dev, int index) { int res; freenect_device *pdev = malloc(sizeof(freenect_device)); if (!pdev) return -1; memset(pdev, 0, sizeof(*pdev)); pdev->parent = ctx; res = fnusb_open_subdevices(pdev, index); if (res < 0) { free(pdev); return res; } if (!ctx->first) { ctx->first = pdev; } else { freenect_device *prev = ctx->first; while (prev->next) prev = prev->next; prev->next = pdev; } *dev = pdev; return 0; }
int freenect_open_device(freenect_context *ctx, freenect_device **dev, int index) { int res; freenect_device *pdev = malloc(sizeof(freenect_device)); if (!pdev) return -1; memset(pdev, 0, sizeof(*pdev)); pdev->parent = ctx; res = fnusb_open_subdevices(pdev, index); if (res < 0) { free(pdev); return res; } else { *dev = pdev; return 0; } }
FREENECTAPI int freenect_open_device(freenect_context *ctx, freenect_device **dev, int index) { int res; freenect_device *pdev = (freenect_device*)malloc(sizeof(freenect_device)); if (!pdev) return -1; memset(pdev, 0, sizeof(*pdev)); pdev->parent = ctx; res = fnusb_open_subdevices(pdev, index); if (res < 0) { free(pdev); return res; } if (!ctx->first) { ctx->first = pdev; } else { freenect_device *prev = ctx->first; while (prev->next) prev = prev->next; prev->next = pdev; } *dev = pdev; // Do device-specific initialization if (pdev->usb_cam.dev) { if (freenect_camera_init(pdev) < 0) { return -1; } } return 0; }
FREENECTAPI int freenect_open_device(freenect_context *ctx, freenect_device **dev, int index) { int res; freenect_device *pdev = (freenect_device*)malloc(sizeof(freenect_device)); if (!pdev){ __android_log_write(ANDROID_LOG_INFO, "Kinect","freenect_open_device: malloc failed\n"); return -1; } __android_log_write(ANDROID_LOG_INFO, "Kinect","freenect_open_device: malloc successful\n"); memset(pdev, 0, sizeof(*pdev)); pdev->parent = ctx; res = fnusb_open_subdevices(pdev, index); if (res < 0) { free(pdev); __android_log_write(ANDROID_LOG_INFO, "Kinect","freenect_open_device: fnusb_open_subdevices failed\n"); return res; } __android_log_write(ANDROID_LOG_INFO, "Kinect","freenect_open_device: fnusb_open_subdevices successed\n"); #ifdef BUILD_AUDIO if (pdev->usb_audio.dev) { res = fnusb_num_interfaces(&pdev->usb_audio); if (res == 1) { // Upload audio firmware, release devices, and reopen them res = upload_firmware(&pdev->usb_audio); if (res < 0) { FN_ERROR("upload_firmware failed: %d\n", res); free(pdev); return res; } res = fnusb_close_subdevices(pdev); if (res < 0) { FN_ERROR("fnusb_close_subdevices failed: %d\n", res); free(pdev); return res; } sleep(1); // Give time for the device to reenumerate before trying to open it res = fnusb_open_subdevices(pdev, index); if (res < 0) { free(pdev); return res; } } } #endif if (!ctx->first) { ctx->first = pdev; } else { freenect_device *prev = ctx->first; while (prev->next) prev = prev->next; prev->next = pdev; } *dev = pdev; return 0; }
FREENECTAPI int freenect_open_device(freenect_context *ctx, freenect_device **dev, int index) { int res; freenect_device *pdev = (freenect_device*)malloc(sizeof(freenect_device)); if (!pdev) return -1; memset(pdev, 0, sizeof(*pdev)); pdev->parent = ctx; res = fnusb_open_subdevices(pdev, index); if (res < 0) { free(pdev); return res; } #ifdef BUILD_AUDIO if (pdev->usb_audio.dev) { res = fnusb_num_interfaces(&pdev->usb_audio); if (res == 1) { // Upload audio firmware, release devices, and reopen them res = upload_firmware(&pdev->usb_audio); if (res < 0) { FN_ERROR("upload_firmware failed: %d\n", res); free(pdev); return res; } res = fnusb_close_subdevices(pdev); if (res < 0) { FN_ERROR("fnusb_close_subdevices failed: %d\n", res); free(pdev); return res; } sleep(1); // Give time for the device to reenumerate before trying to open it res = fnusb_open_subdevices(pdev, index); if (res < 0) { free(pdev); return res; } } } #endif if (!ctx->first) { ctx->first = pdev; } else { freenect_device *prev = ctx->first; while (prev->next) prev = prev->next; prev->next = pdev; } *dev = pdev; // Do device-specific initialization if (pdev->usb_cam.dev) { if (freenect_camera_init(pdev) < 0) { return -1; } } return 0; }