15ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall/*
25ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall * Copyright (C) 2015 The Android Open Source Project
35ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall *
45ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall * Licensed under the Apache License, Version 2.0 (the "License");
55ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall * you may not use this file except in compliance with the License.
65ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall * You may obtain a copy of the License at
75ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall *
85ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall *      http://www.apache.org/licenses/LICENSE-2.0
95ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall *
105ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall * Unless required by applicable law or agreed to in writing, software
115ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall * distributed under the License is distributed on an "AS IS" BASIS,
125ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
135ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall * See the License for the specific language governing permissions and
145ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall * limitations under the License.
155ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall */
165ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall
175ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lallpackage com.android.camera.one.v2.camera2proxy;
185ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall
195ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lallimport android.hardware.camera2.CaptureResult;
205ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall
215ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lallimport java.util.List;
225ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall
235ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lallimport javax.annotation.Nonnull;
245ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lallimport javax.annotation.Nullable;
255ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lallimport javax.annotation.ParametersAreNonnullByDefault;
265ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall
275ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall/**
285ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall * Wraps a {@link android.hardware.camera2.CaptureResult} as a
295ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall * {@link CaptureResultProxy}.
305ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall */
315ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall@ParametersAreNonnullByDefault
325ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lallpublic class AndroidCaptureResultProxy implements CaptureResultProxy {
335ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall    final CaptureResult mCaptureResult;
345ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall
355ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall    public AndroidCaptureResultProxy(CaptureResult captureResult) {
365ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall        mCaptureResult = captureResult;
375ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall    }
385ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall
395ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall    @Nullable
405ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall    public <T> T get(CaptureResult.Key<T> key) {
415ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall        return mCaptureResult.get(key);
425ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall    }
435ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall
445ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall    @Nonnull
455ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall    public List<CaptureResult.Key<?>> getKeys() {
465ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall        return mCaptureResult.getKeys();
475ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall    }
485ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall
495ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall    @Nonnull
505ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall    public CaptureRequestProxy getRequest() {
515ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall        return new CaptureRequestProxy(mCaptureResult.getRequest());
525ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall    }
535ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall
545ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall    public long getFrameNumber() {
555ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall        return mCaptureResult.getFrameNumber();
565ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall    }
575ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall
585ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall    public int getSequenceId() {
595ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall        return mCaptureResult.getSequenceId();
605ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall    }
615ca7d2642881f3cf06adb2532e0d5950524a34f4Puneet Lall}
62