13
0

Merged changes from trunk 1699:1751 into 2.1-staging

git-svn-id: svn://localhost/ardour2/branches/2.1-staging@1752 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2007-04-26 20:54:31 +00:00
parent 45d3ec1437
commit 87726495c3
182 changed files with 5678 additions and 3275 deletions

View File

@ -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')
#######################
@ -1084,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%'] = ''
@ -1100,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
@ -1109,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',

View File

@ -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>

View File

@ -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>

View File

@ -336,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'

View File

@ -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
};

View File

@ -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)
{

View File

@ -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__

View File

@ -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__

View File

@ -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/>

View File

@ -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"

View File

@ -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 ()
{
@ -1730,6 +1763,7 @@ 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 ();

View File

@ -291,6 +291,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 +673,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();

View File

@ -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);

View File

@ -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));

View File

@ -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);

View File

@ -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 */

View File

@ -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);

View File

@ -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__

View File

@ -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__

View File

@ -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__

View File

@ -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__

View File

@ -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>

View File

@ -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__

View File

@ -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__

View File

@ -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__

View File

@ -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__

View File

@ -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>

View File

@ -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__

View File

@ -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)

View File

@ -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__

View File

@ -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_

View File

@ -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>

View File

@ -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_

View File

@ -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"

View File

@ -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__

View File

@ -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)

View File

@ -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
@ -2104,16 +2104,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()));
@ -3776,7 +3776,7 @@ Editor::idle_visual_changer ()
}
}
return 0;
return 0; /* this is always a one-shot call */
}
struct EditorOrderTimeAxisSorter {

View File

@ -305,6 +305,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 +1436,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;

View File

@ -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")) {

View File

@ -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>

View File

@ -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__

View File

@ -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__

View File

@ -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);
}
}

View File

@ -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;
}

View File

@ -461,9 +461,10 @@ void
Editor::build_region_boundary_cache ()
{
nframes_t pos = 0;
RegionPoint point;
vector<RegionPoint> interesting_points;
boost::shared_ptr<Region> r;
TrackViewList tracks;
bool at_end = false;
region_boundary_cache.clear ();
@ -473,16 +474,17 @@ Editor::build_region_boundary_cache ()
switch (snap_type) {
case SnapToRegionStart:
point = Start;
interesting_points.push_back (Start);
break;
case SnapToRegionEnd:
point = End;
interesting_points.push_back (End);
break;
case SnapToRegionSync:
point = SyncPoint;
interesting_points.push_back (SyncPoint);
break;
case SnapToRegionBoundary:
point = Start;
interesting_points.push_back (Start);
interesting_points.push_back (End);
break;
default:
fatal << string_compose (_("build_region_boundary_cache called with snap_type = %1"), snap_type) << endmsg;
@ -491,62 +493,80 @@ Editor::build_region_boundary_cache ()
}
TimeAxisView *ontrack = 0;
TrackViewList tlist;
while (pos < session->current_end_frame()) {
if (!selection->tracks.empty()) {
tlist = selection->tracks;
} else {
tlist = track_views;
}
if (!selection->tracks.empty()) {
if ((r = find_next_region (pos, point, 1, selection->tracks, &ontrack)) == 0) {
break;
}
} else {
if ((r = find_next_region (pos, point, 1, track_views, &ontrack)) == 0) {
break;
}
}
while (pos < session->current_end_frame() && !at_end) {
nframes_t rpos;
switch (snap_type) {
case SnapToRegionStart:
rpos = r->first_frame();
break;
case SnapToRegionEnd:
rpos = r->last_frame();
break;
case SnapToRegionSync:
rpos = r->adjust_to_sync (r->first_frame());
break;
nframes_t lpos = max_frames;
case SnapToRegionBoundary:
rpos = r->last_frame();
break;
default:
break;
}
float speed = 1.0f;
AudioTimeAxisView *atav;
for (vector<RegionPoint>::iterator p = interesting_points.begin(); p != interesting_points.end(); ++p) {
if ( ontrack != 0 && (atav = dynamic_cast<AudioTimeAxisView*>(ontrack)) != 0 ) {
if (atav->get_diskstream() != 0) {
speed = atav->get_diskstream()->speed();
if ((r = find_next_region (pos, *p, 1, tlist, &ontrack)) == 0) {
at_end = true;
/* move to next point type */
continue;
}
switch (*p) {
case Start:
rpos = r->first_frame();
break;
case End:
rpos = r->last_frame();
break;
case SyncPoint:
rpos = r->adjust_to_sync (r->first_frame());
break;
default:
break;
}
float speed = 1.0f;
AudioTimeAxisView *atav;
if (ontrack != 0 && (atav = dynamic_cast<AudioTimeAxisView*>(ontrack)) != 0 ) {
if (atav->get_diskstream() != 0) {
speed = atav->get_diskstream()->speed();
}
}
rpos = track_frame_to_session_frame (rpos, speed);
if (rpos < lpos) {
lpos = rpos;
}
/* prevent duplicates, but we don't use set<> because we want to be able
to sort later.
*/
vector<nframes_t>::iterator ri;
for (ri = region_boundary_cache.begin(); ri != region_boundary_cache.end(); ++ri) {
if (*ri == rpos) {
break;
}
}
if (ri == region_boundary_cache.end()) {
region_boundary_cache.push_back (rpos);
}
}
rpos = track_frame_to_session_frame(rpos, speed);
if (region_boundary_cache.empty() || rpos != region_boundary_cache.back()) {
if (snap_type == SnapToRegionBoundary) {
region_boundary_cache.push_back (r->first_frame());
}
region_boundary_cache.push_back (rpos);
}
pos = rpos + 1;
pos = lpos + 1;
}
/* finally sort to be sure that the order is correct */
sort (region_boundary_cache.begin(), region_boundary_cache.end());
}
boost::shared_ptr<Region>
@ -3522,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 ();
}
}
}
}

