mirror of
https://github.com/eried/portapack-mayhem.git
synced 2025-08-09 23:22:33 -04:00
Stash radio settings per app (#1151)
* add a little Stash utility. * add radio state RAII helper. * first part of radio_state changes * add radio_state_ to rest of apps * fix freq_step and format * fix unused ui_sigfrx: corrected sample rate, added back freq setting
This commit is contained in:
parent
19491ce3f7
commit
6298388fe1
89 changed files with 283 additions and 130 deletions
|
@ -126,6 +126,22 @@ constexpr const T& clip(const T& value, const T& minimum, const T& maximum) {
|
|||
return std::max(std::min(value, maximum), minimum);
|
||||
}
|
||||
|
||||
/* Saves state on construction and reverts it when destroyed. */
|
||||
template <typename T>
|
||||
struct Stash {
|
||||
Stash(T& target)
|
||||
: target_{target}, prev_{target} {
|
||||
}
|
||||
|
||||
~Stash() {
|
||||
target_ = std::move(prev_);
|
||||
}
|
||||
|
||||
private:
|
||||
T& target_;
|
||||
T prev_;
|
||||
};
|
||||
|
||||
// TODO: need to decide if this is inclusive or exclusive.
|
||||
// The implementations are different and cause the subtle
|
||||
// bugs mentioned below.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue