Skip to content

Commit

Permalink
removed rudiment "individual brightness" from effect configs
Browse files Browse the repository at this point in the history
  • Loading branch information
vortigont committed Jan 4, 2024
1 parent 4c5cd2e commit 7b08a23
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 14 deletions.
5 changes: 2 additions & 3 deletions src/effects_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -261,10 +261,9 @@ typedef enum : uint8_t {RANGE=0,EDIT,CHECKBOX} CONTROL_TYPE; // младшие 4
* Полный формат для пользовательского (id=0...7) параметра имеет вид: {"id":0,"type":0,"name":"Параметр","val":"127","min":"1","max":"255","step":"1"}
* если какой-то из параметров стандартный из этого списка, то его можно опустить и не указывать
* @nb@ - будет заменен на реальный номер эффекта, @name@ - на дефолтное имя эффекта, @ver@ - версия
* https://community.alexgyver.ru/threads/wifi-lampa-budilnik-proshivka-firelamp_jeeui-gpl.2739/post-48813
* https://community.alexgyver.ru/threads/wifi-lampa-budilnik-proshivka-firelamp_jeeui-gpl.2739/post-48848
*
* P.S. этот безумный бред нужно убрать
*/

#define COTNROLS_PREFIX "\"nb\":@nb@,\"name\":\"@name@\",\"ver\":@ver@,\"flags\":"

// Дефолтные контролы
Expand Down
17 changes: 8 additions & 9 deletions src/effectworker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ bool Effcfg::loadeffconfig(uint16_t nb, const char *folder){
else
soundfile.clear();

brt = doc["brt"];
//brt = doc["brt"];
curve = doc[A_dev_lcurve] ? static_cast<luma::curve>(doc[A_dev_lcurve].as<int>()) : luma::curve::cie1931;


Expand All @@ -166,9 +166,8 @@ void Effcfg::create_eff_default_cfg_file(uint16_t nb, String &filename){
void Effcfg::_savecfg(char *folder){
File configFile;
String filename = fshlpr::getEffectCfgPath(num, folder);
LOG(printf_P,PSTR("Writing eff #%d cfg: %s\n"), num, filename.c_str());
configFile = LittleFS.open(filename, "w"); // PSTR("w") использовать нельзя, будет исключение!
//configFile.w
LOG(printf, "Writing eff #%d cfg: %s\n", num, filename.c_str());
configFile = LittleFS.open(filename, "w");
configFile.print(getSerializedEffConfig());
configFile.close();
}
Expand Down Expand Up @@ -202,7 +201,7 @@ String Effcfg::getSerializedEffConfig(uint8_t replaceBright) const {
doc["flags"] = flags.mask;
doc["name"] = effectName;
doc["ver"] = version;
if (brt) doc["brt"] = brt;
//if (brt) doc["brt"] = brt;
if (curve != luma::curve::cie1931) doc[A_dev_lcurve] = e2int(curve);
doc["snd"] = soundfile;
JsonArray arr = doc.createNestedArray("ctrls");
Expand Down Expand Up @@ -905,14 +904,14 @@ uint16_t EffectWorker::effIndexByList(uint16_t val) {
}

bool Effcfg::_eff_ctrls_load_from_jdoc(DynamicJsonDocument &effcfg, LList<std::shared_ptr<UIControl>> &ctrls){
LOG(print, PSTR("_eff_ctrls_load_from_jdoc(), "));
LOG(print, "_eff_ctrls_load_from_jdoc(), ");
//LOG(printf_P, PSTR("Load MEM: %s - CFG: %s - DEF: %s\n"), effectName.c_str(), doc["name"].as<String>().c_str(), worker->getName().c_str());
// вычитываею список контроллов
// повторные - скипаем, нехватающие - создаем
// обязательные контролы 0, 1, 2 - яркость, скорость, масштаб, остальные пользовательские
JsonArray arr = effcfg["ctrls"].as<JsonArray>();
if (!arr) return false;
LOG(printf_P, PSTR("got arr of %u controls\n"), arr.size());
LOG(printf, "got arr of %u controls\n", arr.size());

ctrls.clear();
uint8_t id_tst = 0x0; // пустой
Expand Down Expand Up @@ -942,12 +941,12 @@ bool Effcfg::_eff_ctrls_load_from_jdoc(DynamicJsonDocument &effcfg, LList<std::s
}

// тест стандартных контроллов
for(int8_t id=0;id<3;id++){
for(int8_t id=1;id<3;id++){ // 0-й пропускаем, это бывшая "индивидуальная яркость"
if(!((id_tst>>id)&1)){ // не найден контрол, нужно создать
auto c = std::make_shared<UIControl>(
id, // id
CONTROL_TYPE::RANGE, // type
id==0 ? TINTF_00D : id==1 ? TINTF_087 : TINTF_088, // name
/*id==0 ? TINTF_00D :*/ id==1 ? TINTF_087 : TINTF_088, // name
"127", // value
"1", // min
"255", // max
Expand Down
4 changes: 2 additions & 2 deletions src/effectworker.h
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ class Effcfg {
/**
* получить версию эффекта из "прошивки" по его ENUM
*/
inline static uint8_t geteffcodeversion(uint8_t id) { return pgm_read_byte(T_EFFVER + id); };
static uint8_t geteffcodeversion(uint8_t id) { return *(T_EFFVER + id); };

/**
* @brief deserialise effect configuration from a file based on eff number
Expand Down Expand Up @@ -223,7 +223,7 @@ class Effcfg {
uint16_t num = 0; // номер эффекта
uint8_t version = 0; // версия эффекта
EFFFLAGS flags; // effect flags
uint8_t brt{0}; // effect's private brightness
//uint8_t brt{0}; // effect's private brightness
luma::curve curve{luma::curve::cie1931};
String effectName; // имя эффекта (предварительно заданное или из конфига)
String soundfile; // имя/путь к звуковому файлу (DF Player Mini)
Expand Down

0 comments on commit 7b08a23

Please sign in to comment.