summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2017-04-01 13:56:45 +0200
committerBent Bisballe Nyeng <deva@aasimon.org>2017-04-01 21:00:38 +0200
commitee324cd887455f3ea456572ef6d8b627f6dd0bb3 (patch)
tree1fd8cbc16c63f6c20137ed31f7710f4b753bf36f
parenta90e3d6958bb9923e288caf8b70ef6c06cc43ddf (diff)
Add chunksize and underrun counter to the UI.
-rw-r--r--plugingui/dgwindow.cc42
-rw-r--r--plugingui/dgwindow.h5
2 files changed, 45 insertions, 2 deletions
diff --git a/plugingui/dgwindow.cc b/plugingui/dgwindow.cc
index dc1f7f6..44f52e7 100644
--- a/plugingui/dgwindow.cc
+++ b/plugingui/dgwindow.cc
@@ -141,11 +141,17 @@ public:
limit.resize(80, 80);
float free_mem = calcFreeMemory() / (1024.0 * 1024.0);
- limitKnob.setRange(std::min(500.0, free_mem / 2.0), free_mem);
+ limitKnob.setRange(std::min(256.0, free_mem / 2.0), free_mem);
limitKnob.resize(60, 60);
limit.setControl(&limitKnob);
layout.addItem(&limit);
+ chunk.resize(80, 80);
+ chunkKnob.setRange(64.0, 4096.0);
+ chunkKnob.resize(60, 60);
+ chunk.setControl(&chunkKnob);
+ layout.addItem(&chunk);
+
reload_button.setText("Reload");
reload_button.resize(100, 50);
layout.addItem(&reload_button);
@@ -155,9 +161,11 @@ public:
LabeledControl streamer{this, "Streaming"};
LabeledControl limit{this, "MB Limit"};
+ LabeledControl chunk{this, "kB Chunk"};
CheckBox streamerCheck{&streamer};
Knob limitKnob{&limit};
+ Knob chunkKnob{&chunk};
Button reload_button{this};
};
@@ -254,7 +262,7 @@ DGWindow::DGWindow(void* native_window, Config& config, Settings& settings,
layout.addItem(l3);
disk_streaming_controls = new DiskStreamingControls(this);
- disk_streaming_controls->resize(80 * 3, 80);
+ disk_streaming_controls->resize(80 * 4, 80);
layout.addItem(disk_streaming_controls);
CONNECT(&disk_streaming_controls->streamerCheck, stateChangedNotifier,
this, &DGWindow::streamerCheckClick);
@@ -262,6 +270,9 @@ DGWindow::DGWindow(void* native_window, Config& config, Settings& settings,
CONNECT(&disk_streaming_controls->limitKnob, valueChangedNotifier,
this, &DGWindow::limitValueChanged);
+ CONNECT(&disk_streaming_controls->chunkKnob, valueChangedNotifier,
+ this, &DGWindow::chunkValueChanged);
+
CONNECT(&disk_streaming_controls->reload_button, clickNotifier,
this, &DGWindow::reloadClicked);
@@ -275,6 +286,11 @@ DGWindow::DGWindow(void* native_window, Config& config, Settings& settings,
lbl_version->setAlignment(TextAlignment::center);
layout.addItem(lbl_version);
+ lbl_underruns.setText("Underruns: 0");
+ lbl_underruns.resize(width, 20);
+ lbl_underruns.setAlignment(TextAlignment::center);
+ layout.addItem(&lbl_underruns);
+
// Create file browser
fileBrowser = new FileBrowser(this);
fileBrowser->move(0, 0);
@@ -309,6 +325,10 @@ DGWindow::DGWindow(void* native_window, Config& config, Settings& settings,
&disk_streaming_controls->streamerCheck, &CheckBox::setChecked);
CONNECT(this, settings_notifier.disk_cache_upper_limit,
this, &DGWindow::limitSettingsValueChanged);
+ CONNECT(this, settings_notifier.disk_cache_chunk_size,
+ this, &DGWindow::chunkSettingsValueChanged);
+ CONNECT(this, settings_notifier.number_of_underruns,
+ this, &DGWindow::underrunsChanged);
}
DGWindow::~DGWindow()
@@ -386,11 +406,29 @@ void DGWindow::limitValueChanged(float value)
settings.disk_cache_upper_limit.store(value * 1024 * 1024);
}
+void DGWindow::chunkValueChanged(float value)
+{
+ // value is in MB
+ settings.disk_cache_chunk_size.store(value * 1024);
+}
+
void DGWindow::limitSettingsValueChanged(float value)
{
disk_streaming_controls->limitKnob.setValue(value / (1024 * 1024));
}
+void DGWindow::chunkSettingsValueChanged(float value)
+{
+ disk_streaming_controls->chunkKnob.setValue(value / 1024);
+}
+
+void DGWindow::underrunsChanged(int underruns)
+{
+ static char buf[256];
+ sprintf(buf, "Underuns: %d", underruns);
+ lbl_underruns.setText(buf);
+}
+
void DGWindow::reloadClicked()
{
settings.reload_counter++;
diff --git a/plugingui/dgwindow.h b/plugingui/dgwindow.h
index f6fdb46..d35caaa 100644
--- a/plugingui/dgwindow.h
+++ b/plugingui/dgwindow.h
@@ -66,12 +66,15 @@ protected:
private:
void streamerCheckClick(bool value);
void limitValueChanged(float value);
+ void chunkValueChanged(float value);
void limitSettingsValueChanged(float value);
+ void chunkSettingsValueChanged(float value);
void reloadClicked();
void attackValueChanged(float value);
void falloffValueChanged(float value);
void velocityCheckClick(bool checked);
+ void underrunsChanged(int underruns);
void kitBrowseClick();
void midimapBrowseClick();
void selectKitFile(const std::string& filename);
@@ -105,6 +108,8 @@ private:
Settings& settings;
SettingsNotifier& settings_notifier;
+
+ Label lbl_underruns{this};
};
} // GUI::