summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r--libs/ardour/ardour/meter.h14
-rw-r--r--libs/ardour/ardour/types.h7
2 files changed, 19 insertions, 2 deletions
diff --git a/libs/ardour/ardour/meter.h b/libs/ardour/ardour/meter.h
index eea240f821..001178a226 100644
--- a/libs/ardour/ardour/meter.h
+++ b/libs/ardour/ardour/meter.h
@@ -23,6 +23,7 @@
#include "ardour/types.h"
#include "ardour/processor.h"
#include "pbd/fastlog.h"
+#include "kmeterdsp.h"
namespace ARDOUR {
@@ -45,6 +46,7 @@ class Metering {
class PeakMeter : public Processor {
public:
PeakMeter(Session& s, const std::string& name);
+ ~PeakMeter();
void meter();
void reset ();
@@ -88,6 +90,11 @@ public:
}
}
+ float meter_level (uint32_t n, MeterType type);
+
+ void set_type(MeterType t);
+ MeterType get_type() { return _meter_type; }
+
XMLNode& state (bool full);
private:
@@ -99,11 +106,14 @@ private:
*/
ChanCount current_meters;
- std::vector<float> _peak_power;
+ std::vector<float> _peak_signal;
std::vector<float> _visible_peak_power;
+ std::vector<float> _max_peak_signal;
std::vector<float> _max_peak_power;
-};
+ std::vector<Kmeterdsp *> _kmeter;
+ MeterType _meter_type;
+};
} // namespace ARDOUR
diff --git a/libs/ardour/ardour/types.h b/libs/ardour/ardour/types.h
index 01f8e87c74..05d6d0b27d 100644
--- a/libs/ardour/ardour/types.h
+++ b/libs/ardour/ardour/types.h
@@ -177,6 +177,13 @@ namespace ARDOUR {
MeterCustom
};
+ enum MeterType {
+ MeterMaxSignal = 0x01,
+ MeterMaxPeak = 0x02,
+ MeterPeak = 0x04,
+ MeterKrms = 0x08
+ };
+
enum TrackMode {
Normal,
NonLayered,