View File

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

View File

@ -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;
}

View File

@ -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 <pbd/enumwriter.h>
#include "audio_clock.h"

View File

@ -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__

View File

@ -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();

View File

@ -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__

View File

@ -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"

View File

@ -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__

View File

@ -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__

View File

@ -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

View File

@ -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>

View File

@ -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__

View File

@ -175,7 +175,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,7 +367,7 @@ void
MixerStrip::set_stuff_from_route ()
{
XMLProperty *prop;
ensure_xml_node ();
if ((prop = xml_node->property ("strip_width")) != 0) {
@ -563,7 +563,7 @@ MixerStrip::input_press (GdkEventButton *ev)
msg.run ();
return true;
}
switch (ev->button) {
case 1:
@ -692,7 +692,7 @@ void
MixerStrip::connect_to_pan ()
{
ENSURE_GUI_THREAD(mem_fun(*this, &MixerStrip::connect_to_pan));
panstate_connection.disconnect ();
panstyle_connection.disconnect ();
@ -773,7 +773,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 +974,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 +1003,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;

View File

@ -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>

View File

@ -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

View File

@ -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.

View File

@ -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__

View File

@ -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"

View File

@ -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__

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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__

View File

@ -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"

View File

@ -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__

View File

@ -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__

View File

@ -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 ()
{

View File

@ -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 ();

View File

@ -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__

View File

@ -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>

View File

@ -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__

View File

@ -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__

View File

@ -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());
}

View File

@ -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*);

View File

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

View File

@ -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

View File

@ -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

View File

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

View File

@ -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__

View File

@ -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>

View File

@ -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__

View File

@ -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 */

View File

@ -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;
}

View File

@ -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__

View File

@ -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__

View File

@ -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

View File

@ -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_configuration_variable_h__
#define __ardour_configuration_variable_h__

View File

@ -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.
*/
/* IO connection */
CONFIG_VARIABLE (AutoConnectOption, output_auto_connect, "output-auto-connect", AutoConnectOption (0))
@ -118,6 +137,8 @@ CONFIG_VARIABLE (bool, use_vst, "use-vst", true)
CONFIG_VARIABLE (uint32_t, subframes_per_frame, "subframes-per-frame", 100)
CONFIG_VARIABLE (uint32_t, saved_history_depth, "save-history-depth", 100)
CONFIG_VARIABLE (bool, use_overlap_equivalency, "use-overlap-equivalency", false)
CONFIG_VARIABLE (bool, periodic_safety_backups, "periodic-safety-backups", true)
CONFIG_VARIABLE (uint32_t, periodic_safety_backup_interval, "periodic-safety-backup-interval", 120)
/* BWAV */

View File

@ -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_control_protocol_manager_h
#define ardour_control_protocol_manager_h

View File

@ -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_export_h__
#define __ardour_export_h__

View File

@ -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 NOISE_H
#define NOISE_H

View File

@ -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_peak_h__
#define __ardour_peak_h__

View File

@ -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_playlist_factory_h__
#define __ardour_playlist_factory_h__

Some files were not shown because too many files have changed in this diff Show More