// возвращает список устройств видео-захвата в формате json QStringList getVideoCaptureDevices() { #ifdef Q_OS_WIN32 return getCaptureDevices(CLSID_VideoInputDeviceCategory); #elif defined Q_OS_UNIX return getVideoCaptureDevicesQt(); #endif }
FREObject listDevices(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[]) { int32_t i, numDevices = 0; CaptureDeviceInfo devices[MAX_ACTIVE_CAMS * 2]; int32_t refresh = 0; FREGetObjectAsInt32(argv[0], &refresh); numDevices = getCaptureDevices(devices, refresh); FREObject objectBA = argv[1]; FREByteArray baData; FREAcquireByteArray(objectBA, &baData); uint8_t *ba = baData.bytes; ba += ba_write_int(ba, numDevices); for (i = 0; i < numDevices; i++) { const CaptureDeviceInfo *dev = &devices[i]; ba += ba_write_int(ba, dev->name_size); memcpy( ba, (uint8_t*)dev->name, dev->name_size ); ba += dev->name_size; ba += ba_write_int(ba, dev->available); ba += ba_write_int(ba, dev->connected); //printf("device (%d): %s \n", i, dev->name); } FREReleaseByteArray(objectBA); return NULL; }