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/core/AudioCli...


From: Remon Sijrier
Subject: [Traverso-commit] traverso resources/keymap.xml src/core/AudioCli...
Date: Thu, 28 Jun 2007 15:03:56 +0000

CVSROOT:        /sources/traverso
Module name:    traverso
Changes by:     Remon Sijrier <r_sijrier>       07/06/28 15:03:56

Modified files:
        resources      : keymap.xml 
        src/core       : AudioClip.cpp AudioClip.h 
        src/traverso/songcanvas: songcanvas.pro 
        src/traverso   : traverso.pro 
        src/traverso/widgets: ResourcesWidget.cpp 
Added files:
        src/traverso/dialogs: AudioClipEditDialog.cpp 
                              AudioClipEditDialog.h 
        src/traverso/ui: AudioClipEditWidget.ui 

Log message:
        AudioClip Edit dialog/widget added, not finished yet though

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/resources/keymap.xml?cvsroot=traverso&r1=1.85&r2=1.86
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AudioClip.cpp?cvsroot=traverso&r1=1.110&r2=1.111
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AudioClip.h?cvsroot=traverso&r1=1.54&r2=1.55
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/AudioClipEditDialog.cpp?cvsroot=traverso&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/dialogs/AudioClipEditDialog.h?cvsroot=traverso&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/songcanvas/songcanvas.pro?cvsroot=traverso&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/traverso.pro?cvsroot=traverso&r1=1.57&r2=1.58
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/ui/AudioClipEditWidget.ui?cvsroot=traverso&rev=1.1
http://cvs.savannah.gnu.org/viewcvs/traverso/src/traverso/widgets/ResourcesWidget.cpp?cvsroot=traverso&r1=1.27&r2=1.28

Patches:
Index: resources/keymap.xml
===================================================================
RCS file: /sources/traverso/traverso/resources/keymap.xml,v
retrieving revision 1.85
retrieving revision 1.86
diff -u -b -r1.85 -r1.86
--- resources/keymap.xml        27 Jun 2007 12:25:34 -0000      1.85
+++ resources/keymap.xml        28 Jun 2007 15:03:55 -0000      1.86
@@ -157,7 +157,8 @@
                                <Object objectname="TrackView" 
slotsignature="edit_properties" modes="All" sortorder="11" />
                                <Object objectname="PluginView" 
slotsignature="edit_properties" modes="All" />
                                <Object objectname="SpectralMeterView" 
slotsignature="edit_properties" modes="All" />
-                               <Object objectname="AudioClip" modes="All" 
sortorder="18" pluginname="TraversoCommands" 
commandname="AudioClipExternalProcessing" />
+                               <Object objectname="TrackView" 
slotsignature="edit_properties" modes="All" sortorder="11" />
+                               <Object objectname="AudioClipView" 
slotsignature="edit_properties" modes="All" sortorder="11" />
                                <Object objectname="TimeLineView" 
slotsignature="Interface::show_marker_dialog" modes="All" />
                        </Objects>
                </keyfact>

Index: src/core/AudioClip.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/AudioClip.cpp,v
retrieving revision 1.110
retrieving revision 1.111
diff -u -b -r1.110 -r1.111
--- src/core/AudioClip.cpp      26 Jun 2007 20:08:51 -0000      1.110
+++ src/core/AudioClip.cpp      28 Jun 2007 15:03:55 -0000      1.111
@@ -367,7 +367,7 @@
                gain = 32.0;
        
        m_fader->set_gain(gain);
-       emit gainChanged();
+       emit stateChanged();
 }
 
 void AudioClip::set_selected(bool selected)
@@ -763,6 +763,7 @@
 void AudioClip::set_name( const QString& name )
 {
        m_name = name;
+       emit stateChanged();
 }
 
 bool AudioClip::is_selected( ) const

Index: src/core/AudioClip.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/AudioClip.h,v
retrieving revision 1.54
retrieving revision 1.55
diff -u -b -r1.54 -r1.55
--- src/core/AudioClip.h        5 Jun 2007 12:47:09 -0000       1.54
+++ src/core/AudioClip.h        28 Jun 2007 15:03:56 -0000      1.55
@@ -176,7 +176,6 @@
        void lockChanged();
        void positionChanged(Snappable*);
        void trackEndFrameChanged();
-       void gainChanged();
        void fadeAdded(FadeCurve*);
        void fadeRemoved(FadeCurve*);
        void recordingFinished();

Index: src/traverso/songcanvas/songcanvas.pro
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/songcanvas/songcanvas.pro,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- src/traverso/songcanvas/songcanvas.pro      26 Jun 2007 18:07:57 -0000      
1.7
+++ src/traverso/songcanvas/songcanvas.pro      28 Jun 2007 15:03:56 -0000      
1.8
@@ -8,6 +8,7 @@
 
 INCLUDEPATH +=         ../../core \
                ../../traverso \
+               ../../traverso/dialogs \
                ../../engine \
                ../../commands \
                ../../plugins \

Index: src/traverso/traverso.pro
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/traverso.pro,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -b -r1.57 -r1.58
--- src/traverso/traverso.pro   27 Jun 2007 12:17:29 -0000      1.57
+++ src/traverso/traverso.pro   28 Jun 2007 15:03:56 -0000      1.58
@@ -51,7 +51,8 @@
        dialogs/project/OpenProjectDialog.h \
        dialogs/project/NewTrackDialog.h \
        songcanvas/PositionIndicator.h \
-       widgets/ResourcesWidget.h
+       widgets/ResourcesWidget.h \
+       dialogs/AudioClipEditDialog.h
 SOURCES += \
        Traverso.cpp \
        BusMonitor.cpp \
@@ -79,10 +80,10 @@
        dialogs/project/OpenProjectDialog.cpp \
        dialogs/project/NewTrackDialog.cpp \
        songcanvas/PositionIndicator.cpp \
-       widgets/ResourcesWidget.cpp
+       widgets/ResourcesWidget.cpp \
+       dialogs/AudioClipEditDialog.cpp
 FORMS += ui/ExportWidget.ui \
        ui/AudioSourcesManagerWidget.ui \
-#      ui/PluginSelectorDialog.ui \
        ui/SpectralMeterConfigWidget.ui \
        ui/QuickDriverConfigWidget.ui \
        ui/DriverConfigPage.ui \
@@ -103,7 +104,9 @@
        ui/NewTrackDialog.ui \
        ui/ResourcesWidget.ui \
        ui/QuickStart.ui \
-       ui/InsertSilenceDialog.ui
+       ui/InsertSilenceDialog.ui \
+       ui/AudioClipEditWidget.ui
+
 INCLUDEPATH +=         ../core \
                ../commands \
                ../engine \
@@ -125,7 +128,7 @@
 }
 
 contains(DEFINES, QT_OPENGL_SUPPORT){
-QT += opengl
+    QT += opengl
 }
 
 QMAKE_LIBDIR = ../../lib 

Index: src/traverso/widgets/ResourcesWidget.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/traverso/widgets/ResourcesWidget.cpp,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- src/traverso/widgets/ResourcesWidget.cpp    27 Jun 2007 19:32:43 -0000      
1.27
+++ src/traverso/widgets/ResourcesWidget.cpp    28 Jun 2007 15:03:56 -0000      
1.28
@@ -390,6 +390,7 @@
 {
        setData(0, Qt::UserRole, clip->get_id());
        connect(clip, SIGNAL(recordingFinished()), this, 
SLOT(clip_state_changed()));
+       connect(clip, SIGNAL(stateChanged()), this, SLOT(clip_state_changed()));
 }
 
 void ClipTreeItem::clip_state_changed()

