diff --git a/src/Lib/AbstractMediaContext.hh b/src/Lib/AbstractMediaContext.hh index a73f92efdc5c6f699c99db9d3df7b4edc5620079..2a9448b4c9334b6c7b86ae0d04166cce51c8348b 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 920b1033228943d2ffc2a63c435682e06a7883fe..08706f94dee910e2852c28bba3ac8fe1f3b35ccc 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 894a64125b32b0f23f5d2f279c265f7510bfbc11..c0f0fa31a601044eb2e7876d1d6cebb2c786fe14 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 a69436677b049e297ef85dbf041eda8fa0eb6916..33523f7ac34ec8720537a3373a4550c8f1f56dbf 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 d674234b120e394c6af7ae559b91e097febbeb5e..f9b861cf84786594acc5d9f8bace303dd8dd4ce4 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 812f040d27d2c19f32e57b6cee226928f2a76671..50a3bad06d1dc80082308628cdfc028d5cded516 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 c58afb16b62cf11c831a7a96a789ae5feb349b10..45fbec78198019f5bc87d562c73ff24f6cabb2b8 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 67c8749aec1b9d08033d61dcab4c406c34793013..6d28bf1775967966a19e50e99ec07895be9ec863 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 0944c024955b84be365f922ac81a5da189126538..81232d6f5fff31da7a4dacf56e235e879ae514fd 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 c9c8032d6161604361edafd57bdd30097d4f2dcb..e39ea90e4c13f2bcc140027305fb094d0c32d087 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: