[Top][All Lists]
[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>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Traverso-commit] traverso resources/keymap.xml src/commands/Impo...,
Ben Levitt <=