summaryrefslogtreecommitdiff
path: root/plugingui/statusframecontent.cc
diff options
context:
space:
mode:
Diffstat (limited to 'plugingui/statusframecontent.cc')
-rw-r--r--plugingui/statusframecontent.cc93
1 files changed, 91 insertions, 2 deletions
diff --git a/plugingui/statusframecontent.cc b/plugingui/statusframecontent.cc
index 33a1367..196c0d3 100644
--- a/plugingui/statusframecontent.cc
+++ b/plugingui/statusframecontent.cc
@@ -29,11 +29,25 @@
namespace GUI
{
-StatusframeContent::StatusframeContent(Widget* parent) : Widget(parent)
+StatusframeContent::StatusframeContent(
+ Widget* parent, SettingsNotifier& settings_notifier)
+ : Widget(parent), settings_notifier(settings_notifier)
{
+ CONNECT(this, settings_notifier.drumkit_load_status,
+ this, &StatusframeContent::updateDrumkitLoadStatus);
+ CONNECT(this, settings_notifier.midimap_load_status,
+ this, &StatusframeContent::updateMidimapLoadStatus);
+ CONNECT(this, settings_notifier.samplerate,
+ this, &StatusframeContent::updateSamplerate);
+ CONNECT(this, settings_notifier.enable_resampling,
+ this, &StatusframeContent::updateResamplingEnabled);
+ CONNECT(this, settings_notifier.number_of_underruns,
+ this, &StatusframeContent::updateNumberOfUnderruns);
+
text_field.move(0, 0);
- text_field.setText("This is a status message.");
text_field.setReadOnly(true);
+
+ updateContent();
text_field.show();
}
@@ -43,4 +57,79 @@ void StatusframeContent::resize(std::size_t width, std::size_t height)
text_field.resize(width, height);
}
+void StatusframeContent::updateContent()
+{
+ text_field.setText(
+ "Drumkit load status: " + drumkit_load_status + "\n"
+ "Midimap load status: " + midimap_load_status + "\n"
+ "Samplerate: " + samplerate + "\n"
+ "Resampling enabled: " + resampling_enabled + "\n"
+ "Number of underruns: " + number_of_underruns + "\n"
+ );
+}
+
+void StatusframeContent::updateDrumkitLoadStatus(LoadStatus load_status)
+{
+ switch(load_status)
+ {
+ case LoadStatus::Idle:
+ drumkit_load_status = "idle";
+ break;
+ case LoadStatus::Loading:
+ drumkit_load_status = "loading";
+ break;
+ case LoadStatus::Done:
+ drumkit_load_status = "done";
+ break;
+ case LoadStatus::Error:
+ drumkit_load_status = "error";
+ break;
+ }
+
+ updateContent();
+}
+
+void StatusframeContent::updateMidimapLoadStatus(LoadStatus load_status)
+{
+ switch(load_status)
+ {
+ case LoadStatus::Idle:
+ midimap_load_status = "idle";
+ break;
+ case LoadStatus::Loading:
+ midimap_load_status = "loading";
+ break;
+ case LoadStatus::Done:
+ midimap_load_status = "done";
+ break;
+ case LoadStatus::Error:
+ midimap_load_status = "error";
+ break;
+ }
+
+ updateContent();
+}
+
+void StatusframeContent::updateSamplerate(double samplerate)
+{
+ this->samplerate = std::to_string((std::size_t)samplerate);
+
+ updateContent();
+}
+
+void StatusframeContent::updateResamplingEnabled(bool enable_resampling)
+{
+ this->resampling_enabled = enable_resampling ? "yes" : "no";
+
+ updateContent();
+}
+
+void StatusframeContent::updateNumberOfUnderruns(
+ std::size_t number_of_underruns)
+{
+ this->number_of_underruns = std::to_string(number_of_underruns);
+
+ updateContent();
+}
+
} // GUI::