summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWerner Schweer <ws.seh.de>2006-12-15 19:24:17 +0000
committerWerner Schweer <ws.seh.de>2006-12-15 19:24:17 +0000
commite5370acd0872239dffad6b018ce23ef5292c004a (patch)
treed47d72aff5f52835f4d8697d5e9a4abc6faedd13
parentbc7302df9566e3f6c443ad07135f24ec6bdc32ad (diff)
updates
-rw-r--r--muse/ChangeLog3
-rw-r--r--muse/muse/arranger/canvas.cpp4
-rw-r--r--muse/muse/audiotrack.cpp4
-rw-r--r--muse/muse/auxplugin.cpp2
-rw-r--r--muse/muse/conf.cpp22
-rw-r--r--muse/muse/ctrl.cpp24
-rw-r--r--muse/muse/ctrl.h5
-rw-r--r--muse/muse/ctrl/ctrleditor.cpp46
-rw-r--r--muse/muse/ctrl/ctrleditor.h2
-rw-r--r--muse/muse/gconfig.cpp8
-rw-r--r--muse/muse/gconfig.h4
-rw-r--r--muse/muse/mixer/astrip.cpp8
-rw-r--r--muse/muse/preferences.cpp38
-rw-r--r--muse/muse/preferences.ui135
14 files changed, 209 insertions, 96 deletions
diff --git a/muse/ChangeLog b/muse/ChangeLog
index b07142db..4505256a 100644
--- a/muse/ChangeLog
+++ b/muse/ChangeLog
@@ -1,3 +1,6 @@
+15.12 (ws)
+ - make slider.maxValue configurable
+ - pixel tuning for graphical controller editor
13.12 (ws)
- changed (again) midi/audio time synchronisation
- fix: record midi controller only in controller list
diff --git a/muse/muse/arranger/canvas.cpp b/muse/muse/arranger/canvas.cpp
index e89c6717..961d5cdb 100644
--- a/muse/muse/arranger/canvas.cpp
+++ b/muse/muse/arranger/canvas.cpp
@@ -257,9 +257,11 @@ void PartCanvas::paint(QPainter& p, QRect r)
// int h = tls->height();
p.setPen(QPen(Qt::lightGray, trackSeparator, Qt::SolidLine));
p.drawLine(from, y + yTrackOffset, to, y + yTrackOffset);
+ y += yTrackOffset + trackSeparator;
QPoint off(0, y);
p.translate(off);
- tls->paint(p, r);
+ // tls->paint(p, r);
+ tls->paint(p, QRect(from, 0, to-from, tls->height() - (yTrackOffset + trackSeparator)));
p.translate(-off);
}
}
diff --git a/muse/muse/audiotrack.cpp b/muse/muse/audiotrack.cpp
index 2d01e42d..4e2ee2c1 100644
--- a/muse/muse/audiotrack.cpp
+++ b/muse/muse/audiotrack.cpp
@@ -53,7 +53,7 @@ AudioTrack::AudioTrack()
Ctrl* c;
c = new Ctrl(AC_VOLUME, "Volume");
c->setType(Ctrl::INTERPOLATE | Ctrl::LOG);
- c->setRange(pow(10.0f, config.minSlider*0.05f), 2.0f);
+ c->setRange(pow(10.0f, config.minSlider*0.05f), pow(10.0f, config.maxSlider*0.05f));
addController(c);
c = new Ctrl(AC_PAN, "Pan");
@@ -176,7 +176,7 @@ void AudioTrack::addAuxSend(int n)
QString s("AuxSend-");
s += QString("%1").arg(i+1);
Ctrl* ctrl = new Ctrl(AC_AUX + i, s);
- ctrl->setRange(pow(10.0f, config.minSlider*0.05f), 2.0f);
+ ctrl->setRange(pow(10.0f, config.minSlider*0.05f), pow(10.0f, config.maxSlider*0.05f));
addController(ctrl);
c = getController(AC_AUX_PAN + i);
diff --git a/muse/muse/auxplugin.cpp b/muse/muse/auxplugin.cpp
index c64c7cde..b3e244d3 100644
--- a/muse/muse/auxplugin.cpp
+++ b/muse/muse/auxplugin.cpp
@@ -42,7 +42,7 @@ void AuxPlugin::range(int idx, double* min, double* max) const
switch(idx) {
case 0: // volume
*min = pow(10.0f, config.minSlider * 0.05f);
- *max = 2.0;
+ *max = pow(10.0f, config.maxSlider * 0.05f);
break;
case 1: // pan
*min = -1.0;
diff --git a/muse/muse/conf.cpp b/muse/muse/conf.cpp
index 50c82950..7b7561ef 100644
--- a/muse/muse/conf.cpp
+++ b/muse/muse/conf.cpp
@@ -227,9 +227,13 @@ void readConfiguration(QDomNode node)
else if (tag == "rtcTicks")
config.rtcTicks = i;
else if (tag == "minMeter")
- config.minMeter = i;
+ config.minMeter = s.toDouble();
+ else if (tag == "maxMeter")
+ config.maxMeter = s.toDouble();
else if (tag == "minSlider")
- config.minSlider = s.toFloat();
+ config.minSlider = s.toDouble();
+ else if (tag == "maxSlider")
+ config.maxSlider = s.toDouble();
else if (tag == "guiRefresh")
config.guiRefresh = i;
else if (tag == "peakHoldTime")
@@ -386,13 +390,15 @@ void MusE::writeGlobalConfiguration(Xml& xml) const
{
xml.stag("configuration");
- xml.tag("division", config.division);
- xml.tag("rtcTicks", config.rtcTicks);
- xml.tag("minMeter", config.minMeter);
- xml.tag("minSlider", config.minSlider);
- xml.tag("guiRefresh", config.guiRefresh);
+ xml.tag("division", config.division);
+ xml.tag("rtcTicks", config.rtcTicks);
+ xml.tag("minMeter", config.minMeter);
+ xml.tag("maxMeter", config.maxMeter);
+ xml.tag("minSlider", config.minSlider);
+ xml.tag("maxSlider", config.maxSlider);
+ xml.tag("guiRefresh", config.guiRefresh);
xml.tag("peakHoldTime", config.peakHoldTime);
- xml.tag("helpBrowser", config.helpBrowser);
+ xml.tag("helpBrowser", config.helpBrowser);
xml.tag("extendedMidi", config.extendedMidi);
xml.tag("midiExportDivision", config.midiDivision);
xml.tag("guiDivision", config.guiDivision);
diff --git a/muse/muse/ctrl.cpp b/muse/muse/ctrl.cpp
index bb1a7ac2..a57f8a6f 100644
--- a/muse/muse/ctrl.cpp
+++ b/muse/muse/ctrl.cpp
@@ -163,7 +163,7 @@ bool Ctrl::add(unsigned frame, CVal val)
if (val.f <= 0.0)
val.f = -1001.0f;
else
- val.f = fast_log10(val.f);
+ val.f = log10(val.f);
}
bool rv = find(frame) == end();
insert(frame, val);
@@ -201,8 +201,6 @@ void Ctrl::read(QDomNode node, bool)
_default.i = e.attribute("default","-1").toInt();
}
else {
- minS = "0.0f";
- maxS = "1.0f";
if (_id == AC_PAN) {
minS = "-1.0f";
maxS = "+1.0f";
@@ -315,7 +313,15 @@ int Ctrl::val2pixelR(CVal val, int maxpixel)
else {
if ((_type & LOG) && (val.f <= -1000.0f))
return maxpixel;
- return maxpixel - lrint(double(maxpixel) * (val.f - min.f) / (max.f-min.f));
+ int pixel = maxpixel - lrint(double(maxpixel) * (val.f - min.f) / (max.f-min.f));
+ if (pixel < 0) {
+ printf("%d - lrint(double(%d) * (%f - %f)/(%f-%f)\n",
+ maxpixel, maxpixel, val.f, min.f, max.f, min.f);
+ printf(" %f/%f = %f\n",
+ val.f-min.f, max.f-min.f, (val.f-min.f)/(max.f-min.f));
+ }
+ return pixel;
+// return maxpixel - lrint(double(maxpixel) * (val.f - min.f) / (max.f-min.f));
}
}
@@ -332,6 +338,9 @@ int Ctrl::val2pixelR(int val, int maxpixel)
int Ctrl::cur2pixel(int maxpixel)
{
+#if 0
+ return val2pixelR(_curVal, maxpixel);
+#else
maxpixel -= 1;
if (_type & INT)
@@ -344,6 +353,7 @@ int Ctrl::cur2pixel(int maxpixel)
f = fast_log10(f);
}
return maxpixel - lrint(double(maxpixel) * (f - min.f) / (max.f-min.f));
+#endif
}
//---------------------------------------------------------
@@ -413,8 +423,8 @@ CVal Ctrl::pixel2valR(int pixel, int maxpixel)
void Ctrl::setRange(double _min, double _max)
{
if (_type & LOG) {
- min.f = fast_log10(_min);
- max.f = fast_log10(_max);
+ min.f = log10(_min);
+ max.f = log10(_max);
}
else {
min.f = _min;
@@ -435,6 +445,6 @@ void Ctrl::setRange(int _min, int _max)
void Ctrl::setRange(CVal mi, CVal ma)
{
min = mi;
- max = ma;
+ max = ma;
}
diff --git a/muse/muse/ctrl.h b/muse/muse/ctrl.h
index 929a11d3..eccd17c0 100644
--- a/muse/muse/ctrl.h
+++ b/muse/muse/ctrl.h
@@ -61,7 +61,7 @@ inline static int genACnum(int plugin, int ctrl, bool prefader) {
// flag from controller id
//---------------------------------------------------------
-inline static void getCtrlPlugin(int id, bool* prefader, int* pluginIndex,
+inline static void getCtrlPlugin(int id, bool* prefader, int* pluginIndex,
int* ctrlIndex) {
*prefader = (id & CTRL_PREFADER) ? true : false;
*pluginIndex = ((id & CTRL_PLUGIN_MASK) / CTRL_PLUGIN_OFFSET) - 1;
@@ -144,6 +144,9 @@ typedef CTRL::const_iterator ciCtrlVal;
//---------------------------------------------------------
// Ctrl
// this is a controller list
+//
+// CtrlType == LOG
+// values are internally represented as log10(value)
//---------------------------------------------------------
class Ctrl : public CTRL {
diff --git a/muse/muse/ctrl/ctrleditor.cpp b/muse/muse/ctrl/ctrleditor.cpp
index 22503060..8d30e445 100644
--- a/muse/muse/ctrl/ctrleditor.cpp
+++ b/muse/muse/ctrl/ctrleditor.cpp
@@ -68,7 +68,7 @@ int CtrlEditor::ctrlY(int x, const CVal& val) const
{
if (dragy != -1 && lselected == x)
return dragy;
- return ctrl()->val2pixelR(val, cheight());
+ return ctrl()->val2pixelR(val, th) + HANDLE2;
}
//---------------------------------------------------------
@@ -83,16 +83,16 @@ void CtrlEditor::paint(QPainter& p, const QRect& r)
if (from < 0)
from = 0;
int to = r.x() + r.width() + HANDLE1;
- int th = cheight();
+ th = cheight() - HANDLE1 + splitWidth;
p.save();
- p.setRenderHint(QPainter::Antialiasing, true);
bool aR = track()->autoRead();
p.setPen(QPen(aR ? Qt::white : Qt::gray, 2));
TType tt = track()->timeType();
if (ctrl()->id() == CTRL_VELOCITY) {
+ p.setRenderHint(QPainter::Antialiasing, false);
p.setPen(QPen(Qt::blue, veloWidth));
PartList* pl = track()->parts();
for (iPart ip = pl->begin(); ip != pl->end(); ++ip) {
@@ -107,26 +107,28 @@ void CtrlEditor::paint(QPainter& p, const QRect& r)
EventList* events = part->events();
for (iEvent e = events->begin(); e != events->end(); ++e) {
- if (e->second.type() != Note)
+ const Event& ev = e->second;
+ if (ev.type() != Note)
continue;
- int pos = tc()->pos2pix(e->second.pos() + *part);
+ int pos = tc()->pos2pix(ev.pos() + *part);
if (pos <= from)
continue;
if (pos > to)
break;
int id = ctrl()->id();
if (id == CTRL_VELOCITY ||
- (CTRL_SVELOCITY && e->second.pitch() == singlePitch)) {
- int y1 = ctrl()->val2pixelR(e->second.velo(), th);
- p.drawLine(pos, th, pos, y1);
+ (id == CTRL_SVELOCITY && ev.pitch() == singlePitch)) {
+ int y1 = ctrl()->val2pixelR(ev.velo(), th+3) + 1;
+ p.drawLine(pos, th+3, pos, y1);
}
}
}
}
else {
+ p.setRenderHint(QPainter::Antialiasing, true);
if (ctrl()->empty()) {
if (aR) {
- int y = ctrl()->cur2pixel(th);
+ int y = ctrl()->cur2pixel(th) + HANDLE2;
p.drawLine(r.x(), y, r.x() + r.width(), y);
}
}
@@ -184,7 +186,7 @@ void CtrlEditor::paint(QPainter& p, const QRect& r)
}
}
if (!aR) {
- int y = ctrl()->cur2pixel(th);
+ int y = ctrl()->cur2pixel(th) + HANDLE2;
p.drawLine(r.x(), y, r.x() + r.width(), y);
}
}
@@ -263,7 +265,7 @@ void CtrlEditor::mousePress(const QPoint& pos, QMouseEvent* me)
song->startUndo();
else {
// add controller:
- CVal val = ctrl()->pixel2val(dragy, wh);
+ CVal val = ctrl()->pixel2val(dragy-HANDLE2, wh - HANDLE1 + splitWidth);
song->cmdAddControllerVal(track(), ctrl(), selected, val);
tc()->widget()->update();
}
@@ -282,7 +284,7 @@ void CtrlEditor::mousePress(const QPoint& pos, QMouseEvent* me)
ciCtrlVal s = ctrl()->upperBound(pos1.time(tt));
ciCtrlVal e = ctrl()->upperBound(pos2.time(tt));
for (ciCtrlVal i = s; i != e; ++i) {
- int yy = ctrl()->val2pixelR(i.value(), wh);
+ int yy = ctrl()->val2pixelR(i.value(), wh - HANDLE1 + splitWidth) + HANDLE2;
startY = yy;
if ((yy >= (y-HANDLE2)) && (yy < (y + HANDLE2))) {
if (tt == AL::TICKS)
@@ -358,7 +360,7 @@ void CtrlEditor::mouseRelease()
if (id == CTRL_VELOCITY ||
(CTRL_SVELOCITY && e->second.pitch() == singlePitch)) {
int y = y1 + (y2 - y1) * (pos - from) / (to - from);
- int val = (ctrl()->pixel2val(y, cheight())).i;
+ int val = (ctrl()->pixel2val(y+HANDLE2, cheight()-HANDLE1+splitWidth)).i;
Event clone = e->second.clone();
clone.setB(val);
song->changeEvent(e->second, clone, part);
@@ -378,8 +380,8 @@ void CtrlEditor::mouseRelease()
song->endUndo(SC_EVENT_MODIFIED);
else {
if (dragy != -1 && dragy != startY) {
- int wh = cheight();
- CVal val = ctrl()->pixel2val(dragy, wh);
+ int wh = cheight() - HANDLE1 + splitWidth;
+ CVal val = ctrl()->pixel2val(dragy+HANDLE2, wh);
// modify controller:
song->cmdAddControllerVal(track(), ctrl(), selected, val);
}
@@ -407,8 +409,8 @@ void CtrlEditor::mouseMove(const QPoint& pos)
AL::Pos p2(tc()->pix2pos(pos.x()));
dragx = pos.x();
- int wh = cheight();
- int val = (ctrl()->pixel2val(pos.y(), wh)).i;
+ int wh = cheight() - HANDLE1 + splitWidth;
+ int val = (ctrl()->pixel2val(pos.y() - HANDLE2, wh)).i;
unsigned tick1 = p1.tick();
Part* part = track()->parts()->findPart(tick1);
if (part == 0)
@@ -475,11 +477,13 @@ void CtrlEditor::mouseMove(const QPoint& pos)
}
}
if (dragy != -1) {
+ int th = cheight() + splitWidth - HANDLE2 - 1;
dragy = pos.y() + dragYoffset;
- if (dragy < 0)
- dragy = 0;
- else if (dragy > cheight())
- dragy = cheight();
+ if (dragy < HANDLE2)
+ dragy = HANDLE2;
+ else if (dragy > th) {
+ dragy = th;
+ }
}
}
tc()->widget()->update();
diff --git a/muse/muse/ctrl/ctrleditor.h b/muse/muse/ctrl/ctrleditor.h
index 97f12861..e33a8b29 100644
--- a/muse/muse/ctrl/ctrleditor.h
+++ b/muse/muse/ctrl/ctrleditor.h
@@ -38,6 +38,8 @@ class CtrlEditor {
int dragYoffset;
int startY;
+ int th; // effective track height, temp value
+
int lselected; // cached pixel position of current value
AL::Pos selected; // current selected controller value
diff --git a/muse/muse/gconfig.cpp b/muse/muse/gconfig.cpp
index 840e75f7..46850dcc 100644
--- a/muse/muse/gconfig.cpp
+++ b/muse/muse/gconfig.cpp
@@ -70,8 +70,10 @@ GlobalConfigValues config = {
384, // division;
1024, // rtcTicks
- -60, // int minMeter;
- -60.0, // double minSlider;
+ -60.0, // minMeter (dB)
+ 10.0, // maxMeter (dB)
+ -60.0, // double minSlider (dB)
+ 10.0, // double maxSlider (dB)
20, // int guiRefresh;
2000, // peak hold time (ms)
QString(""), // helpBrowser
@@ -89,7 +91,7 @@ GlobalConfigValues config = {
QRect(0, 0, 600, 400), // GeometryDrumedit;
{
QRect(0, 0, 300, 500), // Mixer1
- false, true, true, true,
+ false, true, true, true,
true, true, true, true, true, true
},
{
diff --git a/muse/muse/gconfig.h b/muse/muse/gconfig.h
index 1356fb22..8d22d227 100644
--- a/muse/muse/gconfig.h
+++ b/muse/muse/gconfig.h
@@ -73,8 +73,10 @@ struct GlobalConfigValues {
int division;
int rtcTicks;
- int minMeter;
+ double minMeter;
+ double maxMeter;
double minSlider;
+ double maxSlider;
int guiRefresh;
int peakHoldTime; // peak meter hold time (ms)
QString helpBrowser;
diff --git a/muse/muse/mixer/astrip.cpp b/muse/muse/mixer/astrip.cpp
index 32ab4a3e..6f2720d1 100644
--- a/muse/muse/mixer/astrip.cpp
+++ b/muse/muse/mixer/astrip.cpp
@@ -91,7 +91,7 @@ AudioStrip::AudioStrip(Mixer* m, AudioTrack* t, bool align)
//---------------------------------------------------
slider = new Awl::MeterSlider(this);
- slider->setRange(config.minSlider-0.1f, 10.0f);
+ slider->setRange(config.minSlider, config.maxSlider);
slider->setFixedWidth(60);
slider->setChannel(channel);
Ctrl* ctrl = t->getController(AC_VOLUME);
@@ -199,7 +199,7 @@ AudioStrip::AudioStrip(Mixer* m, AudioTrack* t, bool align)
rBox->addWidget(iR);
connect(iR->menu(), SIGNAL(aboutToShow()), SLOT(iRouteShow()));
connect(iR->menu(), SIGNAL(triggered(QAction*)), song, SLOT(routeChanged(QAction*)));
-
+
oR = newOutRouteButton();
rBox->addWidget(oR);
connect(oR->menu(), SIGNAL(aboutToShow()), SLOT(oRouteShow()));
@@ -472,7 +472,7 @@ static void addAuxPorts(AudioTrack* track, QMenu* lb, const RouteList& rl)
Route route = Route(RouteNode(p), RouteNode(track));
a->setData(QVariant::fromValue(route));
a->setChecked(rl.indexOf(route) != -1);
- }
+ }
}
//---------------------------------------------------------
@@ -637,7 +637,7 @@ void AudioStrip::iRouteShow()
addMidiTracks(m, track, ch, true);
addMidiInPorts(m, track, ch);
}
- break;
+ break;
}
}
diff --git a/muse/muse/preferences.cpp b/muse/muse/preferences.cpp
index bcd1aa02..50c37e3d 100644
--- a/muse/muse/preferences.cpp
+++ b/muse/muse/preferences.cpp
@@ -269,7 +269,9 @@ PreferencesDialog::PreferencesDialog(Arranger* a, QWidget* parent)
guiRefreshSelect->setValue(config->guiRefresh);
minSliderSelect->setValue(int(config->minSlider));
- minMeterSelect->setValue(config->minMeter);
+ maxSliderSelect->setValue(int(config->maxSlider));
+ minMeterSelect->setValue(int(config->minMeter));
+ maxMeterSelect->setValue(int(config->maxMeter));
peakHoldTime->setValue(config->peakHoldTime);
helpBrowser->setText(config->helpBrowser);
startProjectEntry->setText(config->startProject);
@@ -280,14 +282,14 @@ PreferencesDialog::PreferencesDialog(Arranger* a, QWidget* parent)
startProjectGroup->addButton(startWithProject);
switch(config->startMode) {
- case START_ASK_FOR_PROJECT:
- alwaysAsk->setChecked(true);
+ case START_ASK_FOR_PROJECT:
+ alwaysAsk->setChecked(true);
break;
- case START_LAST_PROJECT:
- startWithLastProject->setChecked(true);
+ case START_LAST_PROJECT:
+ startWithLastProject->setChecked(true);
break;
- case START_START_PROJECT:
- startWithProject->setChecked(true);
+ case START_START_PROJECT:
+ startWithProject->setChecked(true);
break;
}
@@ -463,26 +465,26 @@ void PreferencesDialog::apply()
int showPartEvent = 0;
int showPartType = 0;
- if (partShownames->isChecked())
+ if (partShownames->isChecked())
showPartType |= 1;
- if (partShowevents->isChecked())
+ if (partShowevents->isChecked())
showPartType |= 2;
- if (partShowCakes->isChecked())
+ if (partShowCakes->isChecked())
showPartType |= 4;
- if (eventNoteon->isChecked())
+ if (eventNoteon->isChecked())
showPartEvent |= (1 << 0);
- if (eventPolypressure->isChecked())
+ if (eventPolypressure->isChecked())
showPartEvent |= (1 << 1);
- if (eventController->isChecked())
+ if (eventController->isChecked())
showPartEvent |= (1 << 2);
- if (eventProgramchange->isChecked())
+ if (eventProgramchange->isChecked())
showPartEvent |= (1 << 3);
- if (eventAftertouch->isChecked())
+ if (eventAftertouch->isChecked())
showPartEvent |= (1 << 4);
- if (eventPitchbend->isChecked())
+ if (eventPitchbend->isChecked())
showPartEvent |= (1 << 5);
- if (eventSpecial->isChecked())
+ if (eventSpecial->isChecked())
showPartEvent |= (1 << 6);
config->canvasUseBgPixmap = usePixmap->isChecked();
@@ -542,7 +544,9 @@ void PreferencesDialog::apply()
::config.guiRefresh = guiRefreshSelect->value();
::config.minSlider = minSliderSelect->value();
+ ::config.maxSlider = maxSliderSelect->value();
::config.minMeter = minMeterSelect->value();
+ ::config.maxMeter = maxMeterSelect->value();
::config.peakHoldTime = peakHoldTime->value();
::config.rtcTicks = rtcResolutions[rtcticks];
::config.guiDivision = divisions[div];
diff --git a/muse/muse/preferences.ui b/muse/muse/preferences.ui
index 1c3d5ca5..ca65292b 100644
--- a/muse/muse/preferences.ui
+++ b/muse/muse/preferences.ui
@@ -22,7 +22,7 @@
<item>
<widget class="QTabWidget" name="tabWidget" >
<property name="currentIndex" >
- <number>0</number>
+ <number>2</number>
</property>
<widget class="QWidget" name="tab" >
<attribute name="title" >
@@ -1042,47 +1042,102 @@
<property name="spacing" >
<number>6</number>
</property>
- <item row="0" column="3" >
- <widget class="QSpinBox" name="peakHoldTime" >
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_7" >
+ <property name="text" >
+ <string>Slider Val, Min:</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QSpinBox" name="minSliderSelect" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="suffix" >
- <string>ms</string>
+ <string>dB</string>
</property>
<property name="maximum" >
- <number>5000</number>
+ <number>0</number>
</property>
<property name="minimum" >
- <number>20</number>
+ <number>-100</number>
+ </property>
+ <property name="value" >
+ <number>-60</number>
</property>
</widget>
</item>
<item row="0" column="2" >
+ <widget class="QLabel" name="label_39" >
+ <property name="text" >
+ <string>Max:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QSpinBox" name="maxSliderSelect" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="suffix" >
+ <string>dB</string>
+ </property>
+ <property name="value" >
+ <number>10</number>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="4" >
<widget class="QLabel" name="label_20" >
<property name="text" >
<string>Peak Hold Time:</string>
</property>
</widget>
</item>
- <item row="1" column="1" >
- <widget class="QSpinBox" name="minMeterSelect" >
+ <item row="0" column="5" >
+ <widget class="QSpinBox" name="peakHoldTime" >
<property name="suffix" >
- <string>dB</string>
+ <string>ms</string>
</property>
<property name="maximum" >
- <number>0</number>
+ <number>5000</number>
</property>
<property name="minimum" >
- <number>-100</number>
- </property>
- <property name="singleStep" >
- <number>10</number>
+ <number>20</number>
</property>
- <property name="value" >
- <number>-60</number>
+ </widget>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QLabel" name="label_8" >
+ <property name="text" >
+ <string>Meter Val, Min:</string>
</property>
</widget>
</item>
- <item row="0" column="1" >
- <widget class="QSpinBox" name="minSliderSelect" >
+ <item row="1" column="1" >
+ <widget class="QSpinBox" name="minMeterSelect" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
<property name="suffix" >
<string>dB</string>
</property>
@@ -1092,22 +1147,42 @@
<property name="minimum" >
<number>-100</number>
</property>
+ <property name="singleStep" >
+ <number>10</number>
+ </property>
<property name="value" >
<number>-60</number>
</property>
</widget>
</item>
- <item row="1" column="0" >
- <widget class="QLabel" name="label_8" >
+ <item row="1" column="2" >
+ <widget class="QLabel" name="label_40" >
<property name="text" >
- <string>min. Meter Val</string>
+ <string>Max:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
- <item row="0" column="0" >
- <widget class="QLabel" name="label_7" >
- <property name="text" >
- <string>min. Slider Val</string>
+ <item row="1" column="3" >
+ <widget class="QSpinBox" name="maxMeterSelect" >
+ <property name="sizePolicy" >
+ <sizepolicy>
+ <hsizetype>5</hsizetype>
+ <vsizetype>0</vsizetype>
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="suffix" >
+ <string>dB</string>
+ </property>
+ <property name="maximum" >
+ <number>40</number>
+ </property>
+ <property name="value" >
+ <number>10</number>
</property>
</widget>
</item>
@@ -2285,6 +2360,11 @@
</widget>
<customwidgets>
<customwidget>
+ <class>RecordButton</class>
+ <extends>QToolButton</extends>
+ <header>recordbutton.h</header>
+ </customwidget>
+ <customwidget>
<class>RasterCombo</class>
<extends>QComboBox</extends>
<header>rastercombo.h</header>
@@ -2299,11 +2379,6 @@
<extends>QToolButton</extends>
<header>greendotbutton.h</header>
</customwidget>
- <customwidget>
- <class>RecordButton</class>
- <extends>QToolButton</extends>
- <header>recordbutton.h</header>
- </customwidget>
</customwidgets>
<resources/>
<connections>