traverso-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Traverso-commit] traverso resources/keymap.xml src/commands/Impo...


From: Ben Levitt
Subject: [Traverso-commit] traverso resources/keymap.xml src/commands/Impo...
Date: Wed, 02 May 2007 05:58:21 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Ben Levitt <benjie>     07/05/02 05:58:21

Modified files:
        resources      : keymap.xml 
        src/commands   : Import.cpp Import.h 
        src/commands/plugins/TraversoCommands: TraversoCommands.cpp 
                                               TraversoCommands.h 
        src/core       : ReadSource.cpp ReadSource.h 
                         ResourcesManager.cpp ResourcesManager.h 
        src/traverso   : Interface.cpp Interface.h traverso.pro 
        src/traverso/songcanvas: AudioClipView.cpp TrackView.cpp 
                                 TrackView.h 
Added files:
        src/traverso/dialogs: InsertSilenceDialog.cpp 
                              InsertSilenceDialog.h 
        src/traverso/ui: InsertSilenceDialog.ui 

Log message:
        Add the ability to insert silence clips.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/keymap.xml?cvsroot=traverso&r1=1.63&r2=1.64
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/Import.cpp?cvsroot=traverso&r1=1.20&r2=1.21
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/Import.h?cvsroot=traverso&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/plugins/TraversoCommands/TraversoCommands.cpp?cvsroot=traverso&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/traverso/src/commands/plugins/TraversoCommands/TraversoCommands.h?cvsroot=traverso&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ReadSource.cpp?cvsroot=traverso&r1=1.25&r2=1.26
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ReadSource.h?cvsroot=traverso&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ResourcesManager.cpp?cvsroot=traverso&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ResourcesManager.h?cvsroot=traverso&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/Interface.cpp?cvsroot=traverso&r1=1.70&r2=1.71
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/Interface.h?cvsroot=traverso&r1=1.32&r2=1.33
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/traverso.pro?cvsroot=traverso&r1=1.46&r2=1.47
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/InsertSilenceDialog.cpp?cvsroot=traverso&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/InsertSilenceDialog.h?cvsroot=traverso&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/AudioClipView.cpp?cvsroot=traverso&r1=1.55&r2=1.56
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/TrackView.cpp?cvsroot=traverso&r1=1.31&r2=1.32
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/TrackView.h?cvsroot=traverso&r1=1.17&r2=1.18
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/ui/InsertSilenceDialog.ui?cvsroot=traverso&rev=1.1

Patches:
Index: resources/keymap.xml
===================================================================
RCS file: /sources/traverso/traverso/resources/keymap.xml,v
retrieving revision 1.63
retrieving revision 1.64
diff -u -b -r1.63 -r1.64
--- resources/keymap.xml        30 Apr 2007 13:49:59 -0000      1.63
+++ resources/keymap.xml        2 May 2007 05:58:20 -0000       1.64
@@ -294,6 +294,11 @@
                                <Object objectname="SpectralMeterWidget" 
slotsignature="screen_capture" modes="All" instantanious="0" />
                        </Objects>
                </keyfact>
+               <keyfact type="FKEY2" key1="I" key2="O" >
+                       <Objects>
+                               <Object objectname="TrackView" modes="All" 
sortorder="13"  slotsignature="insert_silence" instantanious="0" />
+                       </Objects>
+               </keyfact>
                
                
                <keyfact type="HKEY" key1="Z" sortorder="35" >

Index: src/commands/Import.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/commands/Import.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -b -r1.20 -r1.21
--- src/commands/Import.cpp     30 Apr 2007 19:21:03 -0000      1.20
+++ src/commands/Import.cpp     2 May 2007 05:58:20 -0000       1.21
@@ -22,9 +22,8 @@
 #include <libtraversocore.h>
 
 #include <QFileDialog>
-#include <ReadSource.h>
+#include "ReadSource.h"
 #include "AudioClipList.h"
-
 #include "Import.h"
 #include "Utils.h"
 
