[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso/src/core Peak.cpp Project.cpp Project....
From: |
Ben Levitt |
Subject: |
[Traverso-commit] traverso/src/core Peak.cpp Project.cpp Project.... |
Date: |
Sun, 15 Jul 2007 05:09:48 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Ben Levitt <benjie> 07/07/15 05:09:48
Modified files:
src/core : Peak.cpp Project.cpp Project.h ReadSource.cpp
ReadSource.h ResourcesManager.cpp
ResourcesManager.h
Log message:
- Give Peak it's own ReadSource. Avoid letting that ReadSource create
its own Peak
which would then create its own ReadSource.... boom!
- Add config items for whether or not dynamic resampling is enabled,
and for what quality of
resampler to use during playback. (Peaking just uses the fastest one.)
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Peak.cpp?cvsroot=traverso&r1=1.34&r2=1.35
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Project.cpp?cvsroot=traverso&r1=1.52&r2=1.53
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/Project.h?cvsroot=traverso&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ReadSource.cpp?cvsroot=traverso&r1=1.38&r2=1.39
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ReadSource.h?cvsroot=traverso&r1=1.28&r2=1.29
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ResourcesManager.cpp?cvsroot=traverso&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ResourcesManager.h?cvsroot=traverso&r1=1.11&r2=1.12
Patches:
Index: Peak.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Peak.cpp,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -b -r1.34 -r1.35
--- Peak.cpp 13 Jul 2007 07:41:03 -0000 1.34
+++ Peak.cpp 15 Jul 2007 05:09:46 -0000 1.35
@@ -23,6 +23,7 @@
#include "Peak.h"
#include "ReadSource.h"
+#include "ResourcesManager.h"
#include "defines.h"
#include "Mixer.h"
#include <QFileInfo>
@@ -55,7 +56,7 @@
ReadSource* rs = qobject_cast<ReadSource*>(source);
if (rs) {
- m_source = rs;
+ m_source = resources_manager()->get_readsource(rs->get_id(),
true);
}
if (source->get_channel_count() > 1) {
@@ -73,6 +74,10 @@
{
PENTERDES;
+ if (m_source) {
+ delete m_source;
+ }
+
if (m_file) {
fclose(m_file);
}
@@ -299,8 +304,6 @@
nframes_t readFrames = 0;
nframes_t totalReadFrames = 0;
- int counter = 0;
- int p = 0;
do {
readFrames = m_source->file_read(m_channel, buf +
totalReadFrames, startPos + totalReadFrames, toRead - totalReadFrames,
readbuffer);
@@ -586,7 +589,6 @@
nframes_t bufferSize = 65536;
- int counter = 0;
int p = 0;
if (m_source->get_nframes() == 0) {
Index: Project.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/Project.cpp,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -b -r1.52 -r1.53
--- Project.cpp 8 Jul 2007 23:16:56 -0000 1.52
+++ Project.cpp 15 Jul 2007 05:09:46 -0000 1.53
@@ -58,6 +58,7 @@
m_exportThread = 0;
engineer = "";
+ m_useResampling = config().get_property("Conversion",
"DynamicResampling", false).toBool();
rootDir = config().get_property("Project", "directory",
"/directory/unknown/").toString() + "/" + m_title;
sourcesDir = rootDir + "/audiosources";
m_rate = audiodevice().get_sample_rate();
@@ -702,8 +703,12 @@
int Project::get_rate( ) const
{
+ // FIXME: Projects should eventually just use the universal samplerate
+ if (m_useResampling) {
+ return audiodevice().get_sample_rate();
+ }
+
return m_rate;
- //return audiodevice().get_sample_rate();
}
int Project::get_bitdepth( ) const
Index: Project.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/Project.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- Project.h 26 Jun 2007 18:07:56 -0000 1.23
+++ Project.h 15 Jul 2007 05:09:47 -0000 1.24
@@ -124,6 +124,7 @@
int m_rate;
int m_bitDepth;
+ bool m_useResampling;
int overallExportProgress;
int renderedSongs;
Index: ReadSource.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ReadSource.cpp,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -b -r1.38 -r1.39
--- ReadSource.cpp 6 Jul 2007 22:13:32 -0000 1.38
+++ ReadSource.cpp 15 Jul 2007 05:09:47 -0000 1.39
@@ -60,6 +60,7 @@
}
m_silent = (m_channelCount == 0);
+ m_forPeaks = false;
}
// constructor for file import
@@ -80,6 +81,7 @@
m_fileCount = 1;
m_silent = false;
+ m_forPeaks = false;
}
@@ -92,6 +94,7 @@
{
m_channelCount = m_fileCount = channelCount;
m_silent = false;
+ m_forPeaks = false;
m_name = name + "-" + QString::number(m_id);
m_fileName = m_dir + m_name;
m_length = 0;
@@ -101,6 +104,7 @@
}
+// Constructor for silent clips
ReadSource::ReadSource()
: AudioSource("", tr("Silence"))
, m_refcount(0)
@@ -122,6 +126,12 @@
}
+void ReadSource::set_is_for_peaks(bool forPeaks)
+{
+ m_forPeaks = forPeaks;
+}
+
+
int ReadSource::init( )
{
PENTER;
@@ -188,7 +198,7 @@
MonoReader* source = new MonoReader(this, sourceChannelCount,
channelNumber, fileName);
- if ( (result = source->init()) > 0) {
+ if ( (result = source->init(m_forPeaks)) > 0) {
m_sources.append(source);
} else {
PERROR("Failed to initialize a MonoReader (%s)",
QS_C(fileName));
Index: ReadSource.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/ReadSource.h,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -b -r1.28 -r1.29
--- ReadSource.h 5 Jun 2007 12:47:09 -0000 1.28
+++ ReadSource.h 15 Jul 2007 05:09:47 -0000 1.29
@@ -54,6 +54,7 @@
int get_error() const {return m_error;}
int set_file(const QString& filename);
void set_active(bool active);
+ void set_is_for_peaks(bool forPeaks);
void set_audio_clip(AudioClip* clip);
Peak* get_peak(int channel);
@@ -67,6 +68,7 @@
int m_error;
AudioClip* m_clip;
bool m_silent;
+ bool m_forPeaks;
int ref() { return m_refcount++;}
int add_mono_reader(int channel, int channelNumber, const QString&
fileName);
Index: ResourcesManager.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ResourcesManager.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- ResourcesManager.cpp 28 May 2007 21:34:11 -0000 1.19
+++ ResourcesManager.cpp 15 Jul 2007 05:09:47 -0000 1.20
@@ -211,7 +211,7 @@
}
-ReadSource * ResourcesManager::get_readsource( qint64 id )
+ReadSource * ResourcesManager::get_readsource( qint64 id, bool forPeaks )
{
SourceData* data = m_sources.value(id);
@@ -230,6 +230,8 @@
source->ref();
}
+ source->set_is_for_peaks(forPeaks);
+
if ( source->init() < 0) {
info().warning( tr("ResourcesManager:: Failed to initialize
ReadSource %1")
.arg(source->get_filename()));
Index: ResourcesManager.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/ResourcesManager.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- ResourcesManager.h 28 May 2007 21:30:13 -0000 1.11
+++ ResourcesManager.h 15 Jul 2007 05:09:47 -0000 1.12
@@ -63,7 +63,7 @@
bool is_clip_in_use(qint64) const;
bool is_source_in_use(qint64 id) const;
- ReadSource* get_readsource(qint64 id);
+ ReadSource* get_readsource(qint64 id, bool forPeaks = false);
QList<ReadSource*> get_all_audio_sources() const;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Traverso-commit] traverso/src/core Peak.cpp Project.cpp Project....,
Ben Levitt <=