int UsbCamera::initDevice() { int res; Metadata base; // Create standard settings templates from copies of base metadata res = base.add1UInt8(ANDROID_CONTROL_MODE, ANDROID_CONTROL_MODE_OFF); if (res) return res; // Use base settings to create all other templates and set them. This is just some samples, // More initialization may be needed. res = initPreviewTemplate(base); if (res) return res; res = initStillTemplate(base); if (res) return res; res = initRecordTemplate(base); if (res) return res; res = initSnapshotTemplate(base); if (res) return res; res = initZslTemplate(base); if (res) return res; res = initManualTemplate(base); if (res) return res; return 0; }
int UsbCamera::initManualTemplate(Metadata m) { int res = m.add1UInt8(ANDROID_CONTROL_CAPTURE_INTENT, ANDROID_CONTROL_CAPTURE_INTENT_MANUAL); // Setup manual controls if (res) return res; // TODO: set reprocessing parameters for zsl input queue return setTemplate(CAMERA3_TEMPLATE_MANUAL, m.get()); }
int UsbCamera::initZslTemplate(Metadata m) { int res = m.add1UInt8(ANDROID_CONTROL_CAPTURE_INTENT, ANDROID_CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG); // Setup default zero shutter lag controls if (res) return res; // TODO: set reprocessing parameters for zsl input queue return setTemplate(CAMERA3_TEMPLATE_ZERO_SHUTTER_LAG, m.get()); }
int UsbCamera::initSnapshotTemplate(Metadata m) { int res = m.add1UInt8(ANDROID_CONTROL_CAPTURE_INTENT, ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT); // Setup default video snapshot controls if (res) return res; // TODO: set slow auto-focus, auto-whitebalance, auto-exposure, flash off return setTemplate(CAMERA3_TEMPLATE_VIDEO_SNAPSHOT, m.get()); }
int UsbCamera::initStillTemplate(Metadata m) { int res = m.add1UInt8(ANDROID_CONTROL_CAPTURE_INTENT, ANDROID_CONTROL_CAPTURE_INTENT_STILL_CAPTURE); // Setup default still capture controls if (res) return res; // TODO: set fast auto-focus, auto-whitebalance, auto-exposure, auto flash return setTemplate(CAMERA3_TEMPLATE_STILL_CAPTURE, m.get()); }
int UsbCamera::initPreviewTemplate(Metadata m) { // Setup default preview controls int res = m.add1UInt8(ANDROID_CONTROL_CAPTURE_INTENT, ANDROID_CONTROL_CAPTURE_INTENT_PREVIEW); if (res) return res; // TODO: set fast auto-focus, auto-whitebalance, auto-exposure, auto flash return setTemplate(CAMERA3_TEMPLATE_PREVIEW, m.get()); }