From e4ac2f472d4317cd7696f0470e7e4c764baeea63 Mon Sep 17 00:00:00 2001 From: Peter L Jones Date: Fri, 10 Apr 2020 17:52:17 +0100 Subject: [PATCH] Use variable frame size in Reaper project --- src/recorder/creaperproject.cpp | 14 +++++++------- src/recorder/creaperproject.h | 12 ++++++++---- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/recorder/creaperproject.cpp b/src/recorder/creaperproject.cpp index 412f61e1..69b179ce 100755 --- a/src/recorder/creaperproject.cpp +++ b/src/recorder/creaperproject.cpp @@ -55,7 +55,7 @@ using namespace recorder; * @param trackItem the details of where the item is in the track, along with the RIFF WAVE filename * @param iid the sequential item id */ -CReaperItem::CReaperItem(const QString& name, const STrackItem& trackItem, const qint32& iid) +CReaperItem::CReaperItem(const QString& name, const STrackItem& trackItem, const qint32& iid, int frameSize) { QString wavName = trackItem.fileName; // assume RPP in same location... @@ -64,8 +64,8 @@ CReaperItem::CReaperItem(const QString& name, const STrackItem& trackItem, const sOut << " items) +CReaperTrack::CReaperTrack(QString name, qint32& iid, QList items, int frameSize) { QTextStream sOut(&out); @@ -96,7 +96,7 @@ CReaperTrack::CReaperTrack(QString name, qint32& iid, QList items) int ino = 1; foreach (auto item, items) { - sOut << CReaperItem(name + " (" + QString::number(ino) + ")", item, iid).toString() << endl; + sOut << CReaperItem(name + " (" + QString::number(ino) + ")", item, iid, frameSize).toString() << endl; ino++; iid++; } @@ -109,7 +109,7 @@ CReaperTrack::CReaperTrack(QString name, qint32& iid, QList items) * @brief CReaperProject::CReaperProject Construct a Reaper RPP "" for a given list of tracks * @param tracks the list of tracks */ -CReaperProject::CReaperProject(QMap> tracks) +CReaperProject::CReaperProject(QMap> tracks, int frameSize) { QTextStream sOut(&out); @@ -121,7 +121,7 @@ CReaperProject::CReaperProject(QMap> tracks) qint32 iid = 0; foreach(auto trackName, tracks.keys()) { - sOut << CReaperTrack(trackName, iid, tracks[trackName]).toString() << endl; + sOut << CReaperTrack(trackName, iid, tracks[trackName], frameSize).toString() << endl; } sOut << ">"; diff --git a/src/recorder/creaperproject.h b/src/recorder/creaperproject.h index 5e2f49df..be6f190a 100755 --- a/src/recorder/creaperproject.h +++ b/src/recorder/creaperproject.h @@ -52,7 +52,7 @@ class CReaperItem : public QObject Q_OBJECT public: - CReaperItem(const QString& name, const STrackItem& trackItem, const qint32& iid); + CReaperItem( const QString& name, const STrackItem& trackItem, const qint32& iid, int frameSize ); QString toString() { return out; } private: @@ -60,7 +60,11 @@ private: const QUuid guid = QUuid::createUuid(); QString out; - inline QString secondsAt48K(const qint64 frames) { return QString::number(static_cast(frames * SYSTEM_FRAME_SIZE_SAMPLES) / 48000, 'f', 14); } + inline QString secondsAt48K( const qint64 frames, + const int frameSize ) + { + return QString::number( static_cast( frames * frameSize ) / 48000, 'f', 14 ); + } }; class CReaperTrack : public QObject @@ -68,7 +72,7 @@ class CReaperTrack : public QObject Q_OBJECT public: - CReaperTrack(QString name, qint32 &iid, QList items); + CReaperTrack( QString name, qint32 &iid, QList items, int frameSize ); QString toString() { return out; } private: @@ -81,7 +85,7 @@ class CReaperProject : public QObject Q_OBJECT public: - CReaperProject(QMap > tracks); + CReaperProject( QMap > tracks, int frameSize ); QString toString() { return out; } private: