Skip to content
Extraits de code Groupes Projets

Draft: improve the audio vizualiser

Fermé Elliu a demandé de fusionner timingView-improve vers master
4 files
+ 55
15
Comparer les modifications
  • Côte à côte
  • En ligne

Fichiers

  • f2e5fd3d
    Add time digits to the timingAxis · f2e5fd3d
    Elliu rédigé
    For now it's not correct as it's calculating from pixels instead of from
    ms, will need to rethink the way audio information is stored to fix it
@@ -9,6 +9,7 @@
#include <QScrollArea>
#include <QScrollBar>
#include <QVBoxLayout>
#include <QTime>
using namespace Vivy;
@@ -56,13 +57,31 @@ void TimingAxis::paint(QPainter *painter, const QStyleOptionGraphicsItem *option
if (audioLength == 0)
return;
painter->drawLine(x0, y, x1, y);
int ticks_base = y+ticksBase;
int yText = ticks_base - majorTicksHeight - timeDigitsMargin;
int majorTicksUp = ticks_base - majorTicksHeight;
int minorTicksUp = ticks_base - minorTicksHeight;
for (qreal i = majorTicks; i < x1-x0; i += majorTicks){
painter->drawLine(int(x0+i), y-5, int(x0+i), y+5);
painter->drawLine(x0, ticks_base, x1, ticks_base);
for (int i = majorTicks; i < x1-x0; i += majorTicks){
painter->drawText(QPoint(x0+i, yText), msToString(i));
painter->drawLine(int(x0+i), majorTicksUp, int(x0+i), ticks_base);
}
if (minorTicks >= 0)
for (qreal i = minorTicks; i < x1-x0; i += minorTicks)
for (int i = minorTicks; i < x1-x0; i += minorTicks)
if (fmod(i, majorTicks) != 0)
painter->drawLine(int(x0+i), y-2, int(x0+i), y+2);
painter->drawLine(int(x0+i), minorTicksUp, int(x0+i), ticks_base);
}
QString
TimingAxis::msToString(int t) const noexcept
{
qDebug() << "GOT " << t;
QString ret(QString::number(t/1000) + QString(".") + QString::number(t % 1000 / majorTicks));
if (t >= 60000)
ret.prepend(QString::number(t/60000) + QString(":"));
if (t >= 360000)
ret.prepend(QString::number(t/360000) + QString(":"));
return ret;
}
Chargement en cours