1f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague/* 2f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague * Copyright (C) 2015 The Android Open Source Project 3f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague * 4f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague * Licensed under the Apache License, Version 2.0 (the "License"); 5f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague * you may not use this file except in compliance with the License. 6f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague * You may obtain a copy of the License at 7f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague * 8f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague * http://www.apache.org/licenses/LICENSE-2.0 9f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague * 10f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague * Unless required by applicable law or agreed to in writing, software 11f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague * distributed under the License is distributed on an "AS IS" BASIS, 12f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague * See the License for the specific language governing permissions and 14f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague * limitations under the License. 15f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague */ 16f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague 17f6031c016d916db9789026dc0a6c559d8163a088Spike Spraguepackage com.android.camera.one.v2.imagesaver; 18f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague 19f6031c016d916db9789026dc0a6c559d8163a088Spike Spragueimport com.android.camera.one.v2.camera2proxy.ForwardingImageProxy; 20f6031c016d916db9789026dc0a6c559d8163a088Spike Spragueimport com.android.camera.one.v2.camera2proxy.ImageProxy; 21f6031c016d916db9789026dc0a6c559d8163a088Spike Spragueimport com.android.camera.one.v2.camera2proxy.TotalCaptureResultProxy; 22f6031c016d916db9789026dc0a6c559d8163a088Spike Spragueimport com.google.common.util.concurrent.ListenableFuture; 23f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague 24f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague/** 25f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague * An ImageProxy decorator that attaches a TotalCaptureResultProxy metadata to 26f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague * an ImageProxy 27f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague */ 28f6031c016d916db9789026dc0a6c559d8163a088Spike Spraguepublic final class MetadataImage extends ForwardingImageProxy { 29f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague private final ListenableFuture<TotalCaptureResultProxy> mMetadata; 30f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague 31f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague /** 32f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague * Create a new MetadataImage 33f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague * 34f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague * @param image The image. 35f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague * @param metadata The TotalCaptureResultProxy metadata associated with image. 36f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague */ 37f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague public MetadataImage(ImageProxy image, ListenableFuture<TotalCaptureResultProxy> metadata) { 38f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague super(image); 39f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague mMetadata = metadata; 40f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague } 41f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague 42f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague /** 43f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague * @return The TotalCaptureResultProxy metadata associated with image. 44f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague */ 45f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague public ListenableFuture<TotalCaptureResultProxy> getMetadata() { 46f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague return mMetadata; 47f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague } 48f6031c016d916db9789026dc0a6c559d8163a088Spike Sprague} 49