traverso-commit
[Top][All Lists]
Advanced

[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;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]