moved 2.1-staging to trunk @ rev 1765
git-svn-id: svn://localhost/ardour2/trunk@1767 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
56
SConstruct
56
SConstruct
@@ -16,7 +16,7 @@ import SCons.Node.FS
|
||||
SConsignFile()
|
||||
EnsureSConsVersion(0, 96)
|
||||
|
||||
ardour_version = '2.0rc1'
|
||||
ardour_version = '2.0rc2'
|
||||
|
||||
subst_dict = { }
|
||||
|
||||
@@ -382,14 +382,22 @@ env.Append (BUILDERS = {'Tarball' : tarball_bld})
|
||||
#
|
||||
|
||||
if env['VST']:
|
||||
sys.stdout.write ("Are you building Ardour for personal use (rather than distribution to others)? [no]: ")
|
||||
answer = sys.stdin.readline ()
|
||||
answer = answer.rstrip().strip()
|
||||
if answer != "yes" and answer != "y":
|
||||
print 'You cannot build Ardour with VST support for distribution to others.\nIt is a violation of several different licenses. Build with VST=false.'
|
||||
sys.exit (-1);
|
||||
if os.path.isfile('.personal_use_only'):
|
||||
print "Enabling VST support. Note that distributing a VST-enabled ardour\nis a violation of several different licences.\nBuild with VST=false if you intend to distribute ardour to others."
|
||||
else:
|
||||
print "OK, VST support will be enabled"
|
||||
sys.stdout.write ("Are you building Ardour for personal use (rather than distribution to others)? [no]: ")
|
||||
answer = sys.stdin.readline ()
|
||||
answer = answer.rstrip().strip()
|
||||
if answer == "yes" or answer == "y":
|
||||
fh = open('.personal_use_only', 'w')
|
||||
fh.close()
|
||||
print "OK, VST support will be enabled"
|
||||
else:
|
||||
print 'You cannot build Ardour with VST support for distribution to others.\nIt is a violation of several different licenses. Build with VST=false.'
|
||||
sys.exit (-1);
|
||||
else:
|
||||
if os.path.isfile('.personal_use_only'):
|
||||
os.remove('.personal_use_only')
|
||||
|
||||
|
||||
#######################
|
||||
@@ -400,13 +408,14 @@ deps = \
|
||||
{
|
||||
'glib-2.0' : '2.10.1',
|
||||
'gthread-2.0' : '2.10.1',
|
||||
'gtk+-2.0' : '2.8.1',
|
||||
'gtk+-2.0' : '2.10.0',
|
||||
'libxml-2.0' : '2.6.0',
|
||||
'samplerate' : '0.1.0',
|
||||
'raptor' : '1.4.2',
|
||||
'lrdf' : '0.4.0',
|
||||
'jack' : '0.101.1',
|
||||
'libgnomecanvas-2.0' : '2.0'
|
||||
'libgnomecanvas-2.0' : '2.0',
|
||||
'cairo' : '1.2.4'
|
||||
}
|
||||
|
||||
def DependenciesRequiredMessage():
|
||||
@@ -483,6 +492,12 @@ libraries['xml'].ParseConfig('pkg-config --cflags --libs libxml-2.0')
|
||||
libraries['xslt'] = LibraryInfo()
|
||||
libraries['xslt'].ParseConfig('pkg-config --cflags --libs libxslt')
|
||||
|
||||
libraries['cairo'] = LibraryInfo()
|
||||
libraries['cairo'].ParseConfig ('pkg-config --cflags --libs cairo')
|
||||
|
||||
libraries['pangocairo'] = LibraryInfo()
|
||||
libraries['pangocairo'].ParseConfig ('pkg-config --cflags --libs pangocairo')
|
||||
|
||||
libraries['glib2'] = LibraryInfo()
|
||||
libraries['glib2'].ParseConfig ('pkg-config --cflags --libs glib-2.0')
|
||||
libraries['glib2'].ParseConfig ('pkg-config --cflags --libs gobject-2.0')
|
||||
@@ -492,6 +507,9 @@ libraries['glib2'].ParseConfig ('pkg-config --cflags --libs gthread-2.0')
|
||||
libraries['gtk2'] = LibraryInfo()
|
||||
libraries['gtk2'].ParseConfig ('pkg-config --cflags --libs gtk+-2.0')
|
||||
|
||||
libraries['gtk2-unix-print'] = LibraryInfo()
|
||||
libraries['gtk2-unix-print'].ParseConfig ('pkg-config --cflags --libs gtk+-unix-print-2.0')
|
||||
|
||||
libraries['pango'] = LibraryInfo()
|
||||
libraries['pango'].ParseConfig ('pkg-config --cflags --libs pango')
|
||||
|
||||
@@ -845,9 +863,6 @@ if env['SYSLIBS']:
|
||||
LIBPATH='#libs/libsndfile',
|
||||
CPPPATH=['#libs/libsndfile/src'])
|
||||
|
||||
# libraries['libglademm'] = LibraryInfo()
|
||||
# libraries['libglademm'].ParseConfig ('pkg-config --cflags --libs libglademm-2.4')
|
||||
|
||||
# libraries['flowcanvas'] = LibraryInfo(LIBS='flowcanvas', LIBPATH='#/libs/flowcanvas', CPPPATH='#libs/flowcanvas')
|
||||
libraries['soundtouch'] = LibraryInfo()
|
||||
libraries['soundtouch'].ParseConfig ('pkg-config --cflags --libs soundtouch-1.0')
|
||||
@@ -892,6 +907,9 @@ else:
|
||||
libraries['glibmm2'] = LibraryInfo(LIBS='glibmm2',
|
||||
LIBPATH='#libs/glibmm2',
|
||||
CPPPATH='#libs/glibmm2')
|
||||
libraries['cairomm'] = LibraryInfo(LIBS='cairomm',
|
||||
LIBPATH='#libs/cairomm',
|
||||
CPPPATH='#libs/cairomm')
|
||||
libraries['pangomm'] = LibraryInfo(LIBS='pangomm',
|
||||
LIBPATH='#libs/gtkmm2/pango',
|
||||
CPPPATH='#libs/gtkmm2/pango')
|
||||
@@ -914,9 +932,6 @@ else:
|
||||
libraries['sndfile-ardour'] = LibraryInfo(LIBS='libsndfile-ardour',
|
||||
LIBPATH='#libs/libsndfile',
|
||||
CPPPATH=['#libs/libsndfile', '#libs/libsndfile/src'])
|
||||
# libraries['libglademm'] = LibraryInfo(LIBS='libglademm',
|
||||
# LIBPATH='#libs/libglademm',
|
||||
# CPPPATH='#libs/libglademm')
|
||||
libraries['appleutility'] = LibraryInfo(LIBS='libappleutility',
|
||||
LIBPATH='#libs/appleutility',
|
||||
CPPPATH='#libs/appleutility')
|
||||
@@ -945,6 +960,7 @@ else:
|
||||
|
||||
gtk_subdirs = [
|
||||
'libs/glibmm2',
|
||||
'libs/cairomm',
|
||||
'libs/gtkmm2/pango',
|
||||
'libs/gtkmm2/atk',
|
||||
'libs/gtkmm2/gdk',
|
||||
@@ -1076,7 +1092,13 @@ if not conf.CheckFunc('posix_memalign'):
|
||||
|
||||
env = conf.Finish()
|
||||
|
||||
# generate the per-user and system rc files from the same source
|
||||
|
||||
rcbuild = env.SubstInFile ('ardour.rc','ardour.rc.in', SUBST_DICT = subst_dict)
|
||||
sysrcbuild = env.SubstInFile ('ardour_system.rc','ardour.rc.in', SUBST_DICT = subst_dict)
|
||||
|
||||
# add to the substitution dictionary
|
||||
|
||||
subst_dict['%VERSION%'] = ardour_version[0:3]
|
||||
subst_dict['%EXTRA_VERSION%'] = ardour_version[3:]
|
||||
subst_dict['%REVISION_STRING%'] = ''
|
||||
@@ -1092,6 +1114,7 @@ env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour2'), 'ardour
|
||||
env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour2'), 'ardour.rc'))
|
||||
|
||||
Default (rcbuild)
|
||||
Default (sysrcbuild)
|
||||
|
||||
# source tarball
|
||||
|
||||
@@ -1101,7 +1124,6 @@ env.Distribute (env['DISTTREE'],
|
||||
[ 'SConstruct', 'svn_revision.h',
|
||||
'COPYING', 'PACKAGER_README', 'README',
|
||||
'ardour.rc.in',
|
||||
'ardour_system.rc',
|
||||
'tools/config.guess',
|
||||
'icons/icon/ardour_icon_mac_mask.png',
|
||||
'icons/icon/ardour_icon_mac.png',
|
||||
|
||||
@@ -32,9 +32,13 @@
|
||||
<Option name="quieten-at-speed" value="1.000000"/>
|
||||
<Option name="use-vst" value="yes"/>
|
||||
<Option name="use-tranzport" value="yes"/>
|
||||
<Option name="disk-choice-space-threshold" value="57600000"/>
|
||||
<Option name="destructive-xfade-msecs" value="20"/>
|
||||
<Option name="periodic-safety-backups" value="1"/>
|
||||
<Option name="periodic-safety-backup-interval" value="120"/>
|
||||
</Config>
|
||||
<extra>
|
||||
<Keyboard edit-button="3" edit-modifier="4" delete-button="3" delete-modifier="1" snap-modifier="32"/>
|
||||
</extra>
|
||||
</Ardour>
|
||||
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Ardour>
|
||||
<Config>
|
||||
<Option name="minimum-disk-io-bytes" value="262144"/>
|
||||
<Option name="track-buffer-seconds" value="5.000000"/>
|
||||
<Option name="mute-affects-pre-fader" value="yes"/>
|
||||
<Option name="mute-affects-post-fader" value="yes"/>
|
||||
<Option name="mute-affects-control-outs" value="yes"/>
|
||||
<Option name="mute-affects-main-outs" value="yes"/>
|
||||
<Option name="solo-latch" value="yes"/>
|
||||
<Option name="pixmap-path" value="/usr/share/ardour/pixmaps:/usr/local/share/ardour/pixmaps"/>
|
||||
<Option name="disk-choice-space-threshold" value="57600000"/>
|
||||
<Option name="mtc-port" value="trident"/>
|
||||
<Option name="mmc-port" value="trident"/>
|
||||
<Option name="monitor-inputs" value="no"/>
|
||||
</Config>
|
||||
</Ardour>
|
||||
@@ -19,6 +19,9 @@ gtkardour.Append(DOMAIN=domain, MAJOR=1,MINOR=0,MICRO=2)
|
||||
gtkardour.Append(CCFLAGS="-DPACKAGE=\\\"" + domain + "\\\"")
|
||||
gtkardour.Append(CXXFLAGS="-DPACKAGE=\\\"" + domain + "\\\"")
|
||||
gtkardour.Append(CXXFLAGS="-DLIBSIGC_DISABLE_DEPRECATED")
|
||||
gtkardour.Append(CXXFLAGS="-DGLIBMM_DISABLE_DEPRECATED")
|
||||
gtkardour.Append(CXXFLAGS="-DGDKMM_DISABLE_DEPRECATED")
|
||||
gtkardour.Append(CXXFLAGS="-DGTKMM_DISABLE_DEPRECATED")
|
||||
gtkardour.Append(CPPPATH="#/") # for top level svn_revision.h
|
||||
#gtkardour.Append(CXXFLAGS="-DFLOWCANVAS_AA")
|
||||
gtkardour.Append(PACKAGE=domain)
|
||||
@@ -39,6 +42,7 @@ gtkardour.Merge ([
|
||||
libraries['flac'],
|
||||
libraries['lrdf'],
|
||||
libraries['glibmm2'],
|
||||
libraries['cairomm'],
|
||||
libraries['pangomm'],
|
||||
libraries['atkmm'],
|
||||
libraries['gdkmm2'],
|
||||
@@ -332,6 +336,7 @@ env.Alias ('tarball', env.Distribute (env['DISTTREE'],
|
||||
'i18n.h', 'gettext.h',
|
||||
'ardour.sh.in',
|
||||
'ardev_common.sh.in',
|
||||
'ardev', 'ardbg',
|
||||
'ardour2_ui.rc', 'splash.png',
|
||||
'ardour.menus', 'ardour.bindings.in', 'ardour.colors',
|
||||
'editor_xpms'
|
||||
|
||||
@@ -151,6 +151,7 @@ static const char* authors[] = {
|
||||
N_("Mike Täht"),
|
||||
N_("John Anderson"),
|
||||
N_("Nedko Arnaudov"),
|
||||
N_("Carl Hetherington"),
|
||||
0
|
||||
};
|
||||
|
||||
@@ -163,6 +164,7 @@ static const char* translators[] = {
|
||||
\n\tChris Ross <chris@tebibyte.org>\n"),
|
||||
N_("Spanish:\n\t Alex Krohn <alexkrohn@fastmail.fm>\n"),
|
||||
N_("Russian:\n\t Igor Blinov <pitstop@nm.ru>\n"),
|
||||
N_("Greek:\n\t Klearchos Gourgourinis <muadib@in.gr>\n"),
|
||||
0
|
||||
};
|
||||
|
||||
|
||||
@@ -256,6 +256,13 @@ ActionManager::uncheck_toggleaction (const char * name)
|
||||
delete [] group_name;
|
||||
}
|
||||
|
||||
/** Examine the state of a Configuration setting and a toggle action, and toggle the Configuration
|
||||
* setting if its state doesn't match the toggle action.
|
||||
* @param group Action group.
|
||||
* @param action Action name.
|
||||
* @param Method to set the state of the Configuration setting.
|
||||
* @param Method to get the state of the Configuration setting.
|
||||
*/
|
||||
void
|
||||
ActionManager::toggle_config_state (const char* group, const char* action, bool (Configuration::*set)(bool), bool (Configuration::*get)(void) const)
|
||||
{
|
||||
@@ -285,6 +292,12 @@ ActionManager::toggle_config_state (const char* group, const char* action, sigc:
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/** Set the state of a ToggleAction using a particular Configuration get() method
|
||||
* @param group Action group.
|
||||
* @param action Action name.
|
||||
* @param get Method to obtain the state that the ToggleAction should have.
|
||||
*/
|
||||
void
|
||||
ActionManager::map_some_state (const char* group, const char* action, bool (Configuration::*get)() const)
|
||||
{
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_actions_h__
|
||||
#define __ardour_gtk_actions_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __gtk_ardour_add_route_dialog_h__
|
||||
#define __gtk_ardour_add_route_dialog_h__
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ export ARDOUR_PATH=gtk2_ardour/icons:gtk2_ardour/pixmaps:gtk2_ardour
|
||||
export GTK_PATH=libs/clearlooks
|
||||
|
||||
|
||||
export LD_LIBRARY_PATH=libs/surfaces/control_protocol:libs/ardour:libs/midi++2:libs/pbd:libs/soundtouch:libs/gtkmm2ext:libs/sigc++2:libs/glibmm2:libs/gtkmm2/atk:libs/gtkmm2/pango:libs/gtkmm2/gdk:libs/gtkmm2/gtk:libs/libgnomecanvasmm:libs/libsndfile:libs/appleutility:$LD_LIBRARY_PATH
|
||||
export LD_LIBRARY_PATH=libs/surfaces/control_protocol:libs/ardour:libs/midi++2:libs/pbd:libs/soundtouch:libs/gtkmm2ext:libs/sigc++2:libs/glibmm2:libs/gtkmm2/atk:libs/gtkmm2/pango:libs/gtkmm2/gdk:libs/gtkmm2/gtk:libs/libgnomecanvasmm:libs/cairomm:libs/libsndfile:libs/appleutility:$LD_LIBRARY_PATH
|
||||
|
||||
# DYLD_LIBRARY_PATH is for darwin.
|
||||
export DYLD_LIBRARY_PATH=$LD_LIBRARY_PATH
|
||||
|
||||
@@ -14,9 +14,9 @@ cTransportMarkerBar 0.60 0.60 0.64 1.0
|
||||
cTimeStretchFill 0.89 0.71 0.71 0.59
|
||||
cTimeStretchOutline 0.39 0.39 0.39 0.59
|
||||
cAutomationLine 0.27 0.74 0.35 1.0
|
||||
cLeftPanAutomationLine 0.77 0.24 0.01 1.0
|
||||
cLeftPanAutomationLine 0.87 0.44 0.11 1.0
|
||||
cRightPanAutomationLine 0.03 0.26 0.73 1.0
|
||||
cRedirectAutomationLine 0.28 0.34 0.74 1.0
|
||||
cRedirectAutomationLine 0.48 0.64 0.98 1.0
|
||||
cControlPointFill 0 0 0 1.0
|
||||
cControlPointOutline 0 0 0 1.0
|
||||
cEnteredControlPointOutline 1.0 0.21 0.21 1.0
|
||||
|
||||
@@ -348,6 +348,7 @@
|
||||
<menuitem action='LatchedRecordEnable'/>
|
||||
<menuitem action='RegionEquivalentsOverlap'/>
|
||||
<separator/>
|
||||
<menuitem action='PeriodicSafetyBackups'/>
|
||||
<menuitem action='VerifyRemoveLastCapture'/>
|
||||
<menuitem action='StopRecordingOnXrun'/>
|
||||
<menuitem action='StopTransportAtEndOfSession'/>
|
||||
@@ -369,6 +370,7 @@
|
||||
<menuitem action='cut'/>
|
||||
<menuitem action='copy'/>
|
||||
<menuitem action='paste'/>
|
||||
<menuitem action='delete'/>
|
||||
<separator/>
|
||||
<menuitem action='rename'/>
|
||||
<separator/>
|
||||
|
||||
@@ -448,6 +448,7 @@ style "editor_hscrollbar" = "ardour_adjusters"
|
||||
# make it bigger.
|
||||
#
|
||||
GtkRange::slider_width = 27
|
||||
GtkScrollbar::slider_width = 27
|
||||
}
|
||||
|
||||
style "ardour_progressbars" = "default_buttons_menus"
|
||||
|
||||
@@ -428,6 +428,39 @@ ARDOUR_UI::save_ardour_state ()
|
||||
save_keybindings ();
|
||||
}
|
||||
|
||||
gint
|
||||
ARDOUR_UI::autosave_session ()
|
||||
{
|
||||
if (!Config->get_periodic_safety_backups())
|
||||
return 1;
|
||||
|
||||
if (session) {
|
||||
session->maybe_write_autosave();
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
void
|
||||
ARDOUR_UI::update_autosave ()
|
||||
{
|
||||
ENSURE_GUI_THREAD (mem_fun (*this, &ARDOUR_UI::update_autosave));
|
||||
|
||||
if (session->dirty()) {
|
||||
if (_autosave_connection.connected()) {
|
||||
_autosave_connection.disconnect();
|
||||
}
|
||||
|
||||
_autosave_connection = Glib::signal_timeout().connect (mem_fun (*this, &ARDOUR_UI::autosave_session),
|
||||
Config->get_periodic_safety_backup_interval() * 1000);
|
||||
|
||||
} else {
|
||||
if (_autosave_connection.connected()) {
|
||||
_autosave_connection.disconnect();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
ARDOUR_UI::startup ()
|
||||
{
|
||||
@@ -914,9 +947,30 @@ ARDOUR_UI::filter_ardour_session_dirs (const FileFilter::Info& info)
|
||||
return S_ISREG (statbuf.st_mode);
|
||||
}
|
||||
|
||||
bool
|
||||
ARDOUR_UI::check_audioengine ()
|
||||
{
|
||||
if (engine) {
|
||||
if (!engine->connected()) {
|
||||
MessageDialog msg (_("Ardour is not connected to JACK\n"
|
||||
"You cannot open or close sessions in this condition"));
|
||||
msg.run ();
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
ARDOUR_UI::open_session ()
|
||||
{
|
||||
if (!check_audioengine()) {
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
/* popup selector window */
|
||||
|
||||
if (open_session_selector == 0) {
|
||||
@@ -1718,9 +1772,7 @@ ARDOUR_UI::new_session (std::string predetermined_path)
|
||||
string session_name;
|
||||
string session_path;
|
||||
|
||||
if (!engine->connected()) {
|
||||
MessageDialog msg (_("Ardour is not connected to JACK at this time. Creating new sessions is not possible."));
|
||||
msg.run ();
|
||||
if (!check_audioengine()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1730,14 +1782,13 @@ ARDOUR_UI::new_session (std::string predetermined_path)
|
||||
new_session_dialog->set_name (predetermined_path);
|
||||
new_session_dialog->reset_recent();
|
||||
new_session_dialog->show();
|
||||
new_session_dialog->set_current_page (0);
|
||||
|
||||
do {
|
||||
response = new_session_dialog->run ();
|
||||
|
||||
if (!engine->connected()) {
|
||||
if (!check_audioengine()) {
|
||||
new_session_dialog->hide ();
|
||||
MessageDialog msg (_("Ardour is not connected to JACK at this time. Creating new sessions is not possible."));
|
||||
msg.run ();
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1930,6 +1981,10 @@ ARDOUR_UI::new_session (std::string predetermined_path)
|
||||
void
|
||||
ARDOUR_UI::close_session()
|
||||
{
|
||||
if (!check_audioengine()) {
|
||||
return;
|
||||
}
|
||||
|
||||
unload_session();
|
||||
new_session ();
|
||||
}
|
||||
@@ -1941,6 +1996,10 @@ ARDOUR_UI::load_session (const string & path, const string & snap_name, string*
|
||||
int x;
|
||||
session_loaded = false;
|
||||
|
||||
if (!check_audioengine()) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
x = unload_session ();
|
||||
|
||||
if (x < 0) {
|
||||
@@ -1997,8 +2056,14 @@ ARDOUR_UI::build_session (const string & path, const string & snap_name,
|
||||
Session *new_session;
|
||||
int x;
|
||||
|
||||
if (!check_audioengine()) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
session_loaded = false;
|
||||
|
||||
x = unload_session ();
|
||||
|
||||
if (x < 0) {
|
||||
return -1;
|
||||
} else if (x > 0) {
|
||||
|
||||
@@ -257,6 +257,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI
|
||||
ARDOUR::AudioEngine *engine;
|
||||
ARDOUR::Session *session;
|
||||
|
||||
bool check_audioengine();
|
||||
|
||||
Gtk::Tooltips _tooltips;
|
||||
|
||||
void goto_editor_window ();
|
||||
@@ -291,6 +293,11 @@ class ARDOUR_UI : public Gtkmm2ext::UI
|
||||
int ask_about_saving_session (const string & why);
|
||||
int save_the_session;
|
||||
|
||||
/* periodic safety backup, to be precise */
|
||||
gint autosave_session();
|
||||
void update_autosave();
|
||||
sigc::connection _autosave_connection;
|
||||
|
||||
void queue_transport_change ();
|
||||
void map_transport_state ();
|
||||
int32_t do_engine_start ();
|
||||
@@ -668,6 +675,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI
|
||||
void toggle_StopPluginsWithTransport();
|
||||
void toggle_DoNotRunPluginsWhileRecording();
|
||||
void toggle_VerifyRemoveLastCapture();
|
||||
void toggle_PeriodicSafetyBackups();
|
||||
void toggle_StopRecordingOnXrun();
|
||||
void toggle_StopTransportAtEndOfSession();
|
||||
void toggle_GainReduceFastTransport();
|
||||
|
||||
@@ -126,6 +126,10 @@ ARDOUR_UI::connect_to_session (Session *s)
|
||||
|
||||
solo_alert_button.set_active (session->soloing());
|
||||
|
||||
/* update autochange callback on dirty state changing */
|
||||
|
||||
session->DirtyChanged.connect (mem_fun(*this, &ARDOUR_UI::update_autosave));
|
||||
|
||||
/* can't be auditioning here */
|
||||
|
||||
primary_clock.set_session (s);
|
||||
|
||||
@@ -402,6 +402,7 @@ ARDOUR_UI::install_actions ()
|
||||
|
||||
ActionManager::register_toggle_action (option_actions, X_("StopPluginsWithTransport"), _("Stop plugins with transport"), mem_fun (*this, &ARDOUR_UI::toggle_StopPluginsWithTransport));
|
||||
ActionManager::register_toggle_action (option_actions, X_("VerifyRemoveLastCapture"), _("Verify remove last capture"), mem_fun (*this, &ARDOUR_UI::toggle_VerifyRemoveLastCapture));
|
||||
ActionManager::register_toggle_action (option_actions, X_("PeriodicSafetyBackups"), _("Make periodic safety backups"), mem_fun (*this, &ARDOUR_UI::toggle_PeriodicSafetyBackups));
|
||||
ActionManager::register_toggle_action (option_actions, X_("StopRecordingOnXrun"), _("Stop recording on xrun"), mem_fun (*this, &ARDOUR_UI::toggle_StopRecordingOnXrun));
|
||||
ActionManager::register_toggle_action (option_actions, X_("StopTransportAtEndOfSession"), _("Stop transport at session end"), mem_fun (*this, &ARDOUR_UI::toggle_StopTransportAtEndOfSession));
|
||||
ActionManager::register_toggle_action (option_actions, X_("GainReduceFastTransport"), _("-12dB gain reduce ffwd/rewind"), mem_fun (*this, &ARDOUR_UI::toggle_GainReduceFastTransport));
|
||||
|
||||
@@ -398,6 +398,12 @@ ARDOUR_UI::toggle_VerifyRemoveLastCapture()
|
||||
ActionManager::toggle_config_state ("options", "VerifyRemoveLastCapture", &Configuration::set_verify_remove_last_capture, &Configuration::get_verify_remove_last_capture);
|
||||
}
|
||||
|
||||
void
|
||||
ARDOUR_UI::toggle_PeriodicSafetyBackups()
|
||||
{
|
||||
ActionManager::toggle_config_state ("options", "PeriodicSafetyBackups", &Configuration::set_periodic_safety_backups, &Configuration::get_periodic_safety_backups);
|
||||
}
|
||||
|
||||
void
|
||||
ARDOUR_UI::toggle_StopRecordingOnXrun()
|
||||
{
|
||||
@@ -891,6 +897,8 @@ ARDOUR_UI::parameter_changed (const char* parameter_name)
|
||||
ActionManager::map_some_state ("options", "LatchedRecordEnable", &Configuration::get_latched_record_enable);
|
||||
} else if (PARAM_IS ("verify-remove-last-capture")) {
|
||||
ActionManager::map_some_state ("options", "VerifyRemoveLastCapture", &Configuration::get_verify_remove_last_capture);
|
||||
} else if (PARAM_IS ("periodic-safety-backups")) {
|
||||
ActionManager::map_some_state ("options", "PeriodicSafetyBackups", &Configuration::get_periodic_safety_backups);
|
||||
} else if (PARAM_IS ("stop-recording-on-xrun")) {
|
||||
ActionManager::map_some_state ("options", "StopRecordingOnXrun", &Configuration::get_stop_recording_on_xrun);
|
||||
} else if (PARAM_IS ("stop-at-session-end")) {
|
||||
@@ -944,8 +952,6 @@ ARDOUR_UI::parameter_changed (const char* parameter_name)
|
||||
map_meter_hold ();
|
||||
} else if (PARAM_IS ("meter-falloff")) {
|
||||
map_meter_falloff ();
|
||||
} else if (PARAM_IS ("verify-remove-last-capture")) {
|
||||
ActionManager::map_some_state ("options", "VerifyRemoveLastCapture", &Configuration::get_verify_remove_last_capture);
|
||||
} else if (PARAM_IS ("video-pullup") || PARAM_IS ("smpte-format")) {
|
||||
if (session) {
|
||||
primary_clock.set (session->audible_frame(), true);
|
||||
|
||||
@@ -290,13 +290,27 @@ AudioStreamView::playlist_changed (boost::shared_ptr<Diskstream> ds)
|
||||
playlist_connections.push_back (apl->NewCrossfade.connect (mem_fun (*this, &AudioStreamView::add_crossfade)));
|
||||
}
|
||||
|
||||
void
|
||||
AudioStreamView::add_crossfade_weak (boost::weak_ptr<Crossfade> crossfade)
|
||||
{
|
||||
boost::shared_ptr<Crossfade> sp (crossfade.lock());
|
||||
|
||||
if (!sp) {
|
||||
return;
|
||||
}
|
||||
|
||||
add_crossfade (sp);
|
||||
}
|
||||
|
||||
void
|
||||
AudioStreamView::add_crossfade (boost::shared_ptr<Crossfade> crossfade)
|
||||
{
|
||||
AudioRegionView* lview = 0;
|
||||
AudioRegionView* rview = 0;
|
||||
|
||||
/* we do not allow shared_ptr<T> to be bound to slots */
|
||||
|
||||
ENSURE_GUI_THREAD (bind (mem_fun (*this, &AudioStreamView::add_crossfade), crossfade));
|
||||
ENSURE_GUI_THREAD (bind (mem_fun (*this, &AudioStreamView::add_crossfade_weak), boost::weak_ptr<Crossfade> (crossfade)));
|
||||
|
||||
/* first see if we already have a CrossfadeView for this Crossfade */
|
||||
|
||||
|
||||
@@ -94,6 +94,7 @@ class AudioStreamView : public StreamView
|
||||
void playlist_changed (boost::shared_ptr<ARDOUR::Diskstream>);
|
||||
|
||||
void add_crossfade (boost::shared_ptr<ARDOUR::Crossfade>);
|
||||
void add_crossfade_weak (boost::weak_ptr<ARDOUR::Crossfade>);
|
||||
void remove_crossfade (boost::shared_ptr<ARDOUR::Crossfade>);
|
||||
|
||||
void color_handler (ColorID id, uint32_t val);
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_automation_gain_line_h__
|
||||
#define __ardour_gtk_automation_gain_line_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_automation_pan_line_h__
|
||||
#define __ardour_gtk_automation_pan_line_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_automation_selectable_h__
|
||||
#define __ardour_gtk_automation_selectable_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_automation_selection_h__
|
||||
#define __ardour_gtk_automation_selection_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#include <ardour/route.h>
|
||||
#include <pbd/memento_command.h>
|
||||
|
||||
@@ -54,7 +73,7 @@ AutomationTimeAxisView::AutomationTimeAxisView (Session& s, boost::shared_ptr<Ro
|
||||
base_rect = new SimpleRect(*canvas_display);
|
||||
base_rect->property_x1() = 0.0;
|
||||
base_rect->property_y1() = 0.0;
|
||||
base_rect->property_x2() = max_frames;
|
||||
base_rect->property_x2() = editor.frame_to_pixel (max_frames);
|
||||
base_rect->property_outline_color_rgba() = color_map[cAutomationTrackOutline];
|
||||
/* outline ends and bottom */
|
||||
base_rect->property_outline_what() = (guint32) (0x1|0x2|0x8);
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_automation_time_axis_h__
|
||||
#define __ardour_gtk_automation_time_axis_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_canvas_h__
|
||||
#define __ardour_gtk_canvas_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_canvas_impl_h__
|
||||
#define __ardour_gtk_canvas_impl_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __gtk_ardour_color_h__
|
||||
#define __gtk_ardour_color_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#include <cmath>
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_color_manager_h__
|
||||
#define __ardour_gtk_color_manager_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
/* no guard clauses here */
|
||||
|
||||
COLORID(cWaveForm)
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __gtk_ardour_xfade_edit_h__
|
||||
#define __gtk_ardour_xfade_edit_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_crossfade_xpms_h_
|
||||
#define __ardour_gtk_crossfade_xpms_h_
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <cfloat>
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __gtk2_ardour_drag_info_h_
|
||||
#define __gtk2_ardour_drag_info_h_
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "editing.h"
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __gtk_ardour_editing_h__
|
||||
#define __gtk_ardour_editing_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
/* Changing this order will break the menu */
|
||||
SNAPTYPE(SnapToFrame)
|
||||
SNAPTYPE(SnapToCDFrame)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright (C) 2000-2006 Paul Davis
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -27,7 +27,7 @@
|
||||
|
||||
#include <pbd/convert.h>
|
||||
#include <pbd/error.h>
|
||||
#include <pbd/stacktrace.h>
|
||||
#include <pbd/enumwriter.h>
|
||||
#include <pbd/memento_command.h>
|
||||
|
||||
#include <glibmm/miscutils.h>
|
||||
@@ -2041,6 +2041,10 @@ Editor::set_state (const XMLNode& node)
|
||||
edit_cursor->set_position (0);
|
||||
}
|
||||
|
||||
if ((prop = node.property ("mixer-width"))) {
|
||||
editor_mixer_strip_width = Width (string_2_enum (prop->value(), editor_mixer_strip_width));
|
||||
}
|
||||
|
||||
if ((prop = node.property ("zoom-focus"))) {
|
||||
set_zoom_focus ((ZoomFocus) atoi (prop->value()));
|
||||
}
|
||||
@@ -2104,16 +2108,16 @@ Editor::set_state (const XMLNode& node)
|
||||
|
||||
if ((prop = node.property ("follow-playhead"))) {
|
||||
bool yn = (prop->value() == "yes");
|
||||
set_follow_playhead (yn);
|
||||
RefPtr<Action> act = ActionManager::get_action (X_("Editor"), X_("toggle-follow-playhead"));
|
||||
if (act) {
|
||||
RefPtr<ToggleAction> tact = RefPtr<ToggleAction>::cast_dynamic(act);
|
||||
/* do it twice to force the change */
|
||||
tact->set_active (!yn);
|
||||
tact->set_active (yn);
|
||||
if (tact->get_active() != yn) {
|
||||
tact->set_active (yn);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if ((prop = node.property ("region-list-sort-type"))) {
|
||||
region_list_sort_type = (Editing::RegionListSortType) -1; // force change
|
||||
reset_region_list_sort_type(str2regionlistsorttype(prop->value()));
|
||||
@@ -2181,6 +2185,8 @@ Editor::get_state ()
|
||||
node->add_child_nocopy (*geometry);
|
||||
}
|
||||
|
||||
maybe_add_mixer_strip_width (*node);
|
||||
|
||||
snprintf (buf, sizeof(buf), "%d", (int) zoom_focus);
|
||||
node->add_property ("zoom-focus", buf);
|
||||
snprintf (buf, sizeof(buf), "%f", frames_per_unit);
|
||||
@@ -3776,7 +3782,7 @@ Editor::idle_visual_changer ()
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
return 0; /* this is always a one-shot call */
|
||||
}
|
||||
|
||||
struct EditorOrderTimeAxisSorter {
|
||||
|
||||
@@ -264,6 +264,7 @@ class Editor : public PublicEditor
|
||||
TrackViewList* get_valid_views (TimeAxisView*, ARDOUR::RouteGroup* grp = 0);
|
||||
|
||||
Width editor_mixer_strip_width;
|
||||
void maybe_add_mixer_strip_width (XMLNode&);
|
||||
void show_editor_mixer (bool yn);
|
||||
void set_selected_mixer_strip (TimeAxisView&);
|
||||
void hide_track_in_display (TimeAxisView& tv);
|
||||
@@ -305,6 +306,7 @@ class Editor : public PublicEditor
|
||||
void toggle_xfades_active ();
|
||||
void toggle_xfade_visibility ();
|
||||
bool xfade_visibility() const { return _xfade_visibility; }
|
||||
void update_xfade_visibility ();
|
||||
void update_crossfade_model ();
|
||||
void set_crossfade_model (ARDOUR::CrossfadeModel);
|
||||
|
||||
@@ -1435,7 +1437,7 @@ class Editor : public PublicEditor
|
||||
void drag_rubberband_select (ArdourCanvas::Item* item, GdkEvent* event);
|
||||
void end_rubberband_select (ArdourCanvas::Item* item, GdkEvent* event);
|
||||
|
||||
bool select_all_within (nframes_t start, nframes_t end, gdouble topy, gdouble boty, Selection::Operation op);
|
||||
bool select_all_within (nframes_t start, nframes_t end, gdouble topy, gdouble boty, const TrackViewList&, Selection::Operation op);
|
||||
|
||||
ArdourCanvas::SimpleRect *rubberband_rect;
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#include <ardour/ardour.h>
|
||||
|
||||
#include "utils.h"
|
||||
@@ -1046,9 +1065,12 @@ Editor::toggle_xfades_active ()
|
||||
void
|
||||
Editor::toggle_xfade_visibility ()
|
||||
{
|
||||
ActionManager::toggle_config_state ("Editor", "toggle-xfades-visibility", &Configuration::set_xfades_visible, &Configuration::get_xfades_visible);
|
||||
ActionManager::toggle_config_state ("Editor", "toggle-xfades-visible", &Configuration::set_xfades_visible, &Configuration::get_xfades_visible);
|
||||
}
|
||||
|
||||
/** A Configuration parameter has changed.
|
||||
* @param parameter_name Name of the changed parameter.
|
||||
*/
|
||||
void
|
||||
Editor::parameter_changed (const char* parameter_name)
|
||||
{
|
||||
@@ -1073,6 +1095,7 @@ Editor::parameter_changed (const char* parameter_name)
|
||||
ActionManager::map_some_state ("Editor", "toggle-xfades-active", &Configuration::get_xfades_active);
|
||||
} else if (PARAM_IS ("xfades-visible")) {
|
||||
ActionManager::map_some_state ("Editor", "toggle-xfades-visible", &Configuration::get_xfades_visible);
|
||||
update_xfade_visibility ();
|
||||
} else if (PARAM_IS ("auto-xfade")) {
|
||||
ActionManager::map_some_state ("Editor", "toggle-auto-xfades", &Configuration::get_auto_xfade);
|
||||
} else if (PARAM_IS ("xfade-model")) {
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#include <ardour/location.h>
|
||||
#include <ardour/audio_diskstream.h>
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_editor_enums_h__
|
||||
#define __ardour_gtk_editor_enums_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __gtk2_ardour_editor_items_h__
|
||||
#define __gtk2_ardour_editor_items_h__
|
||||
|
||||
|
||||
@@ -594,7 +594,7 @@ Editor::marker_menu_select_all_selectables_using_range ()
|
||||
bool is_start;
|
||||
|
||||
if (((l = find_location_from_marker (marker, is_start)) != 0) && (l->end() > l->start())) {
|
||||
select_all_within (l->start(), l->end() - 1, 0, DBL_MAX, Selection::Set);
|
||||
select_all_within (l->start(), l->end() - 1, 0, DBL_MAX, track_views, Selection::Set);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -20,6 +20,9 @@
|
||||
#include <glibmm/miscutils.h>
|
||||
#include <gtkmm2ext/utils.h>
|
||||
#include <gtkmm2ext/window_title.h>
|
||||
|
||||
#include <pbd/enumwriter.h>
|
||||
|
||||
#include <ardour/audioengine.h>
|
||||
|
||||
#include "editor.h"
|
||||
@@ -32,6 +35,7 @@
|
||||
#include "i18n.h"
|
||||
|
||||
using namespace Gtkmm2ext;
|
||||
using namespace PBD;
|
||||
|
||||
void
|
||||
Editor::editor_mixer_button_toggled ()
|
||||
@@ -107,8 +111,8 @@ Editor::show_editor_mixer (bool yn)
|
||||
current_mixer_strip->set_embedded (true);
|
||||
current_mixer_strip->Hiding.connect (mem_fun(*this, &Editor::current_mixer_strip_hidden));
|
||||
current_mixer_strip->GoingAway.connect (mem_fun(*this, &Editor::current_mixer_strip_removed));
|
||||
current_mixer_strip->set_width (editor_mixer_strip_width);
|
||||
|
||||
current_mixer_strip->set_width (editor_mixer_strip_width, (void*) this);
|
||||
|
||||
global_hpacker.pack_start (*current_mixer_strip, Gtk::PACK_SHRINK );
|
||||
global_hpacker.reorder_child (*current_mixer_strip, 0);
|
||||
|
||||
@@ -355,3 +359,11 @@ Editor::session_going_away ()
|
||||
|
||||
session = 0;
|
||||
}
|
||||
|
||||
void
|
||||
Editor::maybe_add_mixer_strip_width (XMLNode& node)
|
||||
{
|
||||
if (current_mixer_strip) {
|
||||
node.add_property ("mixer-width", enum_2_string (current_mixer_strip->get_width()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1620,7 +1620,6 @@ Editor::end_grab (ArdourCanvas::Item* item, GdkEvent* event)
|
||||
stop_canvas_autoscroll ();
|
||||
|
||||
if (drag_info.item == 0) {
|
||||
cerr << "end grab with no item\n";
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2768,7 +2767,7 @@ Editor::region_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
|
||||
drag_info.want_move_threshold = false; // don't copy again
|
||||
|
||||
/* duplicate the region(s) */
|
||||
|
||||
|
||||
vector<RegionView*> new_regionviews;
|
||||
|
||||
for (list<RegionView*>::const_iterator i = selection->regions.by_layer().begin(); i != selection->regions.by_layer().end(); ++i) {
|
||||
@@ -2801,7 +2800,7 @@ Editor::region_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
|
||||
/* reset drag_info data to reflect the fact that we are dragging the copies */
|
||||
|
||||
drag_info.data = new_regionviews.front();
|
||||
|
||||
|
||||
swap_grab (new_regionviews.front()->get_canvas_group (), 0, event->motion.time);
|
||||
}
|
||||
|
||||
@@ -3234,6 +3233,7 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event
|
||||
RouteTimeAxisView* atv;
|
||||
bool regionview_y_movement;
|
||||
bool regionview_x_movement;
|
||||
vector<RegionView*> copies;
|
||||
|
||||
/* first_move is set to false if the regionview has been moved in the
|
||||
motion handler.
|
||||
@@ -3241,6 +3241,12 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event
|
||||
|
||||
if (drag_info.first_move) {
|
||||
/* just a click */
|
||||
|
||||
if (drag_info.copy) {
|
||||
for (list<RegionView*>::iterator i = selection->regions.begin(); i != selection->regions.end(); ++i) {
|
||||
copies.push_back (*i);
|
||||
}
|
||||
}
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -3254,6 +3260,13 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event
|
||||
|
||||
if (drag_info.brushing) {
|
||||
/* all changes were made during motion event handlers */
|
||||
|
||||
if (drag_info.copy) {
|
||||
for (list<RegionView*>::iterator i = selection->regions.begin(); i != selection->regions.end(); ++i) {
|
||||
copies.push_back (*i);
|
||||
}
|
||||
}
|
||||
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -3296,7 +3309,7 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event
|
||||
vector<RegionView*> new_selection;
|
||||
|
||||
for (list<RegionView*>::const_iterator i = selection->regions.by_layer().begin(); i != selection->regions.by_layer().end(); ) {
|
||||
|
||||
|
||||
RegionView* rv = (*i);
|
||||
|
||||
double ix1, ix2, iy1, iy2;
|
||||
@@ -3332,6 +3345,12 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event
|
||||
session->add_command (new MementoCommand<Playlist>(*from_playlist, &from_playlist->get_state(), 0));
|
||||
from_playlist->remove_region ((rv->region()));
|
||||
session->add_command (new MementoCommand<Playlist>(*from_playlist, 0, &from_playlist->get_state()));
|
||||
|
||||
} else {
|
||||
|
||||
/* the regionview we dragged around is a temporary copy, queue it for deletion */
|
||||
|
||||
copies.push_back (rv);
|
||||
}
|
||||
|
||||
latest_regionview = 0;
|
||||
@@ -3346,11 +3365,6 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event
|
||||
new_selection.push_back (latest_regionview);
|
||||
}
|
||||
|
||||
if (drag_info.copy) {
|
||||
// get rid of the copy
|
||||
delete rv;
|
||||
}
|
||||
|
||||
/* OK, this is where it gets tricky. If the playlist was being used by >1 tracks, and the region
|
||||
was selected in all of them, then removing it from the playlist will have removed all
|
||||
trace of it from the selection (i.e. there were N regions selected, we removed 1,
|
||||
@@ -3363,12 +3377,19 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event
|
||||
here. if the region selection is not empty, then restart the loop because we know that
|
||||
we must have removed at least the region(view) we've just been working on as well as any
|
||||
that we processed on previous iterations.
|
||||
|
||||
EXCEPT .... if we are doing a copy drag, then the selection hasn't been modified and
|
||||
we can just iterate.
|
||||
*/
|
||||
|
||||
if (selection->regions.empty()) {
|
||||
break;
|
||||
} else {
|
||||
i = selection->regions.by_layer().begin();
|
||||
if (drag_info.copy) {
|
||||
++i;
|
||||
} else {
|
||||
if (selection->regions.empty()) {
|
||||
break;
|
||||
} else {
|
||||
i = selection->regions.by_layer().begin();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3462,10 +3483,8 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event
|
||||
|
||||
session->add_command (new MementoCommand<Playlist>(*to_playlist, 0, &to_playlist->get_state()));
|
||||
|
||||
/* get rid of the copy */
|
||||
|
||||
if (drag_info.copy) {
|
||||
delete rv;
|
||||
copies.push_back (rv);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3475,6 +3494,10 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event
|
||||
if (!nocommit) {
|
||||
commit_reversible_command ();
|
||||
}
|
||||
|
||||
for (vector<RegionView*>::iterator x = copies.begin(); x != copies.end(); ++x) {
|
||||
delete *x;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
@@ -4521,7 +4544,7 @@ Editor::end_range_markerbar_op (ArdourCanvas::Item* item, GdkEvent* event)
|
||||
switch (mouse_mode) {
|
||||
case MouseObject:
|
||||
/* find the two markers on either side and then make the selection from it */
|
||||
select_all_within (start, end, 0.0f, FLT_MAX, Selection::Set);
|
||||
select_all_within (start, end, 0.0f, FLT_MAX, track_views, Selection::Set);
|
||||
break;
|
||||
|
||||
case MouseRange:
|
||||
@@ -4724,9 +4747,9 @@ Editor::end_rubberband_select (ArdourCanvas::Item* item, GdkEvent* event)
|
||||
begin_reversible_command (_("rubberband selection"));
|
||||
|
||||
if (drag_info.grab_frame < drag_info.last_pointer_frame) {
|
||||
commit = select_all_within (drag_info.grab_frame, drag_info.last_pointer_frame, y1, y2, op);
|
||||
commit = select_all_within (drag_info.grab_frame, drag_info.last_pointer_frame, y1, y2, track_views, op);
|
||||
} else {
|
||||
commit = select_all_within (drag_info.last_pointer_frame, drag_info.grab_frame, y1, y2, op);
|
||||
commit = select_all_within (drag_info.last_pointer_frame, drag_info.grab_frame, y1, y2, track_views, op);
|
||||
}
|
||||
|
||||
if (commit) {
|
||||
@@ -4761,7 +4784,7 @@ Editor::mouse_rename_region (ArdourCanvas::Item* item, GdkEvent* event)
|
||||
string str;
|
||||
prompter.get_result(str);
|
||||
if (str.length()) {
|
||||
clicked_regionview->region()->set_name (str);
|
||||
clicked_regionview->region()->set_name (str);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -3542,3 +3542,21 @@ Editor::set_fade_out_active (bool yn)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/** Update crossfade visibility after its configuration has been changed */
|
||||
void
|
||||
Editor::update_xfade_visibility ()
|
||||
{
|
||||
_xfade_visibility = Config->get_xfades_visible ();
|
||||
|
||||
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
|
||||
AudioTimeAxisView* v = dynamic_cast<AudioTimeAxisView*>(*i);
|
||||
if (v) {
|
||||
if (_xfade_visibility) {
|
||||
v->show_all_xfades ();
|
||||
} else {
|
||||
v->hide_all_xfades ();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -159,6 +159,7 @@ Editor::ruler_button_press (GdkEventButton* ev)
|
||||
/* transport playhead */
|
||||
snap_to (where);
|
||||
session->request_locate (where);
|
||||
_dragging_playhead = true;
|
||||
break;
|
||||
|
||||
case 2:
|
||||
@@ -192,7 +193,6 @@ Editor::ruler_button_release (GdkEventButton* ev)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
hide_verbose_canvas_cursor();
|
||||
stop_canvas_autoscroll();
|
||||
|
||||
nframes_t where = leftmost_frame + pixel_to_frame (x);
|
||||
@@ -200,6 +200,7 @@ Editor::ruler_button_release (GdkEventButton* ev)
|
||||
switch (ev->button) {
|
||||
case 1:
|
||||
/* transport playhead */
|
||||
_dragging_playhead = false;
|
||||
snap_to (where);
|
||||
session->request_locate (where);
|
||||
break;
|
||||
@@ -251,7 +252,7 @@ Editor::ruler_mouse_motion (GdkEventMotion* ev)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
double wcx=0,wcy=0;
|
||||
double wcx=0,wcy=0;
|
||||
double cx=0,cy=0;
|
||||
|
||||
gint x,y;
|
||||
@@ -260,12 +261,11 @@ Editor::ruler_mouse_motion (GdkEventMotion* ev)
|
||||
/* need to use the correct x,y, the event lies */
|
||||
time_canvas_event_box.get_window()->get_pointer (x, y, state);
|
||||
|
||||
time_canvas.c2w (x, y, wcx, wcy);
|
||||
time_canvas.w2c (wcx, wcy, cx, cy);
|
||||
|
||||
wcx = x;
|
||||
nframes_t where = event_frame ((GdkEvent*) ev, &wcx, (double *) 0);
|
||||
cx = wcx;
|
||||
track_canvas.c2w (x, y, wcx, wcy);
|
||||
track_canvas.w2c (wcx, wcy, cx, cy);
|
||||
|
||||
nframes_t where = leftmost_frame + pixel_to_frame (x);
|
||||
|
||||
/// ripped from maybe_autoscroll, and adapted to work here
|
||||
nframes_t one_page = (nframes_t) rint (canvas_width * frames_per_unit);
|
||||
@@ -312,9 +312,9 @@ Editor::ruler_mouse_motion (GdkEventMotion* ev)
|
||||
|
||||
if (cursor == edit_cursor) {
|
||||
edit_cursor_clock.set (where);
|
||||
} else if (cursor == playhead_cursor) {
|
||||
UpdateAllTransportClocks (cursor->current_frame);
|
||||
}
|
||||
|
||||
show_verbose_time_cursor (where, 10, cx, 0);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
|
||||
@@ -245,7 +245,7 @@ Editor::set_selected_control_point_from_click (Selection::Operation op, bool no_
|
||||
y1 = clicked_control_point->get_x() - 10;
|
||||
y2 = clicked_control_point->get_y() + 10;
|
||||
|
||||
return select_all_within (x1, x2, y1, y2, op);
|
||||
return select_all_within (x1, x2, y1, y2, selection->tracks, op);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -770,13 +770,13 @@ Editor::invert_selection ()
|
||||
}
|
||||
|
||||
bool
|
||||
Editor::select_all_within (nframes_t start, nframes_t end, double top, double bot, Selection::Operation op)
|
||||
Editor::select_all_within (nframes_t start, nframes_t end, double top, double bot, const TrackViewList& tracklist, Selection::Operation op)
|
||||
{
|
||||
list<Selectable*> touched;
|
||||
list<Selectable*>::size_type n = 0;
|
||||
TrackViewList touched_tracks;
|
||||
|
||||
for (TrackViewList::iterator iter = selection->tracks.begin(); iter != selection->tracks.end(); ++iter) {
|
||||
for (TrackViewList::const_iterator iter = tracklist.begin(); iter != tracklist.end(); ++iter) {
|
||||
if ((*iter)->hidden()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,26 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#include <pbd/enumwriter.h>
|
||||
|
||||
#include "audio_clock.h"
|
||||
#include "enums.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace PBD;
|
||||
@@ -14,6 +34,7 @@ setup_gtk_ardour_enums ()
|
||||
vector<string> s;
|
||||
|
||||
AudioClock::Mode clock_mode;
|
||||
Width width;
|
||||
|
||||
#define REGISTER(e) enum_writer.register_distinct (typeid(e).name(), i, s); i.clear(); s.clear()
|
||||
#define REGISTER_BITS(e) enum_writer.register_bits (typeid(e).name(), i, s); i.clear(); s.clear()
|
||||
@@ -26,4 +47,8 @@ setup_gtk_ardour_enums ()
|
||||
REGISTER_CLASS_ENUM (AudioClock, Frames);
|
||||
REGISTER_CLASS_ENUM (AudioClock, Off);
|
||||
REGISTER (clock_mode);
|
||||
|
||||
REGISTER_ENUM (Wide);
|
||||
REGISTER_ENUM (Narrow);
|
||||
REGISTER (width);
|
||||
}
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_enums_h__
|
||||
#define __ardour_gtk_enums_h__
|
||||
|
||||
|
||||
@@ -398,25 +398,25 @@ ExportDialog::connect_to_session (Session *s)
|
||||
|
||||
switch (session->frame_rate()) {
|
||||
case 22050:
|
||||
sample_rate_combo.set_active_text (N_("22.05kHz"));
|
||||
sample_rate_combo.set_active_text (_("22.05kHz"));
|
||||
break;
|
||||
case 44100:
|
||||
sample_rate_combo.set_active_text (N_("44.1kHz"));
|
||||
sample_rate_combo.set_active_text (_("44.1kHz"));
|
||||
break;
|
||||
case 48000:
|
||||
sample_rate_combo.set_active_text (N_("48kHz"));
|
||||
sample_rate_combo.set_active_text (_("48kHz"));
|
||||
break;
|
||||
case 88200:
|
||||
sample_rate_combo.set_active_text (N_("88.2kHz"));
|
||||
sample_rate_combo.set_active_text (_("88.2kHz"));
|
||||
break;
|
||||
case 96000:
|
||||
sample_rate_combo.set_active_text (N_("96kHz"));
|
||||
sample_rate_combo.set_active_text (_("96kHz"));
|
||||
break;
|
||||
case 192000:
|
||||
sample_rate_combo.set_active_text (N_("192kHz"));
|
||||
sample_rate_combo.set_active_text (_("192kHz"));
|
||||
break;
|
||||
default:
|
||||
sample_rate_combo.set_active_text (N_("44.1kHz"));
|
||||
sample_rate_combo.set_active_text (_("44.1kHz"));
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -874,7 +874,7 @@ ExportDialog::export_cue_file (Locations::LocationList& locations, const string&
|
||||
void
|
||||
ExportDialog::do_export_cd_markers (const string& path,const string& cuefile_type)
|
||||
{
|
||||
if (cuefile_type == "TOC") {
|
||||
if (cuefile_type == _("TOC")) {
|
||||
session->locations()->apply (*this, &ExportDialog::export_toc_file, path);
|
||||
} else {
|
||||
session->locations()->apply (*this, &ExportDialog::export_cue_file, path);
|
||||
@@ -1028,15 +1028,15 @@ ExportDialog::sample_rate_chosen ()
|
||||
|
||||
if (sr_str == N_("22.05kHz")) {
|
||||
rate = 22050;
|
||||
} else if (sr_str == N_("44.1kHz")) {
|
||||
} else if (sr_str == _("44.1kHz")) {
|
||||
rate = 44100;
|
||||
} else if (sr_str == N_("48kHz")) {
|
||||
} else if (sr_str == _("48kHz")) {
|
||||
rate = 48000;
|
||||
} else if (sr_str == N_("88.2kHz")) {
|
||||
} else if (sr_str == _("88.2kHz")) {
|
||||
rate = 88200;
|
||||
} else if (sr_str == N_("96kHz")) {
|
||||
} else if (sr_str == _("96kHz")) {
|
||||
rate = 96000;
|
||||
} else if (sr_str == N_("192kHz")) {
|
||||
} else if (sr_str == _("192kHz")) {
|
||||
rate = 192000;
|
||||
} else {
|
||||
rate = session->frame_rate();
|
||||
@@ -1196,15 +1196,15 @@ ExportDialog::initSpec(string &filepath)
|
||||
string sr_str = sample_rate_combo.get_active_text();
|
||||
if (sr_str == N_("22.05kHz")) {
|
||||
spec.sample_rate = 22050;
|
||||
} else if (sr_str == N_("44.1kHz")) {
|
||||
} else if (sr_str == _("44.1kHz")) {
|
||||
spec.sample_rate = 44100;
|
||||
} else if (sr_str == N_("48kHz")) {
|
||||
} else if (sr_str == _("48kHz")) {
|
||||
spec.sample_rate = 48000;
|
||||
} else if (sr_str == N_("88.2kHz")) {
|
||||
} else if (sr_str == _("88.2kHz")) {
|
||||
spec.sample_rate = 88200;
|
||||
} else if (sr_str == N_("96kHz")) {
|
||||
} else if (sr_str == _("96kHz")) {
|
||||
spec.sample_rate = 96000;
|
||||
} else if (sr_str == N_("192kHz")) {
|
||||
} else if (sr_str == _("192kHz")) {
|
||||
spec.sample_rate = 192000;
|
||||
} else {
|
||||
spec.sample_rate = session->frame_rate();
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_gain_automation_time_axis_h__
|
||||
#define __ardour_gtk_gain_automation_time_axis_h__
|
||||
|
||||
|
||||
@@ -450,8 +450,7 @@ GainMeter::setup_meters ()
|
||||
int
|
||||
GainMeter::get_gm_width ()
|
||||
{
|
||||
Gtk::Requisition sz;
|
||||
hbox.size_request (sz);
|
||||
Gtk::Requisition sz = hbox.size_request ();
|
||||
return sz.width;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#include "simplerect.h"
|
||||
#include "waveview.h"
|
||||
#include "ghostregion.h"
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_gui_thread_h__
|
||||
#define __ardour_gtk_gui_thread_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __i18n_h__
|
||||
#define __i18n_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
// -*- c++ -*-
|
||||
#ifndef _LIBGNOMECANVASMM_IMAGEFRAME_P_H
|
||||
#define _LIBGNOMECANVASMM_IMAGEFRAME_P_H
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#include <map>
|
||||
#include <vector>
|
||||
#include <string>
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_log_meter_h__
|
||||
#define __ardour_gtk_log_meter_h__
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
#include <sigc++/bind.h>
|
||||
|
||||
#include <pbd/convert.h>
|
||||
#include <pbd/enumwriter.h>
|
||||
|
||||
#include <gtkmm2ext/gtk_ui.h>
|
||||
#include <gtkmm2ext/utils.h>
|
||||
@@ -112,6 +113,7 @@ MixerStrip::MixerStrip (Mixer_UI& mx, Session& sess, boost::shared_ptr<Route> rt
|
||||
ignore_speed_adjustment = false;
|
||||
comment_window = 0;
|
||||
comment_area = 0;
|
||||
_width_owner = 0;
|
||||
|
||||
width_button.add (*(manage (new Gtk::Image (::get_icon("strip_width")))));
|
||||
hide_button.add (*(manage (new Gtk::Image (::get_icon("hide")))));
|
||||
@@ -175,7 +177,7 @@ MixerStrip::MixerStrip (Mixer_UI& mx, Session& sess, boost::shared_ptr<Route> rt
|
||||
bottom_button_table.set_col_spacings (0);
|
||||
bottom_button_table.set_homogeneous (true);
|
||||
bottom_button_table.attach (group_button, 0, 1, 0, 1);
|
||||
|
||||
|
||||
if (is_audio_track()) {
|
||||
|
||||
rec_enable_button->signal_button_press_event().connect (mem_fun(*this, &RouteUI::rec_enable_press), false);
|
||||
@@ -367,22 +369,13 @@ void
|
||||
MixerStrip::set_stuff_from_route ()
|
||||
{
|
||||
XMLProperty *prop;
|
||||
|
||||
|
||||
ensure_xml_node ();
|
||||
|
||||
/* if width is not set, it will be set by the MixerUI or editor */
|
||||
|
||||
if ((prop = xml_node->property ("strip_width")) != 0) {
|
||||
if (prop->value() == "wide") {
|
||||
set_width (Wide);
|
||||
} else if (prop->value() == "narrow") {
|
||||
set_width (Narrow);
|
||||
}
|
||||
else {
|
||||
error << string_compose(_("unknown strip width \"%1\" in XML GUI information"), prop->value()) << endmsg;
|
||||
set_width (Wide);
|
||||
}
|
||||
}
|
||||
else {
|
||||
set_width (Wide);
|
||||
set_width (Width (string_2_enum (prop->value(), _width)), this);
|
||||
}
|
||||
|
||||
if ((prop = xml_node->property ("shown_mixer")) != 0) {
|
||||
@@ -398,14 +391,17 @@ MixerStrip::set_stuff_from_route ()
|
||||
}
|
||||
|
||||
void
|
||||
MixerStrip::set_width (Width w)
|
||||
MixerStrip::set_width (Width w, void* owner)
|
||||
{
|
||||
/* always set the gpm width again, things may be hidden */
|
||||
|
||||
gpm.set_width (w);
|
||||
panners.set_width (w);
|
||||
pre_redirect_box.set_width (w);
|
||||
post_redirect_box.set_width (w);
|
||||
|
||||
|
||||
_width_owner = owner;
|
||||
|
||||
if (_width == w) {
|
||||
return;
|
||||
}
|
||||
@@ -413,11 +409,14 @@ MixerStrip::set_width (Width w)
|
||||
ensure_xml_node ();
|
||||
|
||||
_width = w;
|
||||
|
||||
|
||||
if (_width_owner == this) {
|
||||
xml_node->add_property ("strip_width", enum_2_string (_width));
|
||||
}
|
||||
|
||||
switch (w) {
|
||||
case Wide:
|
||||
set_size_request (-1, -1);
|
||||
xml_node->add_property ("strip_width", "wide");
|
||||
|
||||
if (rec_enable_button) {
|
||||
((Gtk::Label*)rec_enable_button->get_child())->set_text (_("record"));
|
||||
@@ -441,8 +440,6 @@ MixerStrip::set_width (Width w)
|
||||
break;
|
||||
|
||||
case Narrow:
|
||||
xml_node->add_property ("strip_width", "narrow");
|
||||
|
||||
if (rec_enable_button) {
|
||||
((Gtk::Label*)rec_enable_button->get_child())->set_text (_("Rec"));
|
||||
}
|
||||
@@ -563,7 +560,7 @@ MixerStrip::input_press (GdkEventButton *ev)
|
||||
msg.run ();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
switch (ev->button) {
|
||||
|
||||
case 1:
|
||||
@@ -692,7 +689,7 @@ void
|
||||
MixerStrip::connect_to_pan ()
|
||||
{
|
||||
ENSURE_GUI_THREAD(mem_fun(*this, &MixerStrip::connect_to_pan));
|
||||
|
||||
|
||||
panstate_connection.disconnect ();
|
||||
panstyle_connection.disconnect ();
|
||||
|
||||
@@ -773,7 +770,8 @@ MixerStrip::output_changed (IOChange change, void *src)
|
||||
|
||||
|
||||
void
|
||||
MixerStrip::comment_editor_done_editing() {
|
||||
MixerStrip::comment_editor_done_editing()
|
||||
{
|
||||
string str = comment_area->get_buffer()->get_text();
|
||||
if (_route->comment() != str) {
|
||||
_route->set_comment (str, this);
|
||||
@@ -973,12 +971,11 @@ void
|
||||
MixerStrip::build_route_ops_menu ()
|
||||
{
|
||||
using namespace Menu_Helpers;
|
||||
|
||||
route_ops_menu = manage (new Menu);
|
||||
route_ops_menu->set_name ("ArdourContextMenu");
|
||||
|
||||
MenuList& items = route_ops_menu->items();
|
||||
|
||||
|
||||
items.push_back (MenuElem (_("Rename"), mem_fun(*this, &RouteUI::route_rename)));
|
||||
items.push_back (SeparatorElem());
|
||||
items.push_back (CheckMenuElem (_("Active"), mem_fun (*this, &RouteUI::toggle_route_active)));
|
||||
@@ -1003,6 +1000,11 @@ MixerStrip::name_button_button_press (GdkEventButton* ev)
|
||||
{
|
||||
if (ev->button == 1) {
|
||||
list_route_operations ();
|
||||
|
||||
Menu_Helpers::MenuList& items = route_ops_menu->items();
|
||||
/* do not allow rename if the track is record-enabled */
|
||||
static_cast<MenuItem*> (&items.front())->set_sensitive (!_route->record_enabled());
|
||||
|
||||
route_ops_menu->popup (1, ev->time);
|
||||
}
|
||||
return FALSE;
|
||||
@@ -1090,10 +1092,10 @@ MixerStrip::width_clicked ()
|
||||
{
|
||||
switch (_width) {
|
||||
case Wide:
|
||||
set_width (Narrow);
|
||||
set_width (Narrow, this);
|
||||
break;
|
||||
case Narrow:
|
||||
set_width (Wide);
|
||||
set_width (Wide, this);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -85,12 +85,13 @@ class MixerStrip : public RouteUI, public Gtk::EventBox
|
||||
MixerStrip (Mixer_UI&, ARDOUR::Session&, boost::shared_ptr<ARDOUR::Route>, bool in_mixer = true);
|
||||
~MixerStrip ();
|
||||
|
||||
void set_width (Width);
|
||||
void set_width (Width, void* owner);
|
||||
Width get_width() const { return _width; }
|
||||
void* width_owner() const { return _width_owner; }
|
||||
|
||||
void fast_update ();
|
||||
void set_embedded (bool);
|
||||
|
||||
|
||||
ARDOUR::RouteGroup* mix_group() const;
|
||||
|
||||
protected:
|
||||
@@ -107,6 +108,7 @@ class MixerStrip : public RouteUI, public Gtk::EventBox
|
||||
bool _embedded;
|
||||
bool _packed;
|
||||
Width _width;
|
||||
void* _width_owner;
|
||||
|
||||
Gtk::Button hide_button;
|
||||
Gtk::Button width_button;
|
||||
|
||||
@@ -244,7 +244,7 @@ Mixer_UI::show_window ()
|
||||
|
||||
for (ri = rows.begin(); ri != rows.end(); ++ri) {
|
||||
ms = (*ri)[track_columns.strip];
|
||||
ms->set_width (ms->get_width());
|
||||
ms->set_width (ms->get_width(), ms->width_owner());
|
||||
}
|
||||
_visible = true;
|
||||
}
|
||||
@@ -274,7 +274,10 @@ Mixer_UI::add_strip (Session::RouteList& routes)
|
||||
strip = new MixerStrip (*this, *session, route);
|
||||
strips.push_back (strip);
|
||||
|
||||
strip->set_width (_strip_width);
|
||||
if (strip->width_owner() != strip) {
|
||||
strip->set_width (_strip_width, this);
|
||||
}
|
||||
|
||||
show_strip (strip);
|
||||
|
||||
no_track_list_redisplay = true;
|
||||
@@ -1040,7 +1043,7 @@ Mixer_UI::set_strip_width (Width w)
|
||||
_strip_width = w;
|
||||
|
||||
for (list<MixerStrip*>::iterator i = strips.begin(); i != strips.end(); ++i) {
|
||||
(*i)->set_width (w);
|
||||
(*i)->set_width (w, this);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#include <vector>
|
||||
#include <iostream>
|
||||
#include <gtkmm.h>
|
||||
|
||||
@@ -575,7 +575,12 @@ int
|
||||
NewSessionDialog::get_current_page()
|
||||
{
|
||||
return m_notebook->get_current_page();
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
NewSessionDialog::set_current_page(int page)
|
||||
{
|
||||
return m_notebook->set_current_page (page);
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -82,6 +82,7 @@ public:
|
||||
bool connect_outs_to_master() const;
|
||||
bool connect_outs_to_physical() const ;
|
||||
int get_current_page();
|
||||
void set_current_page (int);
|
||||
void reset_recent();
|
||||
|
||||
// reset everything to default values.
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_pan_automation_time_axis_h__
|
||||
#define __ardour_gtk_pan_automation_time_axis_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include "panner.h"
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __gtk_ardour_panner_h__
|
||||
#define __gtk_ardour_panner_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_playlist_selection_h__
|
||||
#define __ardour_gtk_playlist_selection_h__
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -11,7 +11,7 @@ msgstr ""
|
||||
"Project-Id-Version: Ardour 2.0rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2007-04-08 11:00+0200\n"
|
||||
"PO-Revision-Date: 2007-04-09 13:24+0200\n"
|
||||
"PO-Revision-Date: 2007-04-09 16:14+0200\n"
|
||||
"Last-Translator: Christophe Combelles <ccomb@free.fr>\n"
|
||||
"Language-Team: French\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -1334,6 +1334,10 @@ msgstr "Réception MMC (Midi Machine Control)"
|
||||
msgid "Send MIDI feedback"
|
||||
msgstr "Envoi des réponses MIDI"
|
||||
|
||||
#: gtk2_ardour/ardour_ui_ed.cc:397
|
||||
msgid "Use MIDI control"
|
||||
msgstr "Réception des contrôles MIDI"
|
||||
|
||||
#: gtk2_ardour/ardour_ui_ed.cc:400
|
||||
msgid "Use OSC"
|
||||
msgstr "Utiliser OSC (OpenSound Control)"
|
||||
@@ -4275,41 +4279,41 @@ msgstr ""
|
||||
#: gtk2_ardour/export_dialog.cc:59 gtk2_ardour/export_dialog.cc:401
|
||||
#: gtk2_ardour/export_dialog.cc:1029 gtk2_ardour/export_dialog.cc:1197
|
||||
msgid "22.05kHz"
|
||||
msgstr "22,05 kHz"
|
||||
msgstr "22.05kHz"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:60 gtk2_ardour/export_dialog.cc:404
|
||||
#: gtk2_ardour/export_dialog.cc:419 gtk2_ardour/export_dialog.cc:1031
|
||||
#: gtk2_ardour/export_dialog.cc:1199
|
||||
msgid "44.1kHz"
|
||||
msgstr "44,1 kHz"
|
||||
msgstr "44.1kHz"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:61 gtk2_ardour/export_dialog.cc:407
|
||||
#: gtk2_ardour/export_dialog.cc:1033 gtk2_ardour/export_dialog.cc:1201
|
||||
msgid "48kHz"
|
||||
msgstr "48 kHz"
|
||||
msgstr "48kHz"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:62 gtk2_ardour/export_dialog.cc:410
|
||||
#: gtk2_ardour/export_dialog.cc:1035 gtk2_ardour/export_dialog.cc:1203
|
||||
msgid "88.2kHz"
|
||||
msgstr "88,2 kHz"
|
||||
msgstr "88.2kHz"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:63 gtk2_ardour/export_dialog.cc:413
|
||||
#: gtk2_ardour/export_dialog.cc:1037 gtk2_ardour/export_dialog.cc:1205
|
||||
msgid "96kHz"
|
||||
msgstr "96 kHz"
|
||||
msgstr "96kHz"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:64 gtk2_ardour/export_dialog.cc:416
|
||||
#: gtk2_ardour/export_dialog.cc:1039 gtk2_ardour/export_dialog.cc:1207
|
||||
msgid "192kHz"
|
||||
msgstr "192 kHz"
|
||||
msgstr "192kHz"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:69
|
||||
msgid "best"
|
||||
msgstr "meilleur"
|
||||
msgstr "la meilleure"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:70 gtk2_ardour/export_dialog.cc:1214
|
||||
msgid "fastest"
|
||||
msgstr "rapide"
|
||||
msgstr "la plus rapide"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:71 gtk2_ardour/export_dialog.cc:1216
|
||||
msgid "linear"
|
||||
@@ -4317,11 +4321,11 @@ msgstr "linéaire"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:72 gtk2_ardour/export_dialog.cc:1218
|
||||
msgid "better"
|
||||
msgstr "mieux"
|
||||
msgstr "bonne"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:73 gtk2_ardour/export_dialog.cc:1220
|
||||
msgid "intermediate"
|
||||
msgstr "intermédiaire"
|
||||
msgstr "moyenne"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:79 gtk2_ardour/export_dialog.cc:1229
|
||||
msgid "Rectangular"
|
||||
@@ -4342,11 +4346,11 @@ msgstr "mono"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:93
|
||||
msgid "CUE"
|
||||
msgstr "fichier CUE"
|
||||
msgstr "CUE"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:94
|
||||
msgid "TOC"
|
||||
msgstr "fichier TOC"
|
||||
msgstr "TOC"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:102
|
||||
msgid "Format"
|
||||
@@ -4354,39 +4358,39 @@ msgstr "format"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:103
|
||||
msgid "CD Marker File Type"
|
||||
msgstr "type de fichier de marqueur de CD"
|
||||
msgstr "descripteur de CD"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:104
|
||||
msgid "Channels"
|
||||
msgstr "voies"
|
||||
msgstr "nb de voies"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:105
|
||||
msgid "File Type"
|
||||
msgstr "type de fichier"
|
||||
msgstr "fichier"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:106
|
||||
msgid "Sample Format"
|
||||
msgstr "format d'échantillon"
|
||||
msgstr "échantillon"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:107
|
||||
msgid "Sample Endianness"
|
||||
msgstr "ordre des bits des échantillons"
|
||||
msgstr "ordre des bits"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:108
|
||||
msgid "Sample Rate"
|
||||
msgstr "taux d'échantillonnage"
|
||||
msgstr "échantillonnage"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:109
|
||||
msgid "Conversion Quality"
|
||||
msgstr "qualité de conversion"
|
||||
msgstr "conversion"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:110
|
||||
msgid "Dither Type"
|
||||
msgstr "type d'interpolation"
|
||||
msgstr "interpolation"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:111
|
||||
msgid "Export CD Marker File Only"
|
||||
msgstr "exporter simplement un fichier de marqueurs de CD"
|
||||
msgstr "n'exporter qu'un fichier descripteur de CD"
|
||||
|
||||
#: gtk2_ardour/export_dialog.cc:112 gtk2_ardour/option_editor.cc:84
|
||||
#: gtk2_ardour/option_editor.cc:85
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1350,6 +1350,10 @@ msgstr "Stoppa insticksprogram vid stopp"
|
||||
msgid "Verify remove last capture"
|
||||
msgstr "Bekräfta borttagning av senaste inspelade ljudet"
|
||||
|
||||
#: gtk2_ardour/ardour_ui_ed.cc:405
|
||||
msgid "Make periodic safety backups"
|
||||
msgstr "Gör periodiska säkerhetskopior"
|
||||
|
||||
#: ../ardour_ui_ed.cc:411
|
||||
msgid "Stop recording on xrun"
|
||||
msgstr "Stanna inspelning vid xrun-förekomst"
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_point_selection_h__
|
||||
#define __ardour_gtk_point_selection_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#include "public_editor.h"
|
||||
#include "editor.h"
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __gtk_ardour_public_editor_h__
|
||||
#define __gtk_ardour_public_editor_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_redirect_automation_time_axis_h__
|
||||
#define __ardour_gtk_redirect_automation_time_axis_h__
|
||||
|
||||
|
||||
@@ -760,15 +760,19 @@ RedirectBox::cut_redirects ()
|
||||
|
||||
no_redirect_redisplay = true;
|
||||
for (vector<boost::shared_ptr<Redirect> >::iterator i = to_be_removed.begin(); i != to_be_removed.end(); ++i) {
|
||||
// Do not cut inserts or sends
|
||||
if (boost::dynamic_pointer_cast<PluginInsert>((*i)) != 0) {
|
||||
void* gui = (*i)->get_gui ();
|
||||
|
||||
void* gui = (*i)->get_gui ();
|
||||
if (gui) {
|
||||
static_cast<Gtk::Widget*>(gui)->hide ();
|
||||
}
|
||||
|
||||
if (gui) {
|
||||
static_cast<Gtk::Widget*>(gui)->hide ();
|
||||
}
|
||||
|
||||
if (_route->remove_redirect (*i, this)) {
|
||||
/* removal failed */
|
||||
if (_route->remove_redirect (*i, this)) {
|
||||
/* removal failed */
|
||||
_rr_selection.remove (*i);
|
||||
}
|
||||
} else {
|
||||
_rr_selection.remove (*i);
|
||||
}
|
||||
|
||||
@@ -790,10 +794,40 @@ RedirectBox::copy_redirects ()
|
||||
}
|
||||
|
||||
for (vector<boost::shared_ptr<Redirect> >::iterator i = to_be_copied.begin(); i != to_be_copied.end(); ++i) {
|
||||
copies.push_back (Redirect::clone (*i));
|
||||
// Do not copy inserts or sends
|
||||
if (boost::dynamic_pointer_cast<PluginInsert>((*i)) != 0) {
|
||||
copies.push_back (Redirect::clone (*i));
|
||||
}
|
||||
}
|
||||
|
||||
_rr_selection.set (copies);
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
RedirectBox::delete_redirects ()
|
||||
{
|
||||
vector<boost::shared_ptr<Redirect> > to_be_deleted;
|
||||
|
||||
get_selected_redirects (to_be_deleted);
|
||||
|
||||
if (to_be_deleted.empty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (vector<boost::shared_ptr<Redirect> >::iterator i = to_be_deleted.begin(); i != to_be_deleted.end(); ++i) {
|
||||
|
||||
void* gui = (*i)->get_gui ();
|
||||
|
||||
if (gui) {
|
||||
static_cast<Gtk::Widget*>(gui)->hide ();
|
||||
}
|
||||
|
||||
_route->remove_redirect( *i, this);
|
||||
}
|
||||
|
||||
no_redirect_redisplay = false;
|
||||
redisplay_redirects (this);
|
||||
}
|
||||
|
||||
gint
|
||||
@@ -1161,6 +1195,10 @@ RedirectBox::register_actions ()
|
||||
ActionManager::plugin_selection_sensitive_actions.push_back(act);
|
||||
act = ActionManager::register_action (popup_act_grp, X_("copy"), _("Copy"), sigc::ptr_fun (RedirectBox::rb_copy));
|
||||
ActionManager::plugin_selection_sensitive_actions.push_back(act);
|
||||
|
||||
act = ActionManager::register_action (popup_act_grp, X_("delete"), _("Delete"), sigc::ptr_fun (RedirectBox::rb_delete));
|
||||
ActionManager::plugin_selection_sensitive_actions.push_back(act); // ??
|
||||
|
||||
paste_action = ActionManager::register_action (popup_act_grp, X_("paste"), _("Paste"), sigc::ptr_fun (RedirectBox::rb_paste));
|
||||
act = ActionManager::register_action (popup_act_grp, X_("rename"), _("Rename"), sigc::ptr_fun (RedirectBox::rb_rename));
|
||||
ActionManager::plugin_selection_sensitive_actions.push_back(act);
|
||||
@@ -1231,6 +1269,16 @@ RedirectBox::rb_cut ()
|
||||
_current_redirect_box->cut_redirects ();
|
||||
}
|
||||
|
||||
void
|
||||
RedirectBox::rb_delete ()
|
||||
{
|
||||
if (_current_redirect_box == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
_current_redirect_box->delete_redirects ();
|
||||
}
|
||||
|
||||
void
|
||||
RedirectBox::rb_copy ()
|
||||
{
|
||||
|
||||
@@ -174,6 +174,7 @@ class RedirectBox : public Gtk::HBox
|
||||
void cut_redirects ();
|
||||
void copy_redirects ();
|
||||
void paste_redirects ();
|
||||
void delete_redirects ();
|
||||
void clear_redirects ();
|
||||
void clone_redirects ();
|
||||
void rename_redirects ();
|
||||
@@ -207,6 +208,7 @@ class RedirectBox : public Gtk::HBox
|
||||
static void rb_cut ();
|
||||
static void rb_copy ();
|
||||
static void rb_paste ();
|
||||
static void rb_delete ();
|
||||
static void rb_rename ();
|
||||
static void rb_select_all ();
|
||||
static void rb_deselect_all ();
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_redirect_selection_h__
|
||||
#define __ardour_gtk_redirect_selection_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#include <ardour/curve.h>
|
||||
#include <ardour/audioregion.h>
|
||||
#include <pbd/memento_command.h>
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_region_gain_line_h__
|
||||
#define __ardour_gtk_region_gain_line_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_route_selection_h__
|
||||
#define __ardour_gtk_route_selection_h__
|
||||
|
||||
|
||||
@@ -1772,3 +1772,10 @@ RouteTimeAxisView::reset_redirect_automation_curves ()
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
RouteTimeAxisView::update_rec_display ()
|
||||
{
|
||||
RouteUI::update_rec_display ();
|
||||
name_entry.set_sensitive (!_route->record_enabled());
|
||||
}
|
||||
|
||||
|
||||
@@ -159,6 +159,8 @@ protected:
|
||||
void route_name_changed (void *);
|
||||
void name_entry_changed ();
|
||||
|
||||
void update_rec_display ();
|
||||
|
||||
virtual void label_view ();
|
||||
|
||||
void add_edit_group_menu_item (ARDOUR::RouteGroup *, Gtk::RadioMenuItem::Group*);
|
||||
|
||||
@@ -145,7 +145,7 @@ class RouteUI : public virtual AxisView
|
||||
void disconnect_input ();
|
||||
void disconnect_output ();
|
||||
|
||||
void update_rec_display ();
|
||||
virtual void update_rec_display ();
|
||||
void update_mute_display ();
|
||||
|
||||
bool was_solo_safe;
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
// -*- c++ -*-
|
||||
#ifndef _LIBGNOMECANVASMM_SIMPLELINE_P_H
|
||||
#define _LIBGNOMECANVASMM_SIMPLELINE_P_H
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
// -*- c++ -*-
|
||||
#ifndef _LIBGNOMECANVASMM_SIMPLERECT_P_H
|
||||
#define _LIBGNOMECANVASMM_SIMPLERECT_P_H
|
||||
|
||||
@@ -111,16 +111,16 @@ StreamView::set_height (gdouble h)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (canvas_rect->property_y2() == h) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
canvas_rect->property_y2() = h;
|
||||
|
||||
for (RegionViewList::iterator i = region_views.begin(); i != region_views.end(); ++i) {
|
||||
(*i)->set_height (h);
|
||||
}
|
||||
|
||||
/*for (CrossfadeViewList::iterator i = crossfade_views.begin(); i != crossfade_views.end(); ++i) {
|
||||
(*i)->set_height (h);
|
||||
}*/
|
||||
|
||||
for (vector<RecBoxInfo>::iterator i = rec_rects.begin(); i != rec_rects.end(); ++i) {
|
||||
RecBoxInfo &recbox = (*i);
|
||||
recbox.rectangle->property_y2() = h - 1.0;
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_strip_selection_h__
|
||||
#define __ardour_gtk_strip_selection_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#include <cstdio> // for snprintf, grrr
|
||||
|
||||
#include <gtkmm/stock.h>
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_tempo_dialog_h__
|
||||
#define __ardour_gtk_tempo_dialog_h__
|
||||
|
||||
|
||||
@@ -221,6 +221,9 @@ TimeAxisView::show_at (double y, int& nth, VBox *parent)
|
||||
order = nth;
|
||||
_hidden = false;
|
||||
|
||||
/* height in pixels depends on _order, so update it now we've changed _order */
|
||||
set_height (height_style);
|
||||
|
||||
effective_height = height;
|
||||
|
||||
/* now show children */
|
||||
@@ -975,8 +978,7 @@ TimeAxisView::compute_controls_size_info ()
|
||||
one_row_table.attach (*buttons[0], 6, 7, 0, 1, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND, 0, 0);
|
||||
|
||||
one_row_table.show_all ();
|
||||
Gtk::Requisition req(one_row_table.size_request ());
|
||||
|
||||
Gtk::Requisition req (one_row_table.size_request ());
|
||||
|
||||
// height required to show 1 row of buttons
|
||||
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
*/
|
||||
|
||||
#include <pbd/error.h>
|
||||
#include <pbd/stacktrace.h>
|
||||
|
||||
#include <ardour/types.h>
|
||||
#include <ardour/ardour.h>
|
||||
@@ -571,7 +572,7 @@ TimeAxisViewItem::set_name_text(const ustring& new_name)
|
||||
* @param h the new height
|
||||
*/
|
||||
void
|
||||
TimeAxisViewItem::set_height(double height)
|
||||
TimeAxisViewItem::set_height (double height)
|
||||
{
|
||||
if (name_highlight) {
|
||||
if (height < NAME_HIGHLIGHT_THRESH) {
|
||||
@@ -975,8 +976,7 @@ TimeAxisViewItem::reset_name_width (double pixel_width)
|
||||
}
|
||||
|
||||
if (n == 0) {
|
||||
/* nothing will fit */
|
||||
name_text->hide ();
|
||||
name_text->property_text() = "";
|
||||
last_name_text_width = pixel_width;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_time_selection_h__
|
||||
#define __ardour_gtk_time_selection_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
#ifndef __ardour_gtk_track_selection_h__
|
||||
#define __ardour_gtk_track_selection_h__
|
||||
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
Copyright (C) 2000-2007 Paul Davis
|
||||
|
||||
This program 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., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
// -*- c++ -*-
|
||||
#ifndef _LIBGNOMECANVASMM_WAVEVIEW_P_H
|
||||
#define _LIBGNOMECANVASMM_WAVEVIEW_P_H
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user