@@ -38,14 +37,24 @@
        m_fileName = fileName;
        m_clip = 0;
        m_track = 0;
+       m_silent = false;
+       m_initialLength = 0;
 }
 
 
-Import::Import(Track* track)
-       : Command(track, tr("Import Audio File"))
+Import::Import(Track* track, bool silent, nframes_t length)
+       : Command(track, "")
 {
        m_track = track;
        m_clip = 0;
+       m_silent = silent;
+       m_initialLength = length;
+       
+       if (!m_silent) {
+               setText(tr("Import Audio File"));
+       } else {
+               setText(tr("Insert Silence"));
+       }
 }
 
 
@@ -55,6 +64,8 @@
        m_track = track;
        m_clip = 0;
        m_fileName = fileName;
+       m_silent = false;
+       m_initialLength = 0;
 }
 
 Import::~Import()
@@ -63,7 +74,12 @@
 int Import::prepare_actions()
 {
        PENTER;
-       if (m_fileName.isEmpty()) {
+       if (m_silent) {
+               m_source = resources_manager()->get_silent_readsource();
+               m_name = tr("Silence");
+               m_fileName = tr("Silence");
+               create_audioclip();
+       } else if (m_fileName.isEmpty()) {
                m_fileName = QFileDialog::getOpenFileName(0,
                                tr("Import audio source"),
                                pm().get_project()->get_import_dir(),
@@ -117,12 +133,19 @@
        m_clip->set_audio_source(m_source);
        m_clip->set_song(m_track->get_song());
        m_clip->set_track(m_track);
-       m_clip->set_track_start_frame(0);
        // FIXME!!!!!!!!!!!!!!!!!!!!
        m_clip->init_gain_envelope();
 
+       nframes_t startFrame = 0;
+       
        if (AudioClip* lastClip = m_track->get_cliplist().get_last()) {
-               m_clip->set_track_start_frame( lastClip->get_track_end_frame() 
+ 1);
+               startFrame = lastClip->get_track_end_frame() + 1;
+       }
+
+       m_clip->set_track_start_frame(startFrame);
+       
+       if (m_initialLength > 0) {
+               m_clip->set_right_edge(m_initialLength + startFrame);
        }
 }
 

Index: src/commands/Import.h
===================================================================
RCS file: /sources/traverso/traverso/src/commands/Import.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- src/commands/Import.h       22 Mar 2007 20:47:24 -0000      1.4
+++ src/commands/Import.h       2 May 2007 05:58:20 -0000       1.5
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
  
-    $Id: Import.h,v 1.4 2007/03/22 20:47:24 r_sijrier Exp $
+    $Id: Import.h,v 1.5 2007/05/02 05:58:20 benjie Exp $
 */
 
 #ifndef IMPORT_H
@@ -33,7 +33,7 @@
 {
 public :
        Import(const QString& fileName);
-        Import(Track* track);
+        Import(Track* track, bool silent = false, nframes_t length = 0);
         Import(Track* track, const QString& fileName);
         ~Import();
 
@@ -51,6 +51,8 @@
        ReadSource*     m_source;
         QString        m_fileName;
        QString         m_name;
+       bool            m_silent;
+       nframes_t       m_initialLength;
 };
 
 #endif

Index: src/commands/plugins/TraversoCommands/TraversoCommands.cpp
===================================================================
RCS file: 
/sources/traverso/traverso/src/commands/plugins/TraversoCommands/TraversoCommands.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- src/commands/plugins/TraversoCommands/TraversoCommands.cpp  30 Apr 2007 
10:09:11 -0000      1.9
+++ src/commands/plugins/TraversoCommands/TraversoCommands.cpp  2 May 2007 
05:58:20 -0000       1.10
@@ -37,6 +37,7 @@
        m_dict.insert("TrackPan", TrackPanCommand);
        m_dict.insert("ResetTrackPan", TrackPanCommand);
        m_dict.insert("ImportAudio", ImportAudioCommand);
+       m_dict.insert("InsertSilence", InsertSilenceCommand);
        m_dict.insert("AddNewTrack", AddNewTrackCommand);
        m_dict.insert("RemoveClip", RemoveClipCommand);
        m_dict.insert("RemoveTrack", RemoveTrackCommand);
@@ -97,6 +98,17 @@
                        return new Import(track);
                }
                
+               case InsertSilenceCommand:
+               {
+                       Track* track = qobject_cast<Track*>(obj);
+                       if (! track) {
+                               PERROR("TraversoCommands: Supplied QObject was 
not a Track! "
+                                       "ImportAudioCommand needs a Track as 
argument");
+                               return 0;
+                       }
+                       return new Import(track, 480000, true);
+               }
+               
                case AddNewTrackCommand:
                {
                        Song* song = qobject_cast<Song*>(obj);

Index: src/commands/plugins/TraversoCommands/TraversoCommands.h
===================================================================
RCS file: 
/sources/traverso/traverso/src/commands/plugins/TraversoCommands/TraversoCommands.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- src/commands/plugins/TraversoCommands/TraversoCommands.h    24 Apr 2007 
23:47:19 -0000      1.5
+++ src/commands/plugins/TraversoCommands/TraversoCommands.h    2 May 2007 
05:58:20 -0000       1.6
@@ -32,7 +32,8 @@
        Q_CLASSINFO("ResetGain", tr("Gain: Reset"))
        Q_CLASSINFO("TrackPan", tr("Panorama"))
        Q_CLASSINFO("ResetTrackPan", tr("Panorama: Reset"))
-       Q_CLASSINFO("ImportAudio", tr("Import audio"))
+       Q_CLASSINFO("ImportAudio", tr("Import Audio"))
+       Q_CLASSINFO("InsertSilence", tr("Insert Silence"))
        Q_CLASSINFO("CopyClip", tr("Copy Clip"))
        Q_CLASSINFO("AddNewTrack", tr("New Track"))
        Q_CLASSINFO("RemoveClip", tr("Remove Clip"))
@@ -56,6 +57,7 @@
                GainCommand,
                TrackPanCommand,
                ImportAudioCommand,
+               InsertSilenceCommand,
                AddNewTrackCommand,
                RemoveClipCommand,
                RemoveTrackCommand,

Index: src/core/ReadSource.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ReadSource.cpp,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- src/core/ReadSource.cpp     1 May 2007 23:42:59 -0000       1.25
+++ src/core/ReadSource.cpp     2 May 2007 05:58:20 -0000       1.26
@@ -56,6 +56,8 @@
        if (QFile::exists(project->get_root_dir() + "/audiosources/" + m_name)) 
{
                set_dir(project->get_root_dir() + "/audiosources/");
        }
+       
+       m_silent = (m_channelCount == 0);
 }      
 
 
@@ -74,6 +76,7 @@
        }
 
        m_fileCount = 1;
+       m_silent = false;
 }
 
 
@@ -84,6 +87,18 @@
 {
          m_channelCount = channelCount;
          m_fileCount = fileCount;
+       m_silent = false;
+}
+
+
+ReadSource::ReadSource()
+       : AudioSource("", tr("Silence"))
+       , m_refcount(0)
+       , m_error(0)
+{
+       m_channelCount = 0;
+       m_fileCount = 0;
+       m_silent = true;
 }
 
 
@@ -102,8 +117,17 @@
        
        Q_ASSERT(m_refcount);
        
+       Project* project = pm().get_project();
+       
        // Fake the samplerate, until it's set by a MonoReader!
-       m_rate = pm().get_project()->get_rate();
+       m_rate = project->get_rate();
+       
+       if (m_silent) {
+               m_length = 2147483648L; // 2^31
+               m_channelCount = 0;
+               m_origBitDepth = project->get_bitdepth();
+               return 1;
+       }
        
        if (m_channelCount == 0) {
                PERROR("ReadSource channel count is 0");

Index: src/core/ReadSource.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/ReadSource.h,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- src/core/ReadSource.h       30 Apr 2007 13:49:59 -0000      1.19
+++ src/core/ReadSource.h       2 May 2007 05:58:20 -0000       1.20
@@ -17,7 +17,7 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
 
-$Id: ReadSource.h,v 1.19 2007/04/30 13:49:59 r_sijrier Exp $
+$Id: ReadSource.h,v 1.20 2007/05/02 05:58:20 benjie Exp $
 */
 
 #ifndef READSOURCE_H
@@ -36,6 +36,7 @@
        ReadSource(const QDomNode node);
        ReadSource(const QString& dir, const QString& name);
        ReadSource(const QString& dir, const QString& name, int channelCount, 
int fileCount);
+       ReadSource();  // For creating a 0-channel, silent ReadSource
        ~ReadSource();
        
        enum ReadSourceError {
@@ -67,7 +68,7 @@
        QList<MonoReader*> m_sources;
        int     m_refcount;
        int     m_error;
-       
+       bool    m_silent;
        
        int ref() { return m_refcount++;}
        int add_mono_reader(int channel, int channelNumber, const QString& 
fileName);

Index: src/core/ResourcesManager.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ResourcesManager.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- src/core/ResourcesManager.cpp       30 Apr 2007 13:49:59 -0000      1.8
+++ src/core/ResourcesManager.cpp       2 May 2007 05:58:20 -0000       1.9
@@ -38,6 +38,7 @@
 ResourcesManager::ResourcesManager()
 {
        PENTERCONS;
+       m_silentReadSource = 0;
 }
 
 
@@ -110,6 +111,9 @@
                ReadSource* source = new ReadSource(sourcesNode);
                m_sources.insert(source->get_id(), source);
                sourcesNode = sourcesNode.nextSibling();
+               if (source->get_channel_count() == 0) {
+                       m_silentReadSource = source;
+               }
        }
        
        
@@ -221,6 +225,21 @@
        return source;
 }
 
+
+ReadSource* ResourcesManager::get_silent_readsource()
+{
+       if (!m_silentReadSource) {
+               m_silentReadSource = new ReadSource();
+               m_sources.insert(m_silentReadSource->get_id(), 
m_silentReadSource);
+               m_silentReadSource->set_created_by_song( -1 );
+               
+               m_silentReadSource = 
get_readsource(m_silentReadSource->get_id());
+       }
+       
+       return m_silentReadSource;
+}
+
+
 ReadSource * ResourcesManager::get_readsource( qint64 id )
 {
        ReadSource* source = m_sources.value(id);

Index: src/core/ResourcesManager.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/ResourcesManager.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- src/core/ResourcesManager.h 26 Apr 2007 18:57:57 -0000      1.5
+++ src/core/ResourcesManager.h 2 May 2007 05:58:20 -0000       1.6
@@ -54,6 +54,7 @@
                                bool wasRecording=false);
        
        ReadSource* create_new_readsource(const QString& dir, const QString& 
name);
+       ReadSource* get_silent_readsource();
        AudioClip* new_audio_clip(const QString& name);
        AudioClip* get_clip(qint64 id);
        
@@ -76,6 +77,7 @@
        QHash<qint64, ReadSource* >     m_sources;
        QHash<qint64, AudioClip* >      m_clips;
        QHash<qint64, AudioClip* >      m_deprecatedClips;
+       ReadSource*                     m_silentReadSource;
        
        
 signals:

Index: src/traverso/Interface.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/Interface.cpp,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -b -r1.70 -r1.71
--- src/traverso/Interface.cpp  29 Apr 2007 05:54:17 -0000      1.70
+++ src/traverso/Interface.cpp  2 May 2007 05:58:20 -0000       1.71
@@ -34,8 +34,8 @@
 #include "ViewPort.h"
 #include "Help.h"
 #include "widgets/ResourcesWidget.h"
-#include <FadeCurve.h>
-#include <Config.h>
+#include "FadeCurve.h"
+#include "Config.h"
 #include "widgets/InfoWidgets.h"
 
 #include "ExportWidget.h"
@@ -50,11 +50,12 @@
 #include "dialogs/project/ProjectManagerDialog.h"
 #include "dialogs/project/OpenProjectDialog.h"
 #include "dialogs/project/NewProjectDialog.h"
-#include <dialogs/project/NewSongDialog.h>
-#include <dialogs/project/NewTrackDialog.h>
+#include "dialogs/project/NewSongDialog.h"
+#include "dialogs/project/NewTrackDialog.h"
 #include "dialogs/CDTextDialog.h"
 #include "dialogs/MarkerDialog.h"
 #include "dialogs/BusSelectorDialog.h"
+#include "dialogs/InsertSilenceDialog.h"
 
 
 // Always put me below _all_ includes, this is needed
@@ -172,6 +173,7 @@
        m_openProjectDialog = 0;
        m_newProjectDialog = 0;
        m_cdTextDialog = 0;
+       m_insertSilenceDialog = 0;
        m_markerDialog = 0;
        m_busSelector = 0;
        m_newSongDialog = 0;
@@ -387,8 +389,7 @@
        action = menu->addAction(tr("Import &Audio..."));
        connect(action, SIGNAL(triggered()), this, SLOT(import_audio()));
        action = menu->addAction(tr("Insert Si&lence..."));
-       action->setDisabled(true);
-       connect(action, SIGNAL(triggered()), this, SLOT(insert_silence()));
+       connect(action, SIGNAL(triggered()), this, 
SLOT(show_insertsilence_dialog()));
        
        
        menu = menuBar()->addMenu(tr("&View"));
@@ -640,6 +641,13 @@
        m_busSelector->show();
 }
 