Index: src/traverso/dialogs/AudioClipEditDialog.cpp
===================================================================
RCS file: src/traverso/dialogs/AudioClipEditDialog.cpp
diff -N src/traverso/dialogs/AudioClipEditDialog.cpp
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ src/traverso/dialogs/AudioClipEditDialog.cpp        28 Jun 2007 15:03:56 
-0000      1.1
@@ -0,0 +1,135 @@
+/*
+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.
+
+*/
+
+
+#include "AudioClipEditDialog.h"
+
+#include <QWidget>
+#include "ui_AudioClipEditWidget.h"
+
+#include "AudioClip.h"
+#include "Utils.h"
+#include "defines.h"
+#include "Mixer.h"
+#include "Command.h"
+#include "AudioClipExternalProcessing.h"
+
+class AudioClipEditWidget : public QWidget, protected Ui::AudioClipEditWidget
+{
+       Q_OBJECT
+
+public:
+       AudioClipEditWidget(AudioClip* clip, QWidget* parent) : 
QWidget(parent), m_clip(clip)
+       {
+               setupUi(this);
+               
+               clip_state_changed();
+               clip_start_value_changed(m_clip->get_track_start_frame() / 
m_clip->get_rate());
+               
+               connect(clip, SIGNAL(stateChanged()), this, 
SLOT(clip_state_changed()));
+               connect(clip, SIGNAL(positionChanged(Snappable*)), this, 
SLOT(clip_position_changed()));
+               
+               connect(clipGainSpinBox, SIGNAL(valueChanged(double)), this, 
SLOT(gain_spinbox_value_changed(double)));
+               connect(clipStartSpinBox, SIGNAL(valueChanged(double)), this, 
SLOT(clip_start_value_changed(double)));
+               
+               connect(externalProcessingButton, SIGNAL(clicked()), this, 
SLOT(external_processing()));
+               connect(buttonBox, SIGNAL(accepted()), this, 
SLOT(save_changes()));
+       }
+       
+       ~AudioClipEditWidget() {}
+       
+private:
+       AudioClip* m_clip;
+       friend class AudioClipEditDialog;
+       
+private slots:
+       void external_processing();
+       void clip_state_changed();
+       void save_changes();
+       void clip_position_changed();
+       void gain_spinbox_value_changed(double value);
+       void clip_start_value_changed(double value);
+};
+
+
+AudioClipEditDialog::AudioClipEditDialog(AudioClip* clip, QWidget* parent)
+{
+       m_edit = new AudioClipEditWidget(clip, this);
+       
+       QHBoxLayout* mainLayout = new QHBoxLayout(this);
+       mainLayout->setMargin(0);
+       mainLayout->addWidget(m_edit);
+       
+       setLayout(mainLayout);
+       
+       connect(m_edit->buttonBox, SIGNAL(rejected()), this, SLOT(close()));
+}
+
+void AudioClipEditWidget::external_processing()
+{
+       parentWidget()->hide();
+       Command::process_command(new AudioClipExternalProcessing(m_clip));
+}
+
+void AudioClipEditWidget::clip_state_changed()
+{
+       if (m_clip->get_name() != clipNameLineEdit->text()) {
+               parentWidget()->setWindowTitle(m_clip->get_name());
+               clipNameLineEdit->setText(m_clip->get_name());
+       }
+       
+       clipGainSpinBox->setValue(coefficient_to_dB(m_clip->get_gain()));
+}
+
+void AudioClipEditWidget::save_changes()
+{
+       parentWidget()->hide();
+       QString name = clipNameLineEdit->text();
+       if (!name.isEmpty()) {
+               m_clip->set_name(name);
+       } else {
+               clipNameLineEdit->setText(m_clip->get_name());
+       }               
+}
+
+void AudioClipEditWidget::gain_spinbox_value_changed(double value)
+{
+       float gain = dB_to_scale_factor(value);
+       m_clip->set_gain(gain);
+}
+
+void AudioClipEditWidget::clip_start_value_changed(double value)
+{
+       clipStartSpinBox->setValue(value);
+       
+       nframes_t startframe = (nframes_t)(value * m_clip->get_rate());
+       
+       if (m_clip->get_track_start_frame() != startframe) {
+               m_clip->set_track_start_frame(startframe);
+       }
+}
+
+void AudioClipEditWidget::clip_position_changed()
+{
+       clip_start_value_changed((double)m_clip->get_track_start_frame() / 
m_clip->get_rate());
+}
+
+#include "AudioClipEditDialog.moc"

