summaryrefslogtreecommitdiff
path: root/src/ui/ui_fsm.cpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-04-18 10:06:45 +1000
committerjacqueline <me@jacqueline.id.au>2024-04-18 10:06:45 +1000
commitcc255f6d779b0478ae3eb795c2cae5ec864d8ef0 (patch)
tree036218815269099cc3c5cada4a8812e22b70e7c2 /src/ui/ui_fsm.cpp
parent874218e3ff0ffd244936b3d56f1645efc3f9519f (diff)
downloadtangara-fw-cc255f6d779b0478ae3eb795c2cae5ec864d8ef0.tar.gz
Suspend property bindings when their screens aren't visible
Diffstat (limited to 'src/ui/ui_fsm.cpp')
-rw-r--r--src/ui/ui_fsm.cpp64
1 files changed, 32 insertions, 32 deletions
diff --git a/src/ui/ui_fsm.cpp b/src/ui/ui_fsm.cpp
index 1c296ac7..1305e764 100644
--- a/src/ui/ui_fsm.cpp
+++ b/src/ui/ui_fsm.cpp
@@ -132,13 +132,13 @@ lua::Property UiState::sPlaybackPlaying{
lua::Property UiState::sPlaybackTrack{};
lua::Property UiState::sPlaybackPosition{
0, [](const lua::LuaValue& val) {
- int current_val = std::get<int>(sPlaybackPosition.Get());
+ int current_val = std::get<int>(sPlaybackPosition.get());
if (!std::holds_alternative<int>(val)) {
return false;
}
int new_val = std::get<int>(val);
if (current_val != new_val) {
- auto track = sPlaybackTrack.Get();
+ auto track = sPlaybackTrack.get();
if (!std::holds_alternative<audio::TrackInfo>(track)) {
return false;
}
@@ -320,20 +320,20 @@ int UiState::PopScreen() {
void UiState::react(const system_fsm::KeyLockChanged& ev) {
sDisplay->SetDisplayOn(!ev.locking);
sInput->lock(ev.locking);
- sLockSwitch.Update(ev.locking);
+ sLockSwitch.setDirect(ev.locking);
}
void UiState::react(const system_fsm::SamdUsbStatusChanged& ev) {
- sUsbMassStorageBusy.Update(ev.new_status ==
- drivers::Samd::UsbStatus::kAttachedBusy);
+ sUsbMassStorageBusy.setDirect(ev.new_status ==
+ drivers::Samd::UsbStatus::kAttachedBusy);
}
void UiState::react(const database::event::UpdateStarted&) {
- sDatabaseUpdating.Update(true);
+ sDatabaseUpdating.setDirect(true);
}
void UiState::react(const database::event::UpdateFinished&) {
- sDatabaseUpdating.Update(false);
+ sDatabaseUpdating.setDirect(false);
}
void UiState::react(const internal::DismissAlerts&) {
@@ -341,46 +341,46 @@ void UiState::react(const internal::DismissAlerts&) {
}
void UiState::react(const system_fsm::BatteryStateChanged& ev) {
- sBatteryPct.Update(static_cast<int>(ev.new_state.percent));
- sBatteryMv.Update(static_cast<int>(ev.new_state.millivolts));
- sBatteryCharging.Update(ev.new_state.is_charging);
+ sBatteryPct.setDirect(static_cast<int>(ev.new_state.percent));
+ sBatteryMv.setDirect(static_cast<int>(ev.new_state.millivolts));
+ sBatteryCharging.setDirect(ev.new_state.is_charging);
}
void UiState::react(const audio::QueueUpdate&) {
auto& queue = sServices->track_queue();
- sQueueSize.Update(static_cast<int>(queue.totalSize()));
+ sQueueSize.setDirect(static_cast<int>(queue.totalSize()));
int current_pos = queue.currentPosition();
if (queue.current()) {
current_pos++;
}
- sQueuePosition.Update(current_pos);
- sQueueRandom.Update(queue.random());
- sQueueRepeat.Update(queue.repeat());
- sQueueReplay.Update(queue.replay());
+ sQueuePosition.setDirect(current_pos);
+ sQueueRandom.setDirect(queue.random());
+ sQueueRepeat.setDirect(queue.repeat());
+ sQueueReplay.setDirect(queue.replay());
}
void UiState::react(const audio::PlaybackUpdate& ev) {
if (ev.current_track) {
- sPlaybackTrack.Update(*ev.current_track);
+ sPlaybackTrack.setDirect(*ev.current_track);
} else {
- sPlaybackTrack.Update(std::monostate{});
+ sPlaybackTrack.setDirect(std::monostate{});
}
- sPlaybackPlaying.Update(!ev.paused);
- sPlaybackPosition.Update(static_cast<int>(ev.track_position.value_or(0)));
+ sPlaybackPlaying.setDirect(!ev.paused);
+ sPlaybackPosition.setDirect(static_cast<int>(ev.track_position.value_or(0)));
}
void UiState::react(const audio::VolumeChanged& ev) {
- sVolumeCurrentPct.Update(static_cast<int>(ev.percent));
- sVolumeCurrentDb.Update(static_cast<int>(ev.db));
+ sVolumeCurrentPct.setDirect(static_cast<int>(ev.percent));
+ sVolumeCurrentDb.setDirect(static_cast<int>(ev.db));
}
void UiState::react(const audio::VolumeBalanceChanged& ev) {
- sVolumeLeftBias.Update(ev.left_bias);
+ sVolumeLeftBias.setDirect(ev.left_bias);
}
void UiState::react(const audio::VolumeLimitChanged& ev) {
- sVolumeLimit.Update(ev.new_limit_db);
+ sVolumeLimit.setDirect(ev.new_limit_db);
}
void UiState::react(const system_fsm::BluetoothEvent& ev) {
@@ -388,19 +388,19 @@ void UiState::react(const system_fsm::BluetoothEvent& ev) {
auto dev = bt.ConnectedDevice();
switch (ev.event) {
case drivers::bluetooth::Event::kKnownDevicesChanged:
- sBluetoothDevices.Update(bt.KnownDevices());
+ sBluetoothDevices.setDirect(bt.KnownDevices());
break;
case drivers::bluetooth::Event::kConnectionStateChanged:
- sBluetoothConnected.Update(bt.IsConnected());
+ sBluetoothConnected.setDirect(bt.IsConnected());
if (dev) {
- sBluetoothPairedDevice.Update(drivers::bluetooth::Device{
+ sBluetoothPairedDevice.setDirect(drivers::bluetooth::Device{
.address = dev->mac,
.name = {dev->name.data(), dev->name.size()},
.class_of_device = 0,
.signal_strength = 0,
});
} else {
- sBluetoothPairedDevice.Update(std::monostate{});
+ sBluetoothPairedDevice.setDirect(std::monostate{});
}
break;
case drivers::bluetooth::Event::kPreferredDeviceChanged:
@@ -428,7 +428,7 @@ void Splash::react(const system_fsm::BootComplete& ev) {
themes::Theme::instance()->Apply();
int brightness = sServices->nvs().ScreenBrightness();
- sDisplayBrightness.Update(brightness);
+ sDisplayBrightness.setDirect(brightness);
sDisplay->SetBrightness(brightness);
sDeviceFactory = std::make_unique<input::DeviceFactory>(sServices);
@@ -530,12 +530,12 @@ void Lua::entry() {
{"msc_busy", &sUsbMassStorageBusy},
});
- sDatabaseAutoUpdate.Update(sServices->nvs().DbAutoIndex());
+ sDatabaseAutoUpdate.setDirect(sServices->nvs().DbAutoIndex());
auto bt = sServices->bluetooth();
- sBluetoothEnabled.Update(bt.IsEnabled());
- sBluetoothConnected.Update(bt.IsConnected());
- sBluetoothDevices.Update(bt.KnownDevices());
+ sBluetoothEnabled.setDirect(bt.IsEnabled());
+ sBluetoothConnected.setDirect(bt.IsConnected());
+ sBluetoothDevices.setDirect(bt.KnownDevices());
sCurrentScreen.reset();
sLua->RunScript("/sdcard/config.lua");