+void Interface::set_insertsilence_track(Track* track)
+{
+       if (m_insertSilenceDialog) {
+               m_insertSilenceDialog->setTrack(track);
+       }
+}
+
 void Interface::select_fade_in_shape( )
 {
        QMenu* menu = m_contextMenus.value("fadeInSelector");
@@ -728,20 +736,16 @@
                Track*  shortestTrack = tracks.at(0);
 
                for (int i=1; i<tracks.size(); i++) {
-                       if (AudioClip* lastClip = 
tracks.at(i)->get_cliplist().get_last()) {
+                       if (tracks.at(i)->get_cliplist().get_last() && 
tracks.at(i)->get_cliplist().get_last()->get_track_end_frame() > 
shortestTrack->get_cliplist().get_last()->get_track_end_frame()) {
                                shortestTrack = tracks.at(i);
                        }
                }
+
                Import* cmd = new Import(shortestTrack);
                Command::process_command(cmd);
        }
 }
 
-void Interface::insert_silence()
-{
-       printf("FIXME: Interface::insert_silence()\n");
-}
-
 DigitalClock::DigitalClock(QWidget *parent)
        : QLCDNumber(parent)
 {
@@ -823,6 +827,20 @@
        return 0;
 }
 
+
+Command * Interface::show_insertsilence_dialog()
+{
+       if (! m_insertSilenceDialog) {
+               m_insertSilenceDialog = new InsertSilenceDialog(this);
+       }
+       
+       m_insertSilenceDialog->setTrack(0);
+       m_insertSilenceDialog->show();
+       
+       return 0;
+}
+
+
 Command * Interface::show_marker_dialog()
 {
        if (! m_markerDialog ) {

Index: src/traverso/Interface.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/Interface.h,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -b -r1.32 -r1.33
--- src/traverso/Interface.h    29 Apr 2007 05:54:17 -0000      1.32
+++ src/traverso/Interface.h    2 May 2007 05:58:20 -0000       1.33
@@ -58,6 +58,7 @@
 class InfoToolBar;
 class SysInfoToolBar;
 class CDTextDialog;
+class InsertSilenceDialog;
 class MarkerDialog;
 class BusSelectorDialog;
 class NewSongDialog;
@@ -77,6 +78,7 @@
        void select_fade_in_shape();
        void select_fade_out_shape();
        void show_busselector(Track* track);
+       void set_insertsilence_track(Track* track);
        
 protected:
        void keyPressEvent ( QKeyEvent* e);
@@ -104,6 +106,7 @@
        ProjectManagerDialog*   m_projectManagerDialog;
        OpenProjectDialog*      m_openProjectDialog;
        CDTextDialog*           m_cdTextDialog;
+       InsertSilenceDialog*    m_insertSilenceDialog;
        MarkerDialog*           m_markerDialog;
        InfoToolBar*            m_infoBar;
        SysInfoToolBar*         m_sysinfo;
@@ -142,7 +145,6 @@
        void set_fade_out_shape(QAction* action);
        void update_opengl();
        void import_audio();
-       void insert_silence();
 
        Command* show_song_widget();
        Command* full_screen();
@@ -152,6 +154,7 @@
        Command* show_open_project_dialog();
        Command* show_project_manager_dialog();
        Command* show_cdtext_dialog();
+       Command* show_insertsilence_dialog();
        Command* show_marker_dialog();
        Command* show_newsong_dialog();
        Command* show_newtrack_dialog();

Index: src/traverso/traverso.pro
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/traverso.pro,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -b -r1.46 -r1.47
--- src/traverso/traverso.pro   24 Apr 2007 23:57:10 -0000      1.46
+++ src/traverso/traverso.pro   2 May 2007 05:58:20 -0000       1.47
@@ -47,6 +47,7 @@
        widgets/InfoWidgets.h \
        widgets/MessageWidget.h \
        dialogs/CDTextDialog.h \
+       dialogs/InsertSilenceDialog.h \
        dialogs/MarkerDialog.h \
        dialogs/BusSelectorDialog.h \
        dialogs/project/NewSongDialog.h \
@@ -78,6 +79,7 @@
        widgets/InfoWidgets.cpp \
        widgets/MessageWidget.cpp \
        dialogs/CDTextDialog.cpp \
+       dialogs/InsertSilenceDialog.cpp \
        dialogs/MarkerDialog.cpp \
        dialogs/BusSelectorDialog.cpp \
        dialogs/project/NewSongDialog.cpp \
@@ -108,9 +110,8 @@
        ui/NewProjectDialog.ui \
        ui/NewSongDialog.ui \
        ui/NewTrackDialog.ui \
-       ui/ResourcesWidget.ui
-
-
+       ui/ResourcesWidget.ui \
+       ui/InsertSilenceDialog.ui
 INCLUDEPATH +=         ../core \
                ../commands \
                ../engine \

Index: src/traverso/songcanvas/AudioClipView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/AudioClipView.cpp,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -b -r1.55 -r1.56
--- src/traverso/songcanvas/AudioClipView.cpp   1 May 2007 23:29:25 -0000       
1.55
+++ src/traverso/songcanvas/AudioClipView.cpp   2 May 2007 05:58:20 -0000       
1.56
@@ -165,13 +165,7 @@
 
        int channels = m_clip->get_channels();
 
-       // Only continue if our AudioClip has more then 1 channel
-       if (channels == 0) {
-               PWARN("This AudioClipView has 0 channels!!!!!");
-               return;
-       }
-       
-       
+       if (channels > 0) {
        if (m_waitingForPeaks) {
                PMESG("Waiting for peaks!");
                // Hmm, do we paint here something?
@@ -188,7 +182,7 @@
        } else if (m_clip->recording_state() == AudioClip::NO_RECORDING) {
                draw_peaks(painter, xstart, pixelcount);
        }
-
+       }
        
        // Draw the contour
        if (m_height < m_mimimumheightforinfoarea) {

Index: src/traverso/songcanvas/TrackView.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/TrackView.cpp,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- src/traverso/songcanvas/TrackView.cpp       26 Apr 2007 18:57:57 -0000      
1.31
+++ src/traverso/songcanvas/TrackView.cpp       2 May 2007 05:58:20 -0000       
1.32
@@ -206,5 +206,12 @@
        return 0; 
 }
 
+Command* TrackView::insert_silence()
+{
+       Interface::instance()->show_insertsilence_dialog();
+       Interface::instance()->set_insertsilence_track(m_track);
+       return 0; 
+}
+
 //eof
 

Index: src/traverso/songcanvas/TrackView.h
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/TrackView.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- src/traverso/songcanvas/TrackView.h 29 Mar 2007 11:20:24 -0000      1.17
+++ src/traverso/songcanvas/TrackView.h 2 May 2007 05:58:20 -0000       1.18
@@ -36,6 +36,7 @@
        Q_CLASSINFO("edit_properties", tr("Edit properties"))
        Q_CLASSINFO("add_new_plugin", tr("Add new Plugin")) 
        Q_CLASSINFO("select_bus", tr("Select Bus")) 
+       Q_CLASSINFO("insert_silence", tr("Insert Silence")) 
 
 public:
        TrackView(SongView* sv, Track* track);
@@ -74,6 +75,7 @@
        Command* edit_properties();
        Command* add_new_plugin();      
        Command* select_bus();
+       Command* insert_silence();
 
 private slots:
        void add_new_audioclipview(AudioClip* clip);

Index: src/traverso/dialogs/InsertSilenceDialog.cpp
===================================================================
RCS file: src/traverso/dialogs/InsertSilenceDialog.cpp
diff -N src/traverso/dialogs/InsertSilenceDialog.cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ src/traverso/dialogs/InsertSilenceDialog.cpp        2 May 2007 05:58:20 
-0000       1.1
@@ -0,0 +1,90 @@
+/*
+    Copyright (C) 2007 Ben Levitt 
+ 
+    This file is part of Traverso
+ 
+    Traverso is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+ 
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
+ 
+*/
+
+#include "InsertSilenceDialog.h"
+#include "ProjectManager.h"
+#include "Project.h"
+#include "Song.h"
+#include "Import.h"
+#include "Track.h"
+#include "AudioClip.h"
+
+#include <QDialogButtonBox>
+#include <QPushButton>
+
+InsertSilenceDialog::InsertSilenceDialog(QWidget * parent)
+       : QDialog(parent)
+{
+       setupUi(this);
+       m_track = 0;
+       buttonBox->button(QDialogButtonBox::Ok)->setDefault(true);
+}
+
+
+void InsertSilenceDialog::setTrack(Track* track)
+{
+       m_track = track;
+}
+
+void InsertSilenceDialog::accept()
+{
+       Song* song = pm().get_project()->get_current_song();
+       QList<Track* > tracks = song->get_tracks();
+
+       // Make sure track is still in the song
+       if (m_track){
+               Track*  foundTrack = 0;
+
+               for (int i=0; i<tracks.size(); i++) {
+                       if (tracks.at(i) == m_track) {
+                               foundTrack = tracks.at(i);
+                       }
+               }
+               m_track = foundTrack;
+       }
+
+       if (song->get_numtracks() > 0) {
+               if (!m_track){
+                       Track*  shortestTrack = tracks.at(0);
+       
+                       for (int i=1; i<tracks.size(); i++) {
+                               if (tracks.at(i)->get_cliplist().get_last() && 
tracks.at(i)->get_cliplist().get_last()->get_track_end_frame() > 
shortestTrack->get_cliplist().get_last()->get_track_end_frame()) {
+                                       shortestTrack = tracks.at(i);
+                               }
+                       }
+                       m_track = shortestTrack;
+               }
+
+               nframes_t length = lengthSpinBox->value() * 
pm().get_project()->get_rate();
+               Import* cmd = new Import(m_track, true, length);
+               Command::process_command(cmd);
+       }
+
+       hide();
+}
+
+void InsertSilenceDialog::reject()
+{
+       hide();
+}
+
+//eof
+

Index: src/traverso/dialogs/InsertSilenceDialog.h
===================================================================
RCS file: src/traverso/dialogs/InsertSilenceDialog.h
diff -N src/traverso/dialogs/InsertSilenceDialog.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ src/traverso/dialogs/InsertSilenceDialog.h  2 May 2007 05:58:20 -0000       
1.1
@@ -0,0 +1,50 @@
+/*
+    Copyright (C) 2007 Remon Sijrier 
+ 
+    This file is part of Traverso
+ 
+    Traverso is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+ 
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+ 
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA.
+ 
+*/
+
+#ifndef INSERT_SILENCE_DIALOG_H
+#define INSERT_SILENCE_DIALOG_H
+
+#include "ui_InsertSilenceDialog.h"
+#include <QDialog>
+
+class Track;
+
+class InsertSilenceDialog : public QDialog, protected Ui::InsertSilenceDialog
+{
+       Q_OBJECT
+
+public:
+       InsertSilenceDialog(QWidget* parent = 0);
+       ~InsertSilenceDialog() {};
+
+       void setTrack(Track* track);
+
+private:
+       void accept();
+       void reject();
+
+       Track* m_track;
+
+};
+
+#endif
+
+//eof

Index: src/traverso/ui/InsertSilenceDialog.ui
===================================================================
RCS file: src/traverso/ui/InsertSilenceDialog.ui
diff -N src/traverso/ui/InsertSilenceDialog.ui
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ src/traverso/ui/InsertSilenceDialog.ui      2 May 2007 05:58:20 -0000       
1.1
@@ -0,0 +1,102 @@
+<ui version="4.0" >
+ <class>InsertSilenceDialog</class>
+ <widget class="QDialog" name="InsertSilenceDialog" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>261</width>
+    <height>87</height>
+   </rect>
+  </property>
+  <property name="windowTitle" >
+   <string>Insert Silence</string>
+  </property>
+  <layout class="QVBoxLayout" >
+   <property name="margin" >
+    <number>9</number>
+   </property>
+   <property name="spacing" >
+    <number>6</number>
+   </property>
+   <item>
+    <layout class="QHBoxLayout" >
+     <property name="margin" >
+      <number>0</number>
+     </property>
+     <property name="spacing" >
+      <number>6</number>
+     </property>
+     <item>
+      <widget class="QLabel" name="label" >
+       <property name="text" >
+        <string>Insert Silence (seconds):</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QDoubleSpinBox" name="lengthSpinBox" >
+       <property name="decimals" >
+        <number>3</number>
+       </property>
+       <property name="maximum" >
+        <double>3600.000000000000000</double>
+       </property>
+       <property name="minimum" >
+        <double>0.001000000000000</double>
+       </property>
+       <property name="value" >
+        <double>10.000000000000000</double>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
+    <widget class="QDialogButtonBox" name="buttonBox" >
+     <property name="orientation" >
+      <enum>Qt::Horizontal</enum>
+     </property>
+     <property name="standardButtons" >
+      
<set>QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok</set>
+     </property>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>accepted()</signal>
+   <receiver>InsertSilenceDialog</receiver>
+   <slot>accept()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>251</x>
+     <y>77</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>157</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+  <connection>
+   <sender>buttonBox</sender>
+   <signal>rejected()</signal>
+   <receiver>InsertSilenceDialog</receiver>
+   <slot>reject()</slot>
+   <hints>
+    <hint type="sourcelabel" >
+     <x>251</x>
+     <y>77</y>
+    </hint>
+    <hint type="destinationlabel" >
+     <x>286</x>
+     <y>274</y>
+    </hint>
+   </hints>
+  </connection>
+ </connections>
+</ui>




reply via email to

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