Camera::Camera(dwSensorHandle_t &sensor, dwSensorParams salParams, dwSALHandle_t sal, dwContextHandle_t sdk, ProgramArguments arguments, bool record) { // Init dwHandles this->sensor = DW_NULL_HANDLE; streamer = DW_NULL_HANDLE; serializer = DW_NULL_HANDLE; // Are we recording the camera? this->record = false || record; //Initialize sensors dwStatus result = dwSAL_createSensor(&sensor, salParams, sal); // Initialize camera and image properties if (result == DW_SUCCESS) { this->sensor = sensor; dwImageProperties cameraImageProperties; dwSensorCamera_getImageProperties(&cameraImageProperties, DW_CAMERA_PROCESSED_IMAGE, this->sensor); dwCameraProperties cameraProperties; dwSensorCamera_getSensorProperties(&cameraProperties, this->sensor); width = cameraImageProperties.width; height = cameraImageProperties.height; imageType = cameraImageProperties.type; numSiblings = cameraProperties.siblings; std::cout << "Camera siblings: " << numSiblings << std::endl; } else { std::cerr << "Cannot create driver: " << salParams.protocol << " with params: " << salParams.parameters << std::endl << "Error: " << dwGetStatusName(result) << std::endl; if (result == DW_INVALID_ARGUMENT) { std::cerr << "It is possible the given camera is not supported. " << std::endl; } } initImagePool(sdk); initFormatter(sdk); if (record) initSerializer(arguments); }
int SuccessManager::restoreState(const uint8_t* in, int size) { Serializer s; initSerializer(s); return s.deserializeObject(in, size, this); }
int SuccessManager::saveState(uint8_t** out) { Serializer s; initSerializer(s); return s.serializeObject(out, this); }