summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dgedit/volumefader.cc21
-rw-r--r--dgedit/volumefader.h12
2 files changed, 32 insertions, 1 deletions
diff --git a/dgedit/volumefader.cc b/dgedit/volumefader.cc
index 9a153a6..c7cb9d0 100644
--- a/dgedit/volumefader.cc
+++ b/dgedit/volumefader.cc
@@ -29,10 +29,20 @@
#include <QSlider>
#include <QVBoxLayout>
+#include <math.h>
+
+#define SCALAR 10
+
VolumeFader::VolumeFader()
{
+ volslider = new QSlider();
+ volslider->setRange(-60 * SCALAR , 10 * SCALAR);
+
+ connect(volslider, SIGNAL(valueChanged(int)), this, SLOT(handleValueChanged()));
+
QVBoxLayout* lo = new QVBoxLayout();
- lo->addWidget(new QSlider());
+ lo->addWidget(volslider);
+
setLayout(lo);
}
@@ -59,3 +69,12 @@ void VolumeFader::setVolumePower(double vol)
{
}
+
+void VolumeFader::handleValueChanged()
+{
+ double db = ((double)volslider->value())/((double)SCALAR);
+ double power = pow(10, db/10);
+// printf("Volume %f db, %f power\n", vol, pow(10, vol/10));
+ emit volumeChangedDb(db);
+ emit volumeChangedPower(power);
+}
diff --git a/dgedit/volumefader.h b/dgedit/volumefader.h
index 51ff953..33dfc2b 100644
--- a/dgedit/volumefader.h
+++ b/dgedit/volumefader.h
@@ -28,6 +28,9 @@
#define __DRUMGIZMO_VOLUMEFADER_H__
#include <QWidget>
+#include <QSlider>
+
+#include <stdio.h>
class VolumeFader : public QWidget {
Q_OBJECT
@@ -35,15 +38,24 @@ public:
VolumeFader();
~VolumeFader();
+ void volumeDb();
+ void volumePower();
+
public slots:
void updatePeakDb(double vol);
void updatePeakPower(double vol);
void setVolumeDb(double vol);
void setVolumePower(double vol);
+private slots:
+ void handleValueChanged();
+
signals:
void volumeChangedDb(double vol);
void volumeChangedPower(double vol);
+
+private:
+ QSlider *volslider;
};
#endif/*__DRUMGIZMO_VOLUMEFADER_H__*/