Browse Source

Update digitalpeakmeter.py to match global code syntax

tags/v0.9.0
falkTX 13 years ago
parent
commit
826815d814
1 changed files with 70 additions and 75 deletions
  1. +70
    -75
      src/digitalpeakmeter.py

+ 70
- 75
src/digitalpeakmeter.py View File

@@ -32,46 +32,42 @@ class DigitalPeakMeter(QWidget):
QWidget.__init__(self, parent) QWidget.__init__(self, parent)


self.m_channels = 0 self.m_channels = 0
self.bg_color = QColor("#111111")

self.base_color = QColor("#5DE73D")
self.base_colorT = QColor(15, 110, 15, 100)
self.m_orientation = self.VERTICAL self.m_orientation = self.VERTICAL
self.m_smoothMultiplier = 1


self.meter_gradient = QLinearGradient(0, 0, 1, 1)
self.smooth_multiplier = 1
self.m_colorBackground = QColor("#111111")
self.m_gradientMeter = QLinearGradient(0, 0, 1, 1)


self.setOrientation(self.VERTICAL)
self.setChannels(2)
self.setChannels(0)
self.setColor(self.GREEN)


self.paint_timer = QTimer()
self.paint_timer.setInterval(60)
self.paint_timer.timeout.connect(self.update)
self.paint_timer.start()
self.m_paintTimer = QTimer(self)
self.m_paintTimer.setInterval(60)
self.m_paintTimer.timeout.connect(self.update)
self.m_paintTimer.start()


def minimumSizeHint(self): def minimumSizeHint(self):
return QSize(30, 30) return QSize(30, 30)


def sizeHint(self): def sizeHint(self):
return QSize(self.width_, self.height_)
return QSize(self.m_width, self.m_height)


def setChannels(self, channels): def setChannels(self, channels):
self.m_channels = channels self.m_channels = channels
self.channels_data = []
self.last_max_data = []
self.m_channels_data = []
self.m_lastValueData = []


if (channels > 0):
for i in range(channels):
self.channels_data.append(0.0)
self.last_max_data.append(0.0) #self.height_
for i in range(channels):
self.m_channels_data.append(0.0)
self.m_lastValueData.append(0.0)


def setColor(self, color): def setColor(self, color):
if (color == self.GREEN): if (color == self.GREEN):
self.base_color = QColor("#5DE73D")
self.base_colorT = QColor(15, 110, 15, 100)
self.m_colorBase = QColor("#5DE73D")
self.m_colorBaseT = QColor(15, 110, 15, 100)
elif (color == self.BLUE): elif (color == self.BLUE):
self.base_color = QColor("#52EEF8")
self.base_colorT = QColor(15, 15, 110, 100)
self.m_colorBase = QColor("#52EEF8")
self.m_colorBaseT = QColor(15, 15, 110, 100)
else: else:
return return


@@ -81,37 +77,37 @@ class DigitalPeakMeter(QWidget):
self.m_orientation = orientation self.m_orientation = orientation


if (self.m_orientation == self.HORIZONTAL): if (self.m_orientation == self.HORIZONTAL):
self.meter_gradient.setColorAt(0.0, self.base_color)
self.meter_gradient.setColorAt(0.2, self.base_color)
self.meter_gradient.setColorAt(0.4, self.base_color)
self.meter_gradient.setColorAt(0.6, self.base_color)
self.meter_gradient.setColorAt(0.8, Qt.yellow)
self.meter_gradient.setColorAt(1.0, Qt.red)
self.m_gradientMeter.setColorAt(0.0, self.m_colorBase)
self.m_gradientMeter.setColorAt(0.2, self.m_colorBase)
self.m_gradientMeter.setColorAt(0.4, self.m_colorBase)
self.m_gradientMeter.setColorAt(0.6, self.m_colorBase)
self.m_gradientMeter.setColorAt(0.8, Qt.yellow)
self.m_gradientMeter.setColorAt(1.0, Qt.red)


