17d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza/* 27d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza * Copyright 2016 The Android Open Source Project 37d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza * 47d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza * Licensed under the Apache License, Version 2.0 (the "License"); 57d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza * you may not use this file except in compliance with the License. 67d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza * You may obtain a copy of the License at 77d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza * 87d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza * http://www.apache.org/licenses/LICENSE-2.0 97d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza * 107d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza * Unless required by applicable law or agreed to in writing, software 117d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza * distributed under the License is distributed on an "AS IS" BASIS, 127d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza * See the License for the specific language governing permissions and 147d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza * limitations under the License. 157d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza */ 167d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza 177d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza#ifndef ANDROID_UI_HDR_CAPABILTIES_H 187d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza#define ANDROID_UI_HDR_CAPABILTIES_H 197d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza 207d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza#include <binder/Parcelable.h> 217d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza 227d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stozanamespace android { 237d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza 247d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stozaclass HdrCapabilities : public Parcelable 257d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza{ 267d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stozapublic: 277d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza HdrCapabilities(const std::vector<int32_t /*android_hdr_t*/>& types, 287d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza float maxLuminance, float maxAverageLuminance, float minLuminance) 297d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza : mSupportedHdrTypes(types), 307d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza mMaxLuminance(maxLuminance), 317d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza mMaxAverageLuminance(maxAverageLuminance), 327d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza mMinLuminance(minLuminance) {} 337d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza 347d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza // Make this move-constructable and move-assignable 357d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza HdrCapabilities(HdrCapabilities&& other) = default; 367d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza HdrCapabilities& operator=(HdrCapabilities&& other) = default; 377d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza 387d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza HdrCapabilities() 397d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza : mSupportedHdrTypes(), 407d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza mMaxLuminance(-1.0f), 417d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza mMaxAverageLuminance(-1.0f), 427d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza mMinLuminance(-1.0f) {} 437d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza 447d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza virtual ~HdrCapabilities() = default; 457d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza 467d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza const std::vector<int32_t /*android_hdr_t*/>& getSupportedHdrTypes() const { 477d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza return mSupportedHdrTypes; 487d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza } 497d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza float getDesiredMaxLuminance() const { return mMaxLuminance; } 507d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza float getDesiredMaxAverageLuminance() const { return mMaxAverageLuminance; } 517d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza float getDesiredMinLuminance() const { return mMinLuminance; } 527d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza 537d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza // Parcelable interface 547d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza virtual status_t writeToParcel(Parcel* parcel) const override; 557d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza virtual status_t readFromParcel(const Parcel* parcel) override; 567d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza 577d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stozaprivate: 587d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza std::vector<int32_t /*android_hdr_t*/> mSupportedHdrTypes; 597d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza float mMaxLuminance; 607d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza float mMaxAverageLuminance; 617d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza float mMinLuminance; 627d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza}; 637d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza 647d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza} // namespace android 657d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza 667d7ae7345abfb91be55c4aed6c9be9d09a144e4cDan Stoza#endif 67