commonsys-intf: Smomo support for multi-display
Change-Id: Ibde69a017f5cbde116aa17bc415deeb8812d88e0
This commit is contained in:
@@ -27,6 +27,42 @@
|
||||
* 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 its
|
||||
* 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 __COMPOSER_EXTN_INTF_H__
|
||||
#define __COMPOSER_EXTN_INTF_H__
|
||||
|
||||
@@ -34,6 +70,7 @@
|
||||
#include "frame_scheduler_intf.h"
|
||||
#include "display_extn_intf.h"
|
||||
#include "phase_offset_extn_intf.h"
|
||||
#include "smomo_interface.h"
|
||||
|
||||
#define COMPOSER_EXTN_REV_MAJOR (1)
|
||||
#define COMPOSER_EXTN_REV_MINOR (0)
|
||||
@@ -50,6 +87,8 @@ class ComposerExtnIntf {
|
||||
virtual void DestroyDisplayExtn(DisplayExtnIntf *intf) = 0;
|
||||
virtual int CreatePhaseOffsetExtn(PhaseOffsetExtnIntf **intf) = 0;
|
||||
virtual void DestroyPhaseOffsetExtn(PhaseOffsetExtnIntf *intf) = 0;
|
||||
virtual bool CreateSmomoExtn(smomo::SmomoIntf **intf, smomo::DisplayInfo info) = 0;
|
||||
virtual void DestroySmomoExtn(smomo::SmomoIntf *intf) = 0;
|
||||
protected:
|
||||
virtual ~ComposerExtnIntf() { }
|
||||
};
|
||||
|
||||
@@ -22,6 +22,42 @@
|
||||
* OF THIS SOFTWARE, EVEN 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 its
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/*! @file smomo.h
|
||||
@brief Interface file for SmoMo which defines the public interface exposed to SmoMo clients.
|
||||
|
||||
@@ -74,6 +110,17 @@ struct SmomoBufferStats {
|
||||
int64_t key; // buffer identity
|
||||
};
|
||||
|
||||
enum DisplayType {
|
||||
kBuiltin,
|
||||
kPluggable,
|
||||
};
|
||||
|
||||
struct DisplayInfo {
|
||||
int32_t display_id;
|
||||
DisplayType type;
|
||||
bool is_primary;
|
||||
};
|
||||
|
||||
/*! @brief SmoMo interface implemented by SmoMo library.
|
||||
|
||||
@details This class declares prototype for SmoMo public interfaces which must be
|
||||
@@ -227,6 +274,16 @@ class SmomoIntf {
|
||||
@return \link bool \endlink
|
||||
*/
|
||||
virtual bool LowLatencyMode() = 0;
|
||||
|
||||
/*! @brief Enable/Disable Refresh Rate change.
|
||||
|
||||
@details This function is called by SmoMo clients used to control
|
||||
refresh rate change.
|
||||
|
||||
@return \link void \endlink
|
||||
*/
|
||||
virtual void SetRefreshRateChangeStatus(bool enable) = 0;
|
||||
|
||||
};
|
||||
|
||||
typedef bool (*CreateSmomoInterface)(uint16_t version, SmomoIntf **interface);
|
||||
|
||||
Reference in New Issue
Block a user