Index: src/traverso/dialogs/AudioClipEditDialog.h
===================================================================
RCS file: src/traverso/dialogs/AudioClipEditDialog.h
diff -N src/traverso/dialogs/AudioClipEditDialog.h
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ src/traverso/dialogs/AudioClipEditDialog.h  28 Jun 2007 15:03:56 -0000      
1.1
@@ -0,0 +1,40 @@
+/*
+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 AUDIOCLIP_EDIT_DIALOG_H
+#define AUDIOCLIP_EDIT_DIALOG_H
+
+#include <QDialog>
+
+class AudioClipEditWidget;
+class AudioClip;
+
+class AudioClipEditDialog : public QDialog
+{
+public:
+       AudioClipEditDialog(AudioClip* clip, QWidget* parent=0);
+       ~AudioClipEditDialog() {};
+               
+private:
+       AudioClipEditWidget* m_edit;
+};
+
+#endif

Index: src/traverso/ui/AudioClipEditWidget.ui
===================================================================
RCS file: src/traverso/ui/AudioClipEditWidget.ui
diff -N src/traverso/ui/AudioClipEditWidget.ui
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ src/traverso/ui/AudioClipEditWidget.ui      28 Jun 2007 15:03:56 -0000      
1.1
@@ -0,0 +1,257 @@
+<ui version="4.0" >
+ <class>AudioClipEditWidget</class>
+ <widget class="QWidget" name="AudioClipEditWidget" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>485</width>
+    <height>286</height>
+   </rect>
+  </property>
+  <property name="minimumSize" >
+   <size>
+    <width>450</width>
+    <height>0</height>
+   </size>
+  </property>
+  <property name="windowTitle" >
+   <string>Form</string>
+  </property>
+  <layout class="QVBoxLayout" >
+   <property name="margin" >
+    <number>9</number>
+   </property>
+   <property name="spacing" >
+    <number>6</number>
+   </property>
+   <item>
+    <widget class="QGroupBox" name="groupBox_3" >
+     <property name="title" >
+      <string>Clip parameters</string>
+     </property>
+     <layout class="QHBoxLayout" >
+      <property name="margin" >
+       <number>9</number>
+      </property>
+      <property name="spacing" >
+       <number>6</number>
+      </property>
+      <item>
+       <layout class="QVBoxLayout" >
+        <property name="margin" >
+         <number>0</number>
+        </property>
+        <property name="spacing" >
+         <number>6</number>
+        </property>
+        <item>
+         <widget class="QLabel" name="label" >
+          <property name="text" >
+           <string>Name</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_4" >
+          <property name="text" >
+           <string>Gain</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_2" >
+          <property name="text" >
+           <string>Length</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLabel" name="label_3" >
+          <property name="text" >
+           <string>Track start</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QVBoxLayout" >
+        <property name="margin" >
+         <number>0</number>
+        </property>
+        <property name="spacing" >
+         <number>6</number>
+        </property>
+        <item>
+         <widget class="QLineEdit" name="clipNameLineEdit" />
+        </item>
+        <item>
+         <layout class="QHBoxLayout" >
+          <property name="margin" >
+           <number>0</number>
+          </property>
+          <property name="spacing" >
+           <number>6</number>
+          </property>
+          <item>
+           <layout class="QVBoxLayout" >
+            <property name="margin" >
+             <number>0</number>
+            </property>
+            <property name="spacing" >
+             <number>6</number>
+            </property>
+            <item>
+             <widget class="QDoubleSpinBox" name="clipGainSpinBox" >
+              <property name="maximum" >
+               <double>30.000000000000000</double>
+              </property>
+              <property name="minimum" >
+               <double>-120.000000000000000</double>
+              </property>
+              <property name="singleStep" >
+               <double>0.100000000000000</double>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QDoubleSpinBox" name="clipLengthSpinBox" >
+              <property name="decimals" >
+               <number>3</number>
+              </property>
+              <property name="maximum" >
+               <double>1200.000000000000000</double>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <widget class="QDoubleSpinBox" name="clipStartSpinBox" >
+              <property name="suffix" >
+               <string/>
+              </property>
+              <property name="decimals" >
+               <number>3</number>
+              </property>
+              <property name="maximum" >
+               <double>1200.000000000000000</double>
+              </property>
+              <property name="singleStep" >
+               <double>1.000000000000000</double>
+              </property>
+             </widget>
+            </item>
+           </layout>
+          </item>
+          <item>
+           <layout class="QVBoxLayout" >
+            <property name="margin" >
+             <number>0</number>
+            </property>
+            <property name="spacing" >
+             <number>6</number>
+            </property>
+            <item>
+             <widget class="QPushButton" name="externalProcessingButton" >
+              <property name="text" >
+               <string>External Processing</string>
+              </property>
+             </widget>
+            </item>
+            <item>
+             <spacer>
+              <property name="orientation" >
+               <enum>Qt::Vertical</enum>
+              </property>
+              <property name="sizeHint" >
+               <size>
+                <width>20</width>
+                <height>40</height>
+               </size>
+              </property>
+             </spacer>
+            </item>
+           </layout>
+          </item>
+         </layout>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" >
+     <property name="margin" >
+      <number>0</number>
+     </property>
+     <property name="spacing" >
+      <number>6</number>
+     </property>
+     <item>
+      <widget class="QGroupBox" name="groupBox" >
+       <property name="title" >
+        <string>Fade In</string>
+       </property>
+       <layout class="QHBoxLayout" >
+        <property name="margin" >
+         <number>9</number>
+        </property>
+        <property name="spacing" >
+         <number>6</number>
+        </property>
+        <item>
+         <widget class="QLabel" name="label_5" >
+          <property name="text" >
+           <string>Length</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QDoubleSpinBox" name="doubleSpinBox_4" />
+        </item>
+       </layout>
+      </widget>
+     </item>
+     <item>
+      <widget class="QGroupBox" name="groupBox_2" >
+       <property name="title" >
+        <string>Fade Out</string>
+       </property>
+       <layout class="QHBoxLayout" >
+        <property name="margin" >
+         <number>9</number>
+        </property>
+        <property name="spacing" >
+         <number>6</number>
+        </property>
+        <item>
+         <widget class="QLabel" name="label_9" >
+          <property name="text" >
+           <string>Length</string>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QDoubleSpinBox" name="doubleSpinBox_5" />
+        </item>
+       </layout>
+      </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/>
+</ui>




reply via email to

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