1e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin/* 2e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin * Copyright (C) 2013 The Android Open Source Project 3e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin * 4e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin * Licensed under the Apache License, Version 2.0 (the "License"); 5e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin * you may not use this file except in compliance with the License. 6e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin * You may obtain a copy of the License at 7e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin * 8e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin * http://www.apache.org/licenses/LICENSE-2.0 9e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin * 10e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin * Unless required by applicable law or agreed to in writing, software 11e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin * distributed under the License is distributed on an "AS IS" BASIS, 12e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin * See the License for the specific language governing permissions and 14e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin * limitations under the License. 15e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin */ 16e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin 17e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin#ifndef ANDROID_HARDWARE_PHOTOGRAPHY_CAPTUREREQUEST_H 18e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin#define ANDROID_HARDWARE_PHOTOGRAPHY_CAPTUREREQUEST_H 19e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin 20e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin#include <utils/RefBase.h> 21e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin#include <utils/Vector.h> 22d56db1d2bee182d1851097a9c712712fc094d117Eino-Ville Talvala#include <binder/Parcelable.h> 23e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin#include <camera/CameraMetadata.h> 24e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin 25e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkinnamespace android { 26e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin 27e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkinclass Surface; 28e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin 29d56db1d2bee182d1851097a9c712712fc094d117Eino-Ville Talvalanamespace hardware { 30d56db1d2bee182d1851097a9c712712fc094d117Eino-Ville Talvalanamespace camera2 { 31e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin 32d56db1d2bee182d1851097a9c712712fc094d117Eino-Ville Talvalastruct CaptureRequest : public Parcelable { 33032845cc878f538e3336c96e1c24668953eab971Mathias Agopian 34032845cc878f538e3336c96e1c24668953eab971Mathias Agopian // those are needed so we can use a forward declaration of Surface, otherwise 35032845cc878f538e3336c96e1c24668953eab971Mathias Agopian // the type is incomplete when the ctor/dtors are generated. This has the added 36032845cc878f538e3336c96e1c24668953eab971Mathias Agopian // benefit that ctor/dtors are not inlined, which is good because they're not trivial 37032845cc878f538e3336c96e1c24668953eab971Mathias Agopian // (because of the vtable and Vector<>) 38032845cc878f538e3336c96e1c24668953eab971Mathias Agopian CaptureRequest(); 39032845cc878f538e3336c96e1c24668953eab971Mathias Agopian CaptureRequest(const CaptureRequest& rhs); 40032845cc878f538e3336c96e1c24668953eab971Mathias Agopian CaptureRequest(CaptureRequest&& rhs) noexcept; 41032845cc878f538e3336c96e1c24668953eab971Mathias Agopian virtual ~CaptureRequest(); 42032845cc878f538e3336c96e1c24668953eab971Mathias Agopian 43e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin CameraMetadata mMetadata; 44e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin Vector<sp<Surface> > mSurfaceList; 45618ff8a48a0c895a78f91f5692510c2a809425c3Chien-Yu Chen bool mIsReprocess; 46e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin 47e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin /** 48e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin * Keep impl up-to-date with CaptureRequest.java in frameworks/base 49e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin */ 50f51fca277eb5b86bd0b2e3fc90ecb2b63089de29Eino-Ville Talvala status_t readFromParcel(const android::Parcel* parcel) override; 51f51fca277eb5b86bd0b2e3fc90ecb2b63089de29Eino-Ville Talvala status_t writeToParcel(android::Parcel* parcel) const override; 52e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin}; 53d56db1d2bee182d1851097a9c712712fc094d117Eino-Ville Talvala 54d56db1d2bee182d1851097a9c712712fc094d117Eino-Ville Talvala} // namespace camera2 55d56db1d2bee182d1851097a9c712712fc094d117Eino-Ville Talvala} // namespace hardware 56d56db1d2bee182d1851097a9c712712fc094d117Eino-Ville Talvala 57d56db1d2bee182d1851097a9c712712fc094d117Eino-Ville Talvalastruct CaptureRequest : 58d56db1d2bee182d1851097a9c712712fc094d117Eino-Ville Talvala public RefBase, public hardware::camera2::CaptureRequest { 59d56db1d2bee182d1851097a9c712712fc094d117Eino-Ville Talvala public: 60d56db1d2bee182d1851097a9c712712fc094d117Eino-Ville Talvala // Same as android::hardware::camera2::CaptureRequest, except that you can 61d56db1d2bee182d1851097a9c712712fc094d117Eino-Ville Talvala // put this in an sp<> 62d56db1d2bee182d1851097a9c712712fc094d117Eino-Ville Talvala}; 63d56db1d2bee182d1851097a9c712712fc094d117Eino-Ville Talvala 64d56db1d2bee182d1851097a9c712712fc094d117Eino-Ville Talvala} // namespace android 65e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin 66e7ee7637747371635a85fedd24d2190bb1f38651Igor Murashkin#endif 67