15f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde/* 25f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde * Copyright (C) 2015 The Android Open Source Project 35f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde * 45f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde * Licensed under the Apache License, Version 2.0 (the "License"); 55f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde * you may not use this file except in compliance with the License. 65f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde * You may obtain a copy of the License at 75f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde * 85f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde * http://www.apache.org/licenses/LICENSE-2.0 95f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde * 105f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde * Unless required by applicable law or agreed to in writing, software 115f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde * distributed under the License is distributed on an "AS IS" BASIS, 125f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde * See the License for the specific language governing permissions and 145f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde * limitations under the License. 155f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde */ 165f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde 175f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohdepackage com.android.camera.one.v2.commands; 185f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde 195f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohdeimport com.android.camera.one.v2.core.FrameServer; 205f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohdeimport com.android.camera.one.v2.core.RequestBuilder; 215f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde 225f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde/** 235f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde * Create a two stage frame server update command for ZSL implementations. 245f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde */ 255f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohdepublic class ZslPreviewCommandFactory implements PreviewCommandFactory { 265f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde private final FrameServer mFrameServer; 277e39f8b015985fc0e539e14c193286065b5e51d4Pengchong Jin private final RequestBuilder.Factory mPreviewWarmupRequestBuilder; 285f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde private final RequestBuilder.Factory mZslRequestBuilder; 297e39f8b015985fc0e539e14c193286065b5e51d4Pengchong Jin private static final int ZSL_WARMUP_BURST_SIZE = 5; 305f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde 315f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde public ZslPreviewCommandFactory( 325f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde FrameServer frameServer, 337e39f8b015985fc0e539e14c193286065b5e51d4Pengchong Jin RequestBuilder.Factory previewWarmupRequestBuilder, 345f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde RequestBuilder.Factory zslRequestBuilder) { 355f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde mFrameServer = frameServer; 367e39f8b015985fc0e539e14c193286065b5e51d4Pengchong Jin mPreviewWarmupRequestBuilder = previewWarmupRequestBuilder; 375f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde mZslRequestBuilder = zslRequestBuilder; 385f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde } 395f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde 405f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde @Override 415f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde public CameraCommand get(RequestBuilder.Factory previewRequestBuilder, int templateType) { 427e39f8b015985fc0e539e14c193286065b5e51d4Pengchong Jin return new ZslPreviewCommand(mFrameServer, 437e39f8b015985fc0e539e14c193286065b5e51d4Pengchong Jin mPreviewWarmupRequestBuilder, templateType, 447e39f8b015985fc0e539e14c193286065b5e51d4Pengchong Jin mZslRequestBuilder, templateType, 457e39f8b015985fc0e539e14c193286065b5e51d4Pengchong Jin previewRequestBuilder, templateType, ZSL_WARMUP_BURST_SIZE); 465f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde } 475f1f618eb3df6b9a2f8554e97e8410467b642653Paul Rohde} 48