summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndré Nusser <andre.nusser@googlemail.com>2017-05-25 20:01:04 +0200
committerAndré Nusser <andre.nusser@googlemail.com>2017-05-25 20:04:50 +0200
commit262ca794c3204e6686e4980c53b0dac0d2218030 (patch)
tree092ba0fd5aa8621fd9f1d029dec2793b89a80909
parent3256d014368e8719b11f2a851bd0a8a9714a67ad (diff)
Introduce settings for master bleed control.
-rw-r--r--plugingui/bleedcontrolframecontent.cc35
-rw-r--r--plugingui/bleedcontrolframecontent.h4
-rw-r--r--src/settings.h9
3 files changed, 16 insertions, 32 deletions
diff --git a/plugingui/bleedcontrolframecontent.cc b/plugingui/bleedcontrolframecontent.cc
index 05d9ba6..51ecf2a 100644
--- a/plugingui/bleedcontrolframecontent.cc
+++ b/plugingui/bleedcontrolframecontent.cc
@@ -44,63 +44,42 @@ BleedcontrolframeContent::BleedcontrolframeContent(Widget* parent,
label_text.setText("Amount of Microphone Bleed:");
label_text.setAlignment(TextAlignment::center);
- button.setText("Apply");
- button.setEnabled(false);
-
label_value.setText("0 %");
label_value.setAlignment(TextAlignment::center);
- // TODO:
- // connect to settings (see diskstreaming frame)
- (void) this->settings;
- (void) this->settings_notifier;
+ CONNECT(this, settings_notifier.master_bleed,
+ this, &BleedcontrolframeContent::bleedSettingsValueChanged);
+ CONNECT(&slider, valueChangedNotifier,
+ this, &BleedcontrolframeContent::bleedValueChanged);
}
void BleedcontrolframeContent::resize(std::size_t width, std::size_t height)
{
Widget::resize(width, height);
- int slider_button_gap = 10;
-
slider_width = 0.8 * width;
- button_width = std::max((int)width - slider_width - slider_button_gap, 0);
label_text.move(0, 0);
slider.move(0, 20);
- button.move(slider_width + slider_button_gap, 10);
label_value.move(0, 40);
label_text.resize(slider_width, 15);
slider.resize(slider_width, 15);
- button.resize(button_width, 30);
label_value.resize(slider_width, 15);
-
- button.setEnabled(false);
}
void BleedcontrolframeContent::bleedSettingsValueChanged(float value)
{
slider.setValue(value);
- label_value.setText(std::to_string(100 * value) + " %");
+ int percentage = 100 * value;
+ label_value.setText(std::to_string(percentage) + " %");
slider.setColour(Slider::Colour::Blue);
-
- button.setEnabled(true);
}
void BleedcontrolframeContent::bleedValueChanged(float value)
{
- // TODO: store new value in settings
-}
-
-void BleedcontrolframeContent::reloadClicked()
-{
- // TODO
-}
-
-void BleedcontrolframeContent::reloaded(float)
-{
- button.setEnabled(false);
+ settings.master_bleed.store(value);
}
} // GUI::
diff --git a/plugingui/bleedcontrolframecontent.h b/plugingui/bleedcontrolframecontent.h
index 2fefd64..6b323b9 100644
--- a/plugingui/bleedcontrolframecontent.h
+++ b/plugingui/bleedcontrolframecontent.h
@@ -25,7 +25,6 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
*/
-#include "button.h"
#include "label.h"
#include "slider.h"
#include "widget.h"
@@ -49,14 +48,11 @@ public:
private:
void bleedSettingsValueChanged(float value);
void bleedValueChanged(float value);
- void reloadClicked();
- void reloaded(float);
Label label_text{this};
Label label_value{this};
Slider slider{this};
- Button button{this};
int slider_width;
int button_width;
diff --git a/src/settings.h b/src/settings.h
index 6d094ea..b23f919 100644
--- a/src/settings.h
+++ b/src/settings.h
@@ -86,6 +86,8 @@ struct Settings
Atomic<std::size_t> number_of_files{0};
Atomic<std::size_t> number_of_files_loaded{0};
Atomic<std::string> current_file{""};
+
+ Atomic<float> master_bleed{1.0f};
};
//! Settings getter class.
@@ -124,6 +126,8 @@ struct SettingsGetter
SettingRef<std::size_t> number_of_files_loaded;
SettingRef<std::string> current_file;
+ SettingRef<float> master_bleed;
+
SettingsGetter(Settings& settings)
: drumkit_file(settings.drumkit_file)
, drumkit_load_status(settings.drumkit_load_status)
@@ -150,6 +154,7 @@ struct SettingsGetter
, number_of_files{settings.number_of_files}
, number_of_files_loaded{settings.number_of_files_loaded}
, current_file{settings.current_file}
+ , master_bleed{settings.master_bleed}
{
}
};
@@ -191,6 +196,8 @@ public:
Notifier<std::size_t> number_of_files_loaded;
Notifier<std::string> current_file;
+ Notifier<float> master_bleed;
+
void evaluate()
{
#define EVAL(x) if(settings.x.hasChanged()) { x(settings.x.getValue()); }
@@ -227,6 +234,8 @@ public:
EVAL(number_of_files);
EVAL(number_of_files_loaded);
EVAL(current_file);
+
+ EVAL(master_bleed);
}
SettingsNotifier(Settings& settings)