elif (self.m_orientation == self.VERTICAL): elif (self.m_orientation == self.VERTICAL):
self.meter_gradient.setColorAt(0.0, Qt.red)
self.meter_gradient.setColorAt(0.2, Qt.yellow)
self.meter_gradient.setColorAt(0.4, self.base_color)
self.meter_gradient.setColorAt(0.6, self.base_color)
self.meter_gradient.setColorAt(0.8, self.base_color)
self.meter_gradient.setColorAt(1.0, self.base_color)
self.m_gradientMeter.setColorAt(0.0, Qt.red)
self.m_gradientMeter.setColorAt(0.2, Qt.yellow)
self.m_gradientMeter.setColorAt(0.4, self.m_colorBase)
self.m_gradientMeter.setColorAt(0.6, self.m_colorBase)
self.m_gradientMeter.setColorAt(0.8, self.m_colorBase)
self.m_gradientMeter.setColorAt(1.0, self.m_colorBase)


self.checkSizes() self.checkSizes()


def setRefreshRate(self, rate): def setRefreshRate(self, rate):
self.paint_timer.stop()
self.paint_timer.setInterval(rate)
self.paint_timer.start()
self.m_paintTimer.stop()
self.m_paintTimer.setInterval(rate)
self.m_paintTimer.start()


def setSmoothRelease(self, value): def setSmoothRelease(self, value):
if (value < 0): if (value < 0):
value = 0 value = 0
elif (value > 5): elif (value > 5):
value = 5 value = 5
self.smooth_multiplier = value
self.m_smoothMultiplier = value


def displayMeter(self, meter_n, level): def displayMeter(self, meter_n, level):
if (meter_n > self.m_channels):
if (meter_n < 0 or meter_n > self.m_channels):
qCritical("DigitalPeakMeter::displayMeter(%i, %f) - Invalid meter number", meter_n, level) qCritical("DigitalPeakMeter::displayMeter(%i, %f) - Invalid meter number", meter_n, level)
return return


@@ -120,77 +116,72 @@ class DigitalPeakMeter(QWidget):
if (level > 1.0): if (level > 1.0):
level = 1.0 level = 1.0


self.channels_data[meter_n-1] = level
self.m_channels_data[meter_n-1] = level


def checkSizes(self): def checkSizes(self):
self.width_ = self.width()
self.height_ = self.height()
self.meter_size = 0
self.m_width = self.width()
self.m_height = self.height()
self.m_sizeMeter = 0


if (self.m_orientation == self.HORIZONTAL): if (self.m_orientation == self.HORIZONTAL):
self.meter_gradient.setFinalStop(self.width_, 0)
self.m_gradientMeter.setFinalStop(self.m_width, 0)
if (self.m_channels > 0): if (self.m_channels > 0):
self.meter_size = self.height_/self.m_channels
self.m_sizeMeter = self.m_height/self.m_channels


elif (self.m_orientation == self.VERTICAL): elif (self.m_orientation == self.VERTICAL):
self.meter_gradient.setFinalStop(0, self.height_)
self.m_gradientMeter.setFinalStop(0, self.m_height)
if (self.m_channels > 0): if (self.m_channels > 0):
self.meter_size = self.width_/self.m_channels
self.m_sizeMeter = self.m_width/self.m_channels


def paintEvent(self, event): def paintEvent(self, event):
painter = QPainter(self) painter = QPainter(self)


painter.setPen(Qt.black) painter.setPen(Qt.black)
painter.setBrush(Qt.black) painter.setBrush(Qt.black)
painter.drawRect(0, 0, self.width_, self.height_)
painter.drawRect(0, 0, self.m_width, self.m_height)


meter_x = 0 meter_x = 0


for i in range(self.m_channels): for i in range(self.m_channels):
level = self.channels_data[i]
level = self.m_channels_data[i]


if (level == self.last_max_data[i]):
if (level == self.m_lastValueData[i]):
continue continue


