From 24352549ba0a9d5cafd1374969d7866956300214 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/AbstractMediaContext.hh | 16 ++++++++-------- src/Lib/Audio.hh | 4 ---- 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 | 9 ++------- src/UI/DocumentViews/TimingScene.hh | 5 ++--- src/UI/DocumentViews/TimingView.cc | 2 +- src/UI/DocumentViews/TimingView.hh | 3 +-- 10 files changed, 21 insertions(+), 32 deletions(-) diff --git a/src/Lib/AbstractMediaContext.hh b/src/Lib/AbstractMediaContext.hh index a73f92ef..2a9448b4 100644 --- a/src/Lib/AbstractMediaContext.hh +++ b/src/Lib/AbstractMediaContext.hh @@ -99,11 +99,11 @@ public: return ret; } - qreal getDuration() const noexcept + quint64 getDuration() const noexcept { - 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()); } protected: @@ -192,12 +192,12 @@ public: return StreamWeakPtr{ spareNullSreamPtr }; } - qreal getDuration() const noexcept + quint64 getDuration() const noexcept { // The whole file duration, not individual streams. - return qreal(std::chrono::duration<qreal, std::ratio<1, 1>>( - std::chrono::microseconds(format->duration)) - .count()); + return quint64(std::chrono::duration<qreal, std::ratio<1, 1000>>( + std::chrono::microseconds(format->duration)) + .count()); } StreamWeakPtr getDefaultStream() const noexcept diff --git a/src/Lib/Audio.hh b/src/Lib/Audio.hh index 920b1033..08706f94 100644 --- a/src/Lib/Audio.hh +++ b/src/Lib/Audio.hh @@ -56,10 +56,6 @@ private: class AudioContext final : public AbstractMediaContext<AudioStream> { VIVY_UNMOVABLE_OBJECT(AudioContext) -public: - using StreamPtr = std::shared_ptr<AudioStream>; - using StreamWeakPtr = std::weak_ptr<AudioStream>; - public: AudioContext(const QString &path); diff --git a/src/UI/DocumentViews/AudioVisualizer.cc b/src/UI/DocumentViews/AudioVisualizer.cc index 894a6412..c0f0fa31 100644 --- a/src/UI/DocumentViews/AudioVisualizer.cc +++ b/src/UI/DocumentViews/AudioVisualizer.cc @@ -63,7 +63,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 a6943667..33523f7a 100644 --- a/src/UI/DocumentViews/AudioVisualizer.hh +++ b/src/UI/DocumentViews/AudioVisualizer.hh @@ -34,7 +34,7 @@ public: ~AudioVisualizer() noexcept override = 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 d674234b..f9b861cf 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_) @@ -40,7 +40,7 @@ TimingAxis::refreshTicks() QGraphicsScene *parentScene = scene(); if (parentScene != nullptr) { for (minorTicksIndex = 0; minorTicksIndex < nbAvailableTicks; minorTicksIndex++) { - if (parentScene->width() / (audioLength * availableTicks[minorTicksIndex]) < + 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 812f040d..50a3bad0 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 override = 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 c58afb16..45fbec78 100644 --- a/src/UI/DocumentViews/TimingScene.cc +++ b/src/UI/DocumentViews/TimingScene.cc @@ -15,12 +15,7 @@ using namespace Vivy; -TimingScene::TimingScene(QWidget *parent) noexcept - : QGraphicsScene(parent) -{ -} - -TimingScene::TimingScene(QImage img_, qreal soundLength_, QWidget *parent) noexcept +TimingScene::TimingScene(QImage img_, quint64 soundLength_, QWidget *parent) noexcept : QGraphicsScene(parent) , img(img_) , soundLength(soundLength_) @@ -82,7 +77,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 67c8749a..6d28bf17 100644 --- a/src/UI/DocumentViews/TimingScene.hh +++ b/src/UI/DocumentViews/TimingScene.hh @@ -18,14 +18,13 @@ public: static inline constexpr QColor startColour = QColor(127, 0, 127); 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 override = 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 0944c024..81232d6f 100644 --- a/src/UI/DocumentViews/TimingView.cc +++ b/src/UI/DocumentViews/TimingView.cc @@ -2,7 +2,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 c9c8032d..e39ea90e 100644 --- a/src/UI/DocumentViews/TimingView.hh +++ b/src/UI/DocumentViews/TimingView.hh @@ -20,11 +20,10 @@ 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 override = default; TimingScene *getTimingScene() const; - void wheelEvent(QWheelEvent *) noexcept override; private: -- GitLab