From d8533c42df9d3ac250d896c9fd1077b8c9a9552b Mon Sep 17 00:00:00 2001 From: jacqueline Date: Thu, 17 Aug 2023 15:58:32 +1000 Subject: Start on basic onboarding screens --- src/database/database.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/database/database.cpp') diff --git a/src/database/database.cpp b/src/database/database.cpp index e6341e43..2a5b3236 100644 --- a/src/database/database.cpp +++ b/src/database/database.cpp @@ -27,7 +27,9 @@ #include "leveldb/slice.h" #include "leveldb/write_batch.h" +#include "db_events.hpp" #include "env_esp.hpp" +#include "event_queue.hpp" #include "file_gatherer.hpp" #include "records.hpp" #include "result.hpp" @@ -131,6 +133,7 @@ Database::~Database() { } auto Database::Update() -> std::future { + events::Ui().Dispatch(event::UpdateStarted{}); return worker_task_->Dispatch([&]() -> void { leveldb::ReadOptions read_options; read_options.fill_cache = false; @@ -151,6 +154,9 @@ auto Database::Update() -> std::future { // Stage 1: verify all existing tracks are still valid. ESP_LOGI(kTag, "verifying existing tracks"); + events::Ui().Dispatch(event::UpdateProgress{ + .stage = event::UpdateProgress::Stage::kVerifyingExistingTracks, + }); { leveldb::Iterator* it = db_->NewIterator(read_options); OwningSlice prefix = EncodeDataPrefix(); @@ -206,6 +212,9 @@ auto Database::Update() -> std::future { // Stage 2: search for newly added files. ESP_LOGI(kTag, "scanning for new tracks"); + events::Ui().Dispatch(event::UpdateProgress{ + .stage = event::UpdateProgress::Stage::kScanningForNewTracks, + }); file_gatherer_->FindFiles("", [&](const std::string& path) { TrackTags tags; if (!tag_parser_->ReadAndParseTags(path, &tags) || @@ -254,6 +263,7 @@ auto Database::Update() -> std::future { existing_data->filepath().c_str(), path.c_str()); } }); + events::Ui().Dispatch(event::UpdateFinished{}); }); } -- cgit v1.2.3