I'm OK with #1, make it obvious where beacon gets it's level from. This is the least amount of work.
#2 doesn't sound like this bug, this bug is a memory timer of zero. #2 probably leads to cases like "why is my light not remembering the previous level?"
#3 is kludgy. Even a few seconds would break how 1C is intended.
#4 is probably the cleanest and the most work. I'm new to the codebase, but I envision something like 1C checking the "memorized_level" variable and the beacon, sos, momentary modes checking a "last_ramp" variable -- a variable the memory timer doesn't touch.
I'm looking at r594, and see memorized_level.
I'm OK with #1, make it obvious where beacon gets it's level from. This is the least amount of work.
#2 doesn't sound like this bug, this bug is a memory timer of zero. #2 probably leads to cases like "why is my light not remembering the previous level?"
#3 is kludgy. Even a few seconds would break how 1C is intended.
#4 is probably the cleanest and the most work. I'm new to the codebase, but I envision something like 1C checking the "memorized_level" variable and the beacon, sos, momentary modes checking a "last_ramp" variable -- a variable the memory timer doesn't touch.