Reduce runtime RAM usage significantly

This commit is contained in:
sqozz 2024-09-20 13:57:49 +02:00
parent 0e5b56e321
commit 0404335dbb
2 changed files with 87 additions and 74 deletions

View file

@ -7,6 +7,81 @@
namespace esphome { namespace esphome {
namespace tw7100 { namespace tw7100 {
std::map<std::string, std::string> tw7100Select::sources = {
{"30", "HDMI1"},
{"53", "LAN"},
{"A0", "HDMI2"}
};
std::map<std::string, std::string> tw7100Select::luminance = {
{"00", "Normal"},
{"01", "Eco"},
{"02", "Medium"}
};
std::map<std::string, std::string> tw7100Select::aspect = {
{"00", "Normal"},
{"30", "Auto"},
{"40", "Full"},
{"50", "Zoom"},
{"80", "Anamorphic"},
{"90", "Hsqueeze"}
};
std::map<std::string, std::string> tw7100Select::msel = {
{"00", "Black"},
{"01", "Blue"},
{"02", "User logo"}
};
std::map<std::string, std::string> tw7100Select::speed = {
{"00", "9600bps"},
{"01", "19200bps"},
{"02", "38400bps"},
{"03", "57600bps"}
};
std::map<std::string, std::string> tw7100Select::mcfi = {
{"00", "Off"},
{"01", "Low"},
{"02", "Normal"},
{"03", "High"}
};
std::map<std::string, std::string> tw7100Select::clrspace = {
{"00", "Auto"},
{"01", "BT.709"},
{"02", "BT.2020"}
};
std::map<std::string, std::string> tw7100Select::dynrange = {
{"00", "Auto"},
{"01", "SDR"},
{"20", "HDR10"},
{"30", "HLG"}
};
std::map<std::string, std::string> tw7100Select::imgpreset = {
{"00", "Off"},
{"01", "Setting 1"},
{"02", "Setting 2"},
{"03", "Setting 3"},
{"04", "Setting 4"},
{"05", "Setting 5"}
};
std::map<std::string, std::string> tw7100Select::gamma = {
{"20", "Setting 2"},
{"21", "Setting 1"},
{"22", "Setting 0"},
{"23", "Setting -1"},
{"24", "Setting -2"},
{"F0", "Custom"}
};
std::map<std::string, std::string> tw7100Select::cmode = {
{"06", "Dynamic"},
{"07", "Natural"},
{"0C", "Bright Cinema"},
{"15", "Cinema"}
};
std::map<std::string, std::string> tw7100Select::ovscan = {
{"00", "Off"},
{"02", "4%"},
{"04", "8%"},
{"A0", "Auto"}
};
std::vector<std::string> get_map_keys(std::map<std::string, std::string> map_) { std::vector<std::string> get_map_keys(std::map<std::string, std::string> map_) {
std::vector<std::string> map_keys; std::vector<std::string> map_keys;
for (auto element : map_) { map_keys.push_back(element.first); } for (auto element : map_) { map_keys.push_back(element.first); }

View file

@ -15,80 +15,18 @@ class tw7100Select : public select::Select, public Component {
void dump_config() override; void dump_config() override;
void set_tw7100_parent(tw7100Component *parent) { this->parent_ = parent; } void set_tw7100_parent(tw7100Component *parent) { this->parent_ = parent; }
void set_cmd(std::string cmd) { this->cmd_ = cmd; } void set_cmd(std::string cmd) { this->cmd_ = cmd; }
std::map<std::string, std::string> sources = { static std::map<std::string, std::string> sources;
{"30", "HDMI1"}, static std::map<std::string, std::string> luminance;
{"53", "LAN"}, static std::map<std::string, std::string> aspect;
{"A0", "HDMI2"} static std::map<std::string, std::string> msel;
}; static std::map<std::string, std::string> speed;
std::map<std::string, std::string> luminance = { static std::map<std::string, std::string> mcfi;
{"00", "Normal"}, static std::map<std::string, std::string> clrspace;
{"01", "Eco"}, static std::map<std::string, std::string> dynrange;
{"02", "Medium"} static std::map<std::string, std::string> imgpreset;
}; static std::map<std::string, std::string> gamma;
std::map<std::string, std::string> aspect = { static std::map<std::string, std::string> cmode;
{"00", "Normal"}, static std::map<std::string, std::string> ovscan;
{"30", "Auto"},
{"40", "Full"},
{"50", "Zoom"},
{"80", "Anamorphic"},
{"90", "Hsqueeze"}
};
std::map<std::string, std::string> msel = {
{"00", "Black"},
{"01", "Blue"},
{"02", "User logo"}
};
std::map<std::string, std::string> speed = {
{"00", "9600bps"},
{"01", "19200bps"},
{"02", "38400bps"},
{"03", "57600bps"}
};
std::map<std::string, std::string> mcfi = {
{"00", "Off"},
{"01", "Low"},
{"02", "Normal"},
{"03", "High"}
};
std::map<std::string, std::string> clrspace = {
{"00", "Auto"},
{"01", "BT.709"},
{"02", "BT.2020"}
};
std::map<std::string, std::string> dynrange = {
{"00", "Auto"},
{"01", "SDR"},
{"20", "HDR10"},
{"30", "HLG"}
};
std::map<std::string, std::string> imgpreset = {
{"00", "Off"},
{"01", "Setting 1"},
{"02", "Setting 2"},
{"03", "Setting 3"},
{"04", "Setting 4"},
{"05", "Setting 5"}
};
std::map<std::string, std::string> gamma = {
{"20", "Setting 2"},
{"21", "Setting 1"},
{"22", "Setting 0"},
{"23", "Setting -1"},
{"24", "Setting -2"},
{"F0", "Custom"}
};
std::map<std::string, std::string> cmode = {
{"06", "Dynamic"},
{"07", "Natural"},
{"0C", "Bright Cinema"},
{"15", "Cinema"}
};
std::map<std::string, std::string> ovscan = {
{"00", "Off"},
{"02", "4%"},
{"04", "8%"},
{"A0", "Auto"}
};
protected: protected:
void control(const std::string &value) override; void control(const std::string &value) override;