UI: Hold the clip flash for at least one second

Holds the clipping flash for one second to better indicate that clipping
is occurring.

Closes obsproject/obs-studio#1201
This commit is contained in:
jp9000 committed 2018-04-18 23:49:40 -07:00
1 parent e92b2560b6
commit 0d4677f3bc
2 files changed
+21

No files matched your search

+17
View File
@@ -653,6 +653,13 @@ void VolumeMeter::paintTicks(QPainter &painter, int x, int y,
}
}
#define CLIP_FLASH_DURATION_MS 1000
void VolumeMeter::ClipEnding()
{
clipping = false;
}
void VolumeMeter::paintMeter(QPainter &painter, int x, int y,
int width, int height, float magnitude, float peak, float peakHold)
{
@@ -672,6 +679,10 @@ void VolumeMeter::paintMeter(QPainter &painter, int x, int y,
int errorLength = maximumPosition - errorPosition;
locker.unlock();
if (clipping) {
peakPosition = maximumPosition;
}
if (peakPosition < minimumPosition) {
painter.fillRect(
minimumPosition, y,
@@ -740,6 +751,12 @@ void VolumeMeter::paintMeter(QPainter &painter, int x, int y,
backgroundErrorColor);
} else {
if (!clipping) {
QTimer::singleShot(CLIP_FLASH_DURATION_MS, this,
SLOT(ClipEnding()));
clipping = true;
}
qreal end = errorLength + warningLength + nominalLength;
painter.fillRect(
minimumPosition, y,