config/monitor: Add monitor v2 HDR rules (#10623)
This commit is contained in:
parent
3db3baa19e
commit
c3894d9288
7 changed files with 108 additions and 20 deletions
|
|
@ -808,6 +808,13 @@ CConfigManager::CConfigManager() {
|
|||
m_config->addSpecialConfigValue("monitorv2", "sdrsaturation", Hyprlang::FLOAT{1.0});
|
||||
m_config->addSpecialConfigValue("monitorv2", "vrr", Hyprlang::INT{0});
|
||||
m_config->addSpecialConfigValue("monitorv2", "transform", {STRVAL_EMPTY}); // TODO use correct type
|
||||
m_config->addSpecialConfigValue("monitorv2", "supports_wide_color", Hyprlang::INT{0});
|
||||
m_config->addSpecialConfigValue("monitorv2", "supports_hdr", Hyprlang::INT{0});
|
||||
m_config->addSpecialConfigValue("monitorv2", "sdr_min_luminance", Hyprlang::FLOAT{0.2});
|
||||
m_config->addSpecialConfigValue("monitorv2", "sdr_max_luminance", Hyprlang::INT{80});
|
||||
m_config->addSpecialConfigValue("monitorv2", "min_luminance", Hyprlang::FLOAT{-1.0});
|
||||
m_config->addSpecialConfigValue("monitorv2", "max_luminance", Hyprlang::INT{-1});
|
||||
m_config->addSpecialConfigValue("monitorv2", "max_avg_luminance", Hyprlang::INT{-1});
|
||||
|
||||
// keywords
|
||||
m_config->registerHandler(&::handleExec, "exec", {false});
|
||||
|
|
@ -1069,6 +1076,29 @@ std::optional<std::string> CConfigManager::handleMonitorv2(const std::string& ou
|
|||
if (VAL && VAL->m_bSetByUser)
|
||||
parser.parseTransform(std::any_cast<Hyprlang::STRING>(VAL->getValue()));
|
||||
|
||||
VAL = m_config->getSpecialConfigValuePtr("monitorv2", "supports_wide_color", output.c_str());
|
||||
if (VAL && VAL->m_bSetByUser)
|
||||
parser.rule().supportsWideColor = std::any_cast<Hyprlang::INT>(VAL->getValue());
|
||||
VAL = m_config->getSpecialConfigValuePtr("monitorv2", "supports_hdr", output.c_str());
|
||||
if (VAL && VAL->m_bSetByUser)
|
||||
parser.rule().supportsHDR = std::any_cast<Hyprlang::INT>(VAL->getValue());
|
||||
VAL = m_config->getSpecialConfigValuePtr("monitorv2", "sdr_min_luminance", output.c_str());
|
||||
if (VAL && VAL->m_bSetByUser)
|
||||
parser.rule().sdrMinLuminance = std::any_cast<Hyprlang::FLOAT>(VAL->getValue());
|
||||
VAL = m_config->getSpecialConfigValuePtr("monitorv2", "sdr_max_luminance", output.c_str());
|
||||
if (VAL && VAL->m_bSetByUser)
|
||||
parser.rule().sdrMaxLuminance = std::any_cast<Hyprlang::INT>(VAL->getValue());
|
||||
|
||||
VAL = m_config->getSpecialConfigValuePtr("monitorv2", "min_luminance", output.c_str());
|
||||
if (VAL && VAL->m_bSetByUser)
|
||||
parser.rule().minLuminance = std::any_cast<Hyprlang::FLOAT>(VAL->getValue());
|
||||
VAL = m_config->getSpecialConfigValuePtr("monitorv2", "max_luminance", output.c_str());
|
||||
if (VAL && VAL->m_bSetByUser)
|
||||
parser.rule().maxLuminance = std::any_cast<Hyprlang::INT>(VAL->getValue());
|
||||
VAL = m_config->getSpecialConfigValuePtr("monitorv2", "max_avg_luminance", output.c_str());
|
||||
if (VAL && VAL->m_bSetByUser)
|
||||
parser.rule().maxAvgLuminance = std::any_cast<Hyprlang::INT>(VAL->getValue());
|
||||
|
||||
auto newrule = parser.rule();
|
||||
|
||||
std::erase_if(m_monitorRules, [&](const auto& other) { return other.name == newrule.name; });
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue