wip: endpoint meter

This commit is contained in:
Hane 2024-04-30 21:30:58 +02:00
commit 6bda4702df
7 changed files with 41 additions and 11 deletions

View file

@ -5,6 +5,10 @@ CustomWidgetEvent<T>::CustomWidgetEvent(QEvent::Type type, T payload) : QEvent(t
this->payload = payload;
}
void MeterSlider::setPeakValue(float peakValue) {
this->peakValue = peakValue;
}
void MeterSlider::paintEvent(QPaintEvent *event) {
//Q_D(QSlider);
/*
@ -23,11 +27,15 @@ void MeterSlider::paintEvent(QPaintEvent *event) {
QStyle *style = QApplication::style();
int lol = style->pixelMetric(QStyle::PM_SliderSpaceAvailable);
QPainter painter(this);
painter.setPen(Qt::blue);
//painter.setPen(Qt::blue);
painter.setOpacity(1.0);
painter.setClipping(false);
painter.setCompositionMode(QPainter::CompositionMode::CompositionMode_Source);
painter.fillRect(0, (this->height() / 2) - 3, this->width(), 4, Qt::black);
float peakLength = (this->width() * (this->peakValue));
//const qreal dpr = painter->device()->devicePixelRatio();
QStyleOptionSlider slider = QStyleOptionSlider();
QRect test = QApplication::style()->subControlRect(QStyle::CC_Slider, (QStyleOptionComplex*)&slider, QStyle::SC_SliderHandle);
painter.fillRect(0, (this->height() / 2) - 3, (this->width() * (this->peakValue)), 4, Qt::green);
}
void ExtendedCheckBox::customEvent(QEvent* ev) {
@ -482,6 +490,8 @@ EndpointWidget::EndpointWidget(EndpointHandler* eph, QWidget *parent, uint64_t i
mainSlider->blockSignals(true);
muteButton->blockSignals(true);
mainSlider->setValue((int)((eph->getCallbackInfo()->mainVolume + roundingFactor) * 100));
mainSlider->setPeakValue(eph->getPeakVolume());
mainSlider->update();
mainVolumeLabel->setText(QString::number(mainSlider->value()));
muteButton->setCheckState((eph->getCallbackInfo()->muted == false ? Qt::Unchecked : Qt::Checked));
muteButton->setText(eph->getCallbackInfo()->muted ? STRING_UNMUTE : STRING_MUTE);
@ -496,7 +506,7 @@ EndpointWidget::EndpointWidget(EndpointHandler* eph, QWidget *parent, uint64_t i
mainSlider->blockSignals(false);
muteButton->blockSignals(false);
});
timer->start(10);
timer->start(2);
/* First Widget batch */
for (size_t i = 0; i < eph->getSessionCount(); i++) {