diff --git a/services/config/config_defs.h b/services/config/config_defs.h index 56434c01..1abfd609 100644 --- a/services/config/config_defs.h +++ b/services/config/config_defs.h @@ -27,11 +27,48 @@ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* + * Changes from Qualcomm Innovation Center are provided under the following license: + * + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted (subject to the limitations in the + * disclaimer below) provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * * Neither the name of Qualcomm Innovation Center, Inc. nor the names of it + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE + * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT + * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + #ifndef __CONFIG_DEFS_H__ #define __CONFIG_DEFS_H__ #include #include + #include #include @@ -44,6 +81,9 @@ #define DISPLAY_CONFIG_API_LEVEL_1 #define DISPLAY_CONFIG_API_LEVEL_2 +#define DISPLAY_CONFIG_CAMERA_SMOOTH_APIs_1_0 +#define DISPLAY_CONFIG_TILE_DISPLAY_APIS_1_0 + namespace DisplayConfig { // enum definitions @@ -102,6 +142,11 @@ enum class TUIEventType : int { kEndTUITransition, }; +enum class CameraSmoothOp : int { + kOff, + kOn, +}; + // Input and Output Params structures struct Attributes { uint32_t vsync_period = 0; @@ -241,6 +286,36 @@ struct SupportedModesParams { uint32_t mode = 0; }; +struct PowerModeTiledParams { + uint64_t physical_disp_id = 0; + PowerMode power_mode = PowerMode::kOn; + uint32_t tile_h_loc = 0; + uint32_t tile_v_loc = 0; +}; + +struct PanelBrightnessTiledParams { + uint64_t physical_disp_id = 0; + uint32_t level = 255; + uint32_t tile_h_loc = 0; + uint32_t tile_v_loc = 0; +}; + +enum class WiderModePref : int { + kNoPreference, + kWiderAsyncMode, + kWiderSyncMode +}; + +struct WiderModePrefParams { + uint64_t physical_disp_id = 0; + WiderModePref mode_pref = WiderModePref::kNoPreference; +}; + +struct CameraSmoothInfo { + CameraSmoothOp op = CameraSmoothOp::kOff; + uint32_t fps = 0; +}; + /* Callback Interface */ class ConfigCallback { public: @@ -248,6 +323,7 @@ class ConfigCallback { virtual void NotifyQsyncChange(bool /* qsync_enabled */ , int /* refresh_rate */, int /* qsync_refresh_rate */) { } virtual void NotifyIdleStatus(bool /* is_idle */) { } + virtual void NotifyCameraSmoothInfo(CameraSmoothOp /* op */, uint32_t /* fps */) { } protected: virtual ~ConfigCallback() { } @@ -277,6 +353,7 @@ class ConfigInterface { virtual int SetIdleTimeout(uint32_t /* value */) DEFAULT_RET virtual int GetHDRCapabilities(DisplayType /* dpy */, HDRCapsParams* /* caps */) DEFAULT_RET virtual int SetCameraLaunchStatus(uint32_t /* on */) DEFAULT_RET + virtual int SetCameraSmoothInfo(CameraSmoothOp /* op */, uint32_t /* fps */) DEFAULT_RET virtual int DisplayBWTransactionPending(bool* /* status */) DEFAULT_RET virtual int SetDisplayAnimating(uint64_t /* display_id */, bool /* animating */) DEFAULT_RET virtual int ControlIdlePowerCollapse(bool /* enable */, bool /* synchronous */) DEFAULT_RET @@ -326,6 +403,18 @@ class ConfigInterface { virtual int GetDisplayType(uint64_t /* physical_disp_id */, DisplayType* /* disp_type */) DEFAULT_RET virtual int AllowIdleFallback() DEFAULT_RET + virtual int GetDisplayTileCount(uint64_t /* physical_disp_id */, + uint32_t* /* Display h tiles count (Min. 1 tile) */, + uint32_t* /* Display v tiles count (Min. 1 tile) */) DEFAULT_RET + virtual int SetPowerModeTiled(uint64_t /* physical_disp_id */, PowerMode /* power_mode */, + uint32_t /* Display tile h location */, + uint32_t /* Display tile v location */) DEFAULT_RET + virtual int SetPanelBrightnessTiled(uint64_t /* physical_disp_id */, uint32_t /* level */, + uint32_t /* Display tile h location */, + uint32_t /* Display tile v location */) DEFAULT_RET + virtual int SetWiderModePreference(uint64_t /* physical_disp_id */, + WiderModePref /* mode_pref */) DEFAULT_RET + virtual int ControlCameraSmoothCallback(bool /* enable */) DEFAULT_RET virtual int DummyDisplayConfigAPI() DEFAULT_RET // deprecated APIs