From 30a0caf206030ed9c8d469f91e3438b6cb25c6ba Mon Sep 17 00:00:00 2001 From: Elliu <goyard.louis@gmail.com> Date: Mon, 2 Aug 2021 11:33:37 +0200 Subject: [PATCH] Use quint64 for audioLength, in milliseconds --- src/Lib/Audio.cc | 4 ++-- src/Lib/Audio.hh | 2 +- src/UI/DocumentViews/AudioVisualizer.cc | 2 +- src/UI/DocumentViews/AudioVisualizer.hh | 2 +- src/UI/DocumentViews/TimingAxis.cc | 4 ++-- src/UI/DocumentViews/TimingAxis.hh | 6 +++--- src/UI/DocumentViews/TimingScene.cc | 4 ++-- src/UI/DocumentViews/TimingScene.hh | 4 ++-- src/UI/DocumentViews/TimingView.cc | 2 +- src/UI/DocumentViews/TimingView.hh | 2 +- 10 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/Lib/Audio.cc b/src/Lib/Audio.cc index 5dc0cf61..7639f3a5 100644 --- a/src/Lib/Audio.cc +++ b/src/Lib/Audio.cc @@ -296,11 +296,11 @@ AudioContext::Stream::getBitRate() const noexcept return codecContext->bit_rate; } -qreal +quint64 AudioContext::Stream::getLength() const noexcept { // The whole file duration, not individual streams. - return qreal(std::chrono::duration<qreal,std::ratio<1,1>>(std::chrono::microseconds(dataFormat->duration)).count()); + return quint64(std::chrono::duration<qreal,std::ratio<1,1000>>(std::chrono::microseconds(dataFormat->duration)).count()); } // Get the information about the decoded state of this stream diff --git a/src/Lib/Audio.hh b/src/Lib/Audio.hh index 5bf01907..72e251c4 100644 --- a/src/Lib/Audio.hh +++ b/src/Lib/Audio.hh @@ -88,7 +88,7 @@ public: qint64 getBitRate() const noexcept; // Get audio context length, if a stream is translated putting the length // on the `Stream` can pose some problems. - qreal getLength() const noexcept; + quint64 getLength() const noexcept; // Get the index from the audio context int getStreamIndex() const noexcept; diff --git a/src/UI/DocumentViews/AudioVisualizer.cc b/src/UI/DocumentViews/AudioVisualizer.cc index fce4751f..457e5cb6 100644 --- a/src/UI/DocumentViews/AudioVisualizer.cc +++ b/src/UI/DocumentViews/AudioVisualizer.cc @@ -74,7 +74,7 @@ AudioVisualizer::AudioVisualizer(AudioContext::StreamPtr stream, QWidget *parent } void -AudioVisualizer::printSpectrum(QImage pixmap, qreal audioLength) noexcept +AudioVisualizer::printSpectrum(QImage pixmap, quint64 audioLength) noexcept { TimingView *timer = new TimingView(pixmap, audioLength, this); QHBoxLayout *layout = new QHBoxLayout; diff --git a/src/UI/DocumentViews/AudioVisualizer.hh b/src/UI/DocumentViews/AudioVisualizer.hh index 329690bf..3ca56df6 100644 --- a/src/UI/DocumentViews/AudioVisualizer.hh +++ b/src/UI/DocumentViews/AudioVisualizer.hh @@ -37,7 +37,7 @@ public: ~AudioVisualizer() noexcept = default; public slots: - void printSpectrum(QImage, qreal) noexcept; + void printSpectrum(QImage, quint64) noexcept; }; } diff --git a/src/UI/DocumentViews/TimingAxis.cc b/src/UI/DocumentViews/TimingAxis.cc index ded764d5..797750eb 100644 --- a/src/UI/DocumentViews/TimingAxis.cc +++ b/src/UI/DocumentViews/TimingAxis.cc @@ -12,7 +12,7 @@ using namespace Vivy; -TimingAxis::TimingAxis(qreal audioLength_, int x0_, int x1_, int y_) noexcept +TimingAxis::TimingAxis(quint64 audioLength_, int x0_, int x1_, int y_) noexcept : QGraphicsObject(), audioLength(audioLength_), x0(x0_), @@ -36,7 +36,7 @@ void TimingAxis::refreshTicks() { QGraphicsScene *parentScene = scene(); if (parentScene != nullptr){ for (minorTicksIndex = 0; minorTicksIndex < nbAvailableTicks; minorTicksIndex++){ - if (parentScene->width() / (audioLength * availableTicks[minorTicksIndex]) < minBetweenMinor){ + if (parentScene->width() / (qreal(audioLength) * availableTicks[minorTicksIndex]) < minBetweenMinor){ minorTicksIndex = minorTicksIndex == 0 ? 0 : minorTicksIndex - 1; break; } diff --git a/src/UI/DocumentViews/TimingAxis.hh b/src/UI/DocumentViews/TimingAxis.hh index ea229d49..b7502729 100644 --- a/src/UI/DocumentViews/TimingAxis.hh +++ b/src/UI/DocumentViews/TimingAxis.hh @@ -16,7 +16,7 @@ class TimingAxis final : public QGraphicsObject { Q_OBJECT public: - explicit TimingAxis(qreal audioLength, int x0, int x1, int y) noexcept; + explicit TimingAxis(quint64 audioLength, int x0, int x1, int y) noexcept; ~TimingAxis() noexcept = default; QRectF boundingRect() const override; @@ -25,13 +25,13 @@ public: private: static inline constexpr QColor axisColour = QColor(0, 0, 127); - QVector<qreal> availableTicks = { 0.01, 0.1, 1, 10, 60, 3600, 86400 }; + QVector<qreal> availableTicks = { 10, 100, 1000, 10000, 60000, 3600000, 86400000 }; qreal minBetweenMinor{ 5 }; qreal minorTicks; qreal majorTicks; qreal penWidth{ 1 }; - qreal audioLength{ 0 }; + quint64 audioLength{ 0 }; int x0{ 0 }; int x1{ 0 }; int y { 0 }; diff --git a/src/UI/DocumentViews/TimingScene.cc b/src/UI/DocumentViews/TimingScene.cc index 6eb79ee3..6ed3ebb6 100644 --- a/src/UI/DocumentViews/TimingScene.cc +++ b/src/UI/DocumentViews/TimingScene.cc @@ -20,7 +20,7 @@ TimingScene::TimingScene(QWidget *parent) noexcept { } -TimingScene::TimingScene(QImage img_, qreal soundLength_, QWidget *parent) noexcept +TimingScene::TimingScene(QImage img_, quint64 soundLength_, QWidget *parent) noexcept : QGraphicsScene(parent) , img(img_) , soundLength(soundLength_) @@ -74,7 +74,7 @@ TimingScene::timeFromPos(qreal x) qCritical() << "Try avoid possible divide by zero in the time from position"; return 0; } else { - return x * soundLength / w; + return x * qreal(soundLength) / w; } } diff --git a/src/UI/DocumentViews/TimingScene.hh b/src/UI/DocumentViews/TimingScene.hh index 5d51774a..1ba6ae0c 100644 --- a/src/UI/DocumentViews/TimingScene.hh +++ b/src/UI/DocumentViews/TimingScene.hh @@ -27,13 +27,13 @@ public: static inline constexpr QColor endColour = QColor(0, 127, 0); explicit TimingScene(QWidget *parent = nullptr) noexcept; - explicit TimingScene(QImage, qreal, QWidget * = nullptr) noexcept; + explicit TimingScene(QImage, quint64, QWidget * = nullptr) noexcept; ~TimingScene() noexcept = default; private: QGraphicsPixmapItem *backgroundImg{ nullptr }; QImage img; - qreal soundLength{ 0 }; + quint64 soundLength{ 0 }; Ass::LineWeakPtr currentLine{}; TimingMode timingMode{ TimingMode::Line }; TimingAxis* ax; diff --git a/src/UI/DocumentViews/TimingView.cc b/src/UI/DocumentViews/TimingView.cc index 3b14d7f8..3873f76f 100644 --- a/src/UI/DocumentViews/TimingView.cc +++ b/src/UI/DocumentViews/TimingView.cc @@ -15,7 +15,7 @@ using namespace Vivy; -TimingView::TimingView(QImage img, qreal soundLength, QWidget *parent) noexcept +TimingView::TimingView(QImage img, quint64 soundLength, QWidget *parent) noexcept : QGraphicsView(parent) { currentScene = new TimingScene(img, soundLength, this); diff --git a/src/UI/DocumentViews/TimingView.hh b/src/UI/DocumentViews/TimingView.hh index f40e150a..1a9841f9 100644 --- a/src/UI/DocumentViews/TimingView.hh +++ b/src/UI/DocumentViews/TimingView.hh @@ -26,7 +26,7 @@ public: static inline constexpr QColor startColour = QColor(127, 0, 127); static inline constexpr QColor endColour = QColor(0, 127, 0); - explicit TimingView(QImage, qreal, QWidget * = nullptr) noexcept; + explicit TimingView(QImage, quint64, QWidget * = nullptr) noexcept; ~TimingView() noexcept = default; TimingScene* getTimingScene() const; -- GitLab