if (self.m_orientation == self.HORIZONTAL): if (self.m_orientation == self.HORIZONTAL):
value = self.width_*level
value = self.m_width*level
elif (self.m_orientation == self.VERTICAL): elif (self.m_orientation == self.VERTICAL):
value = self.height_-(self.height_*level)
value = self.m_height-(self.m_height*level)
else: else:
value = 0 value = 0


# Don't bounce the meter so much
if (self.smooth_multiplier > 0):
value = (self.last_max_data[i]*self.smooth_multiplier + value)/(self.smooth_multiplier+1)

if (value < 0): if (value < 0):
value = 0 value = 0


painter.setPen(self.bg_color)
painter.setBrush(self.meter_gradient)
# Don't bounce the meter so much
if (self.m_smoothMultiplier > 0):
value = (self.m_lastValueData[i]*self.m_smoothMultiplier + value)/(self.m_smoothMultiplier+1)

painter.setPen(self.m_colorBackground)
painter.setBrush(self.m_gradientMeter)


if (self.m_orientation == self.HORIZONTAL): if (self.m_orientation == self.HORIZONTAL):
painter.drawRect(0, meter_x, value, self.meter_size)
painter.drawRect(0, meter_x, value, self.m_sizeMeter)
elif (self.m_orientation == self.VERTICAL): elif (self.m_orientation == self.VERTICAL):
painter.drawRect(meter_x, value, self.meter_size, self.height_)

meter_x += self.meter_size
self.last_max_data[i] = value
painter.drawRect(meter_x, value, self.m_sizeMeter, self.m_height)


if (self.m_orientation == self.HORIZONTAL):
lsmall = self.width_
lfull = self.height_-1
elif (self.m_orientation == self.VERTICAL):
lsmall = self.height_
lfull = self.width_-1
else:
return
meter_x += self.m_sizeMeter
self.m_lastValueData[i] = value


painter.setBrush(QColor(0, 0, 0, 0)) painter.setBrush(QColor(0, 0, 0, 0))


if (self.m_orientation == self.HORIZONTAL): if (self.m_orientation == self.HORIZONTAL):
# Variables
lsmall = self.m_width
lfull = self.m_height-1

# Base # Base
painter.setPen(self.base_colorT)
painter.setPen(self.m_colorBaseT)
painter.drawLine(lsmall/4, 1, lsmall/4, lfull) painter.drawLine(lsmall/4, 1, lsmall/4, lfull)
painter.drawLine(lsmall/2, 1, lsmall/2, lfull) painter.drawLine(lsmall/2, 1, lsmall/2, lfull)


@@ -208,8 +199,12 @@ class DigitalPeakMeter(QWidget):
painter.drawLine(lsmall/1.04, 1, lsmall/1.04, lfull) painter.drawLine(lsmall/1.04, 1, lsmall/1.04, lfull)


elif (self.m_orientation == self.VERTICAL): elif (self.m_orientation == self.VERTICAL):
# Variables
lsmall = self.m_height
lfull = self.m_width-1

# Base # Base
painter.setPen(self.base_colorT)
painter.setPen(self.m_colorBaseT)
painter.drawLine(1, lsmall-(lsmall/4), lfull, lsmall-(lsmall/4)) painter.drawLine(1, lsmall-(lsmall/4), lfull, lsmall-(lsmall/4))
painter.drawLine(1, lsmall-(lsmall/2), lfull, lsmall-(lsmall/2)) painter.drawLine(1, lsmall-(lsmall/2), lfull, lsmall-(lsmall/2))


@@ -228,4 +223,4 @@ class DigitalPeakMeter(QWidget):


def resizeEvent(self, event): def resizeEvent(self, event):
QTimer.singleShot(0, self.checkSizes) QTimer.singleShot(0, self.checkSizes)
return QWidget.resizeEvent(self, event)
QWidget.resizeEvent(self, event)

Loading…
Cancel
Save