Merged with trunk R992.

Completely untested other than it compiles, runs, and records somewhat (need to merge again).


git-svn-id: svn://localhost/ardour2/branches/midi@999 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
David Robillard 2006-10-21 19:01:50 +00:00
parent 7bd41538d9
commit fedf3d34f3
297 changed files with 6156 additions and 5481 deletions

View File

@ -15,7 +15,7 @@ import SCons.Node.FS
SConsignFile()
EnsureSConsVersion(0, 96)
version = '2.0beta2'
version = '2.0beta5.1'
subst_dict = { }
@ -25,7 +25,7 @@ subst_dict = { }
opts = Options('scache.conf')
opts.AddOptions(
('ARCH', 'Set architecture-specific compilation flags by hand (all flags as 1 argument)',''),
('ARCH', 'Set architecture-specific compilation flags by hand (all flags as 1 argument)',''),
BoolOption('AUDIOUNITS', 'Compile with Apple\'s AudioUnit library. (experimental)', 0),
BoolOption('COREAUDIO', 'Compile with Apple\'s CoreAudio library', 0),
BoolOption('DEBUG', 'Set to build with debugging information and no optimizations', 0),
@ -365,8 +365,8 @@ if env['VST']:
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. VST support disabled.'
env['VST'] = 0;
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:
print "OK, VST support will be enabled"
@ -572,15 +572,18 @@ if env['SYSLIBS']:
'libs/libsndfile',
'libs/pbd',
'libs/midi++2',
'libs/ardour'
'libs/ardour',
# these are unconditionally included but have
# tests internally to avoid compilation etc
# if VST is not set
'libs/fst',
'vst',
# this is unconditionally included but has
# tests internally to avoid compilation etc
# if COREAUDIO is not set
'libs/appleutility'
]
if env['VST']:
subdirs = ['libs/fst'] + subdirs + ['vst']
if env['COREAUDIO']:
subdirs = subdirs + ['libs/appleutility']
gtk_subdirs = [
# 'libs/flowcanvas',
'libs/gtkmm2ext',
@ -633,15 +636,18 @@ else:
'libs/libsndfile',
'libs/pbd',
'libs/midi++2',
'libs/ardour'
'libs/ardour',
# these are unconditionally included but have
# tests internally to avoid compilation etc
# if VST is not set
'libs/fst',
'vst',
# this is unconditionally included but has
# tests internally to avoid compilation etc
# if COREAUDIO is not set
'libs/appleutility'
]
if env['VST']:
subdirs = ['libs/fst'] + subdirs + ['vst']
if env['COREAUDIO']:
subdirs = subdirs + ['libs/appleutility']
gtk_subdirs = [
'libs/glibmm2',
'libs/gtkmm2/pango',
@ -687,9 +693,15 @@ if os.environ.has_key('DISTCC_HOSTS'):
env['ENV']['HOME'] = os.environ['HOME']
final_prefix = '$PREFIX'
install_prefix = '$DESTDIR/$PREFIX'
subst_dict['INSTALL_PREFIX'] = install_prefix;
if env['DESTDIR'] :
install_prefix = '$DESTDIR/$PREFIX'
else:
install_prefix = env['PREFIX']
subst_dict['%INSTALL_PREFIX%'] = install_prefix;
subst_dict['%FINAL_PREFIX%'] = final_prefix;
subst_dict['%PREFIX%'] = final_prefix;
if env['PREFIX'] == '/usr':
final_config_prefix = '/etc'
@ -698,7 +710,7 @@ else:
config_prefix = '$DESTDIR' + final_config_prefix
# For colorgcc ( so says the wiki, but it's still not working :/ anyone? )
# For colorgcc
if os.environ.has_key('PATH'):
env['PATH'] = os.environ['PATH']
if os.environ.has_key('TERM'):
@ -706,7 +718,6 @@ if os.environ.has_key('TERM'):
if os.environ.has_key('HOME'):
env['HOME'] = os.environ['HOME']
# SCons should really do this for us
conf = Configure (env)
@ -958,7 +969,17 @@ env.Distribute (env['DISTTREE'],
'COPYING', 'PACKAGER_README', 'README',
'ardour.rc.in',
'ardour_system.rc',
'tools/config.guess'
'tools/config.guess',
'icons/icon/ardour_icon_mac_mask.png',
'icons/icon/ardour_icon_mac.png',
'icons/icon/ardour_icon_tango_16px_blue.png',
'icons/icon/ardour_icon_tango_16px_red.png',
'icons/icon/ardour_icon_tango_22px_blue.png',
'icons/icon/ardour_icon_tango_22px_red.png',
'icons/icon/ardour_icon_tango_32px_blue.png',
'icons/icon/ardour_icon_tango_32px_red.png',
'icons/icon/ardour_icon_tango_48px_blue.png',
'icons/icon/ardour_icon_tango_48px_red.png'
] +
glob.glob ('DOCUMENTATION/AUTHORS*') +
glob.glob ('DOCUMENTATION/CONTRIBUTORS*') +
@ -970,6 +991,7 @@ env.Distribute (env['DISTTREE'],
srcdist = env.Tarball(env['TARBALL'], env['DISTTREE'])
env.Alias ('srctar', srcdist)
#
# don't leave the distree around
#

View File

@ -1,6 +1,7 @@
<?xml version="1.0"?>
<Ardour>
<MIDI-port tag="%MIDITAG%" device="ardour" type="%MIDITYPE%" mode="duplex"/>
<MIDI-port tag="control" device="ardour" type="%MIDITYPE%" mode="duplex"/>
<Config>
<Option name="minimum-disk-io-bytes" value="262144"/>
<Option name="track-buffer-seconds" value="5.000000"/>

View File

@ -7,6 +7,7 @@ import glob
Import('env install_prefix final_prefix config_prefix libraries i18n version')
gtkardour = env.Copy()
gtkmmtests = env.Copy()
#
# this defines the version number of the GTK interface to ardour
@ -49,6 +50,19 @@ gtkardour.Merge ([
libraries['jack']
])
gtkmmtests.Append(CXXFLAGS="-DLIBSIGC_DISABLE_DEPRECATED")
gtkmmtests.Merge ([
libraries['gtkmm2'],
libraries['glib2'],
libraries['glibmm2'],
libraries['pangomm'],
libraries['atkmm'],
libraries['gdkmm2'],
libraries['sigc2'],
libraries['gtk2']
])
if gtkardour['DMALLOC']:
gtkardour.Merge([libraries['dmalloc']])
gtkardour.Append(CCFLAGS='-DUSE_DMALLOC')
@ -195,7 +209,8 @@ fft_graph.cc
fft_result.cc
""")
pixmap_files=glob.glob('pixmaps/*.xpm')
pixmap_files = glob.glob('pixmaps/*.xpm')
icon_files = glob.glob ('icons/*.png')
intl_files = gtkardour_files + glob.glob('*.h')
@ -216,6 +231,10 @@ stest_files=Split("""
stest.cc
""")
tt_files=Split ("""
tt.cc
""")
extra_sources = []
vst_files = [ 'vst_pluginui.cc' ]
@ -252,9 +271,10 @@ ardourlib = gtkardour.SharedLibrary(target = 'ardourgtk', source = gtkardour_fil
mtest = gtkardour.Program(target = 'mtest', source = mtest_files)
itest = gtkardour.Program(target = 'itest', source = itest_files)
rcu = gtkardour.Program(target = 'rcu', source = rcu_files)
tt = gtkmmtests.Program(target = 'tt', source = tt_files)
my_subst_dict = { }
my_subst_dict['%INSTALL_PREFIX%'] = install_prefix
my_subst_dict['%INSTALL_PREFIX%'] = final_prefix
ardoursh = env.SubstInFile ('ardour.sh','ardour.sh.in', SUBST_DICT = my_subst_dict);
env.AddPostAction (ardoursh, Chmod ('$TARGET', 0755))
@ -286,8 +306,9 @@ env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour2'), 'ardour
env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour2'), 'ardour.bindings'))
env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour2'), 'ardour.colors'))
# data files
env.Alias('install', env.Install(os.path.join(install_prefix, 'share/ardour2'), 'splash.ppm'))
env.Alias('install', env.Install(os.path.join(install_prefix, 'share/ardour2'), 'splash.png'))
env.Alias('install', env.Install(os.path.join(install_prefix, 'share/ardour2/pixmaps'), pixmap_files))
env.Alias('install', env.Install(os.path.join(install_prefix, 'share/ardour2/icons'), icon_files))
#dist
@ -295,12 +316,18 @@ env.Alias ('tarball', env.Distribute (env['DISTTREE'],
[ 'SConscript',
'i18n.h', 'gettext.h',
'ardour.sh.in',
'ardour2_ui.rc', 'splash.ppm',
'ardour2_ui.rc', 'splash.png',
'ardour.menus', 'ardour.bindings', 'ardour.colors',
'editor_xpms'
] +
gtkardour_files + vst_files + pixmap_files +
glob.glob('po/*.po') + glob.glob('*.h')))
gtkardour_files +
vst_files +
pixmap_files +
icon_files +
skipped_files +
audiounit_files +
fft_analysis_files +
glob.glob('po/*.po') + glob.glob('*.h')))
# generate a prototype full-featured ardour_ui.rc file

View File

@ -165,7 +165,7 @@ About::About ()
string path;
string t;
path = find_data_file ("splash.ppm");
path = find_data_file ("splash.png");
Glib::RefPtr<Pixbuf> pixbuf = Gdk::Pixbuf::create_from_file (path);
@ -178,13 +178,13 @@ About::About ()
}
set_translator_credits (t);
set_copyright (_("Copyright (C) 1999-2005 Paul Davis\n"));
set_copyright (_("Copyright (C) 1999-2006 Paul Davis\n"));
set_license (_("Ardour comes with ABSOLUTELY NO WARRANTY\n"
"This is free software, and you are welcome to redistribute it\n"
"under certain conditions; see the file COPYING for details.\n"));
set_name (X_("ardour"));
set_website (X_("http://ardour.org/"));
set_website_label (X_("ardour.org"));
set_website_label (X_("visit http://www.ardour.org/"));
set_version ((string_compose(_("%1\n(built with ardour/gtk %2.%3.%4 libardour: %5.%6.%7)"),
VERSIONSTRING,
gtk_ardour_major_version,

View File

@ -40,6 +40,7 @@ using namespace Gtk;
using namespace Glib;
using namespace sigc;
using namespace PBD;
using namespace ARDOUR;
vector<RefPtr<Gtk::Action> > ActionManager::session_sensitive_actions;
vector<RefPtr<Gtk::Action> > ActionManager::region_list_selection_sensitive_actions;
@ -283,3 +284,53 @@ ActionManager::uncheck_toggleaction (const char * name)
delete [] group_name;
}
void
ActionManager::toggle_config_state (const char* group, const char* action, bool (Configuration::*set)(bool), bool (Configuration::*get)(void) const)
{
Glib::RefPtr<Action> act = ActionManager::get_action (group, action);
if (act) {
Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
if (tact) {
bool x = (Config->*get)();
if (x != tact->get_active()) {
(Config->*set) (!x);
}
}
}
}
void
ActionManager::toggle_config_state (const char* group, const char* action, sigc::slot<void> theSlot)
{
Glib::RefPtr<Action> act = ActionManager::get_action (group, action);
if (act) {
Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
if (tact->get_active()) {
theSlot ();
}
}
}
void
ActionManager::map_some_state (const char* group, const char* action, bool (Configuration::*get)() const)
{
Glib::RefPtr<Action> act = ActionManager::get_action (group, action);
if (act) {
Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
if (tact) {
bool x = (Config->*get)();
if (tact->get_active() != x) {
tact->set_active (x);
}
} else {
cerr << group << ':' << action << " is not a toggle\n";
}
} else {
cerr << group << ':' << action << " not an action\n";
}
}

View File

@ -37,6 +37,10 @@ class ActionManager
static std::vector<Glib::RefPtr<Gtk::Action> > jack_opposite_sensitive_actions;
static std::vector<Glib::RefPtr<Gtk::Action> > edit_cursor_in_region_sensitive_actions;
static void map_some_state (const char* group, const char* action, bool (ARDOUR::Configuration::*get)() const);
static void toggle_config_state (const char* group, const char* action, bool (ARDOUR::Configuration::*set)(bool), bool (ARDOUR::Configuration::*get)(void) const);
static void toggle_config_state (const char* group, const char* action, sigc::slot<void> theSlot);
static void set_sensitive (std::vector<Glib::RefPtr<Gtk::Action> >& actions, bool);
static std::string unbound_string; /* the key string returned if an action is not bound */

View File

@ -248,7 +248,7 @@ AnalysisWindow::analyze_data (Gtk::Button *button)
for (std::list<ARDOUR::AudioRange>::iterator j = ts.begin(); j != ts.end(); ++j) {
jack_nframes_t i = 0;
nframes_t i = 0;
int n;
while ( i < (*j).length() ) {
@ -289,7 +289,7 @@ AnalysisWindow::analyze_data (Gtk::Button *button)
continue;
// cerr << " - " << (*j)->region().name() << ": " << (*j)->region().length() << " samples starting at " << (*j)->region().position() << endl;
jack_nframes_t i = 0;
nframes_t i = 0;
int n;
while ( i < arv->region()->length() ) {

View File

@ -1,4 +1,4 @@
#!/bin/sh
dir=`dirname "$0"`
source $dir/ardev_common.sh
. $dir/ardev_common.sh
exec gdb gtk2_ardour/ardour.bin $*

View File

@ -1,3 +1,3 @@
#!/bin/sh
source `dirname "$0"`/ardev_common.sh
. `dirname "$0"`/ardev_common.sh
exec gtk2_ardour/ardour.bin --novst $*

View File

@ -2,7 +2,7 @@ cd `dirname "$0"`/..
#export G_DEBUG=fatal_criticals
export ARDOUR_PATH=gtk2_ardour/glade:gtk2_ardour/pixmaps:gtk2_ardour
export ARDOUR_PATH=gtk2_ardour/icons:gtk2_ardour/pixmaps:gtk2_ardour
export LD_LIBRARY_PATH=libs/surfaces/control_protocol:libs/ardour:libs/midi++2:libs/pbd:libs/soundtouch:libs/gtkmm2ext:libs/sigc++2:libs/glibmm2:libs/gtkmm2/atk:libs/gtkmm2/pango:libs/gtkmm2/gdk:libs/gtkmm2/gtk:libs/libgnomecanvasmm:libs/libsndfile:libs/appleutility:$LD_LIBRARY_PATH

View File

@ -68,8 +68,8 @@ cEnteredAutomationLine 0.87 0.39 0.39 1.00
cEnteredMarker 0.87 0.39 0.39 1.00
cMeterMarker 0.95 0.26 0.36 1.00
cTempoMarker 0.95 0.26 0.36 1.00
cMeasureLineBar 0.5 0.5 0.5 0.98
cMeasureLineBeat 0.7 0.7 0.7 0.94
cMeasureLineBeat 0.55 0.55 0.55 1.00
cMeasureLineBar 0.45 0.45 0.45 1.00
cGhostTrackBaseOutline 0.00 0.00 0.00 1.00
cGhostTrackBaseFill 0.27 0.00 0.49 0.50
cImageTrackBase 0.87 0.87 0.85 1.00

View File

@ -239,11 +239,12 @@
</menu>
<separator/>
<menu action='Autoconnect'>
<menuitem action='AutoConnectNewTrackInputsToHardware'/>
<menuitem action='InputAutoConnectPhysical'/>
<menuitem action='InputAutoConnectManual'/>
<separator/>
<menuitem action='AutoConnectNewTrackOutputsToHardware'/>
<menuitem action='AutoConnectNewTrackOutputsToMaster'/>
<menuitem action='ManuallyConnectNewTrackOutputs'/>
<menuitem action='OutputAutoConnectPhysical'/>
<menuitem action='OutputAutoConnectMaster'/>
<menuitem action='OutputAutoConnectManual'/>
</menu>
<menu action='ControlSurfaces'/>
<menu action='Monitoring'>
@ -277,7 +278,6 @@
<menuitem action='toggle-xfades-active'/>
<menuitem action='toggle-xfades-visible'/>
<menuitem action='toggle-auto-xfades'/>
<menuitem action='UnmuteNewFullCrossfades'/>
<separator/>
<menuitem action='CrossfadesFull'/>
<menuitem action='CrossfadesShort'/>
@ -291,8 +291,6 @@
<menuitem action='SendMTC'/>
<menuitem action='SendMMC'/>
<menuitem action='UseMMC'/>
<menuitem action='SendMIDIfeedback'/>
<menuitem action='UseMIDIcontrol'/>
<separator/>
<menuitem action='StopPluginsWithTransport'/>
<menuitem action='DoNotRunPluginsWhileRecording'/>

View File

@ -83,6 +83,7 @@ style "default_base" = "medium_text"
GtkWidget::cursor_color = {1.0, 1.0, 1.0 }
GtkButton::default_border = { 0, 0, 0, 0 }
GtkButton::default_outside_border = { 0, 0, 0, 0 }
GtkButton::button_relief = GTK_RELIEF_NONE
GtkTreeView::vertical-padding = 0
GtkTreeView::horizontal-padding = 0
@ -92,8 +93,8 @@ style "default_base" = "medium_text"
fg[INSENSITIVE] = { 0.80, 0.80, 0.80 }
fg[SELECTED] = { 0.80, 0.80, 0.80 }
bg[NORMAL] = { 0.40, 0.40, 0.40 }
bg[ACTIVE] = { 0.40, 0.40, 0.40 }
bg[NORMAL] = { 0.40, 0.41, 0.41 }
bg[ACTIVE] = { 0.40, 0.41, 0.41 }
bg[PRELIGHT] = "#565690"
bg[INSENSITIVE] = { 0.10, 0.10, 0.10 }
bg[SELECTED] = { 0, 0.40, 0.60 }
@ -111,9 +112,9 @@ style "default_base" = "medium_text"
base[SELECTED] = { 0.25, 0.25, 0.25 }
engine "clearlooks" {
menubarstyle = 1 # 0 = flat, 1 = sunken, 2 = flat gradient
menuitemstyle = 1 # 0 = flat, 1 = 3d-ish (gradient), 2 = 3d-ish (button)
listviewitemstyle = 1 # 0 = flat, 1 = 3d-ish (gradient)
menubarstyle = 0 # 0 = flat, 1 = sunken, 2 = flat gradient
menuitemstyle = 0 # 0 = flat, 1 = 3d-ish (gradient), 2 = 3d-ish (button)
listviewitemstyle = 0 # 0 = flat, 1 = 3d-ish (gradient)
progressbarstyle = 0 # 0 = candy bar, 1 = flat
}
}
@ -217,6 +218,7 @@ style "mute_button" = "small_button"
bg[ACTIVE] = { 1.0, 0.98, 0.53 }
fg[PRELIGHT] = { 0, 0, 0 }
fg[ACTIVE] = { 0, 0, 0 }
}

View File

@ -18,6 +18,9 @@
$Id$
*/
#define __STDC_FORMAT_MACROS 1
#include <stdint.h>
#include <algorithm>
#include <cmath>
#include <fcntl.h>
@ -87,7 +90,7 @@ ARDOUR_UI *ARDOUR_UI::theArdourUI = 0;
sigc::signal<void,bool> ARDOUR_UI::Blink;
sigc::signal<void> ARDOUR_UI::RapidScreenUpdate;
sigc::signal<void> ARDOUR_UI::SuperRapidScreenUpdate;
sigc::signal<void,jack_nframes_t> ARDOUR_UI::Clock;
sigc::signal<void,nframes_t> ARDOUR_UI::Clock;
ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], string rcfile)
@ -173,16 +176,12 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], string rcfile)
shuttle_fract = 0.0;
shuttle_max_speed = 8.0f;
set_shuttle_units (Percentage);
set_shuttle_behaviour (Sprung);
shuttle_style_menu = 0;
shuttle_unit_menu = 0;
gettimeofday (&last_peak_grab, 0);
gettimeofday (&last_shuttle_request, 0);
ARDOUR::AudioDiskstream::DeleteSources.connect (mem_fun(*this, &ARDOUR_UI::delete_sources_in_the_right_thread));
ARDOUR::Diskstream::DiskOverrun.connect (mem_fun(*this, &ARDOUR_UI::disk_overrun_handler));
ARDOUR::Diskstream::DiskUnderrun.connect (mem_fun(*this, &ARDOUR_UI::disk_underrun_handler));
@ -492,7 +491,7 @@ ARDOUR_UI::every_point_zero_one_seconds ()
}
void
ARDOUR_UI::update_sample_rate (jack_nframes_t ignored)
ARDOUR_UI::update_sample_rate (nframes_t ignored)
{
char buf[32];
@ -504,7 +503,7 @@ ARDOUR_UI::update_sample_rate (jack_nframes_t ignored)
} else {
jack_nframes_t rate = engine->frame_rate();
nframes_t rate = engine->frame_rate();
if (fmod (rate, 1000.0) != 0.0) {
snprintf (buf, sizeof (buf), _("%.1f kHz / %4.1f msecs"),
@ -558,7 +557,7 @@ ARDOUR_UI::update_disk_space()
return;
}
jack_nframes_t frames = session->available_capture_duration();
nframes_t frames = session->available_capture_duration();
char buf[64];
if (frames == max_frames) {
@ -567,23 +566,13 @@ ARDOUR_UI::update_disk_space()
int hrs;
int mins;
int secs;
jack_nframes_t fr = session->frame_rate();
nframes_t fr = session->frame_rate();
if (session->actively_recording()){
rec_enabled_diskstreams = 0;
session->foreach_route (this, &ARDOUR_UI::count_recenabled_diskstreams);
if (rec_enabled_diskstreams) {
frames /= rec_enabled_diskstreams;
}
} else {
/* hmmm. shall we divide by the route count? or the diskstream count?
or what? for now, do nothing ...
*/
rec_enabled_diskstreams = 0;
session->foreach_route (this, &ARDOUR_UI::count_recenabled_diskstreams);
if (rec_enabled_diskstreams) {
frames /= rec_enabled_diskstreams;
}
hrs = frames / (fr * 3600);
@ -968,12 +957,13 @@ restart JACK with more ports."));
}
void
ARDOUR_UI::do_transport_locate (jack_nframes_t new_position)
ARDOUR_UI::do_transport_locate (nframes_t new_position)
{
jack_nframes_t _preroll;
nframes_t _preroll = 0;
if (session) {
_preroll = session->convert_to_frames_at (new_position, session->preroll);
// XXX CONFIG_CHANGE FIX - requires AnyTime handling
// _preroll = session->convert_to_frames_at (new_position, Config->get_preroll());
if (new_position > _preroll) {
new_position -= _preroll;
@ -1023,7 +1013,7 @@ void
ARDOUR_UI::transport_goto_end ()
{
if (session) {
jack_nframes_t frame = session->current_end_frame();
nframes_t frame = session->current_end_frame();
session->request_locate (frame);
/* force displayed area in editor to start no matter
@ -1048,8 +1038,8 @@ ARDOUR_UI::transport_stop ()
return;
}
if (session->get_auto_loop()) {
session->request_auto_loop (false);
if (Config->get_auto_loop()) {
session->request_play_loop (false);
}
session->request_stop ();
@ -1078,8 +1068,7 @@ ARDOUR_UI::transport_record ()
switch (session->record_status()) {
case Session::Disabled:
if (session->ntracks() == 0) {
string txt = _("Please create 1 or more track\nbefore trying to record.\nCheck the Session menu.");
MessageDialog msg (*editor, txt);
MessageDialog msg (*editor, _("Please create 1 or more track\nbefore trying to record.\nCheck the Session menu."));
msg.run ();
return;
}
@ -1103,8 +1092,8 @@ ARDOUR_UI::transport_roll ()
rolling = session->transport_rolling ();
if (session->get_auto_loop()) {
session->request_auto_loop (false);
if (Config->get_auto_loop()) {
session->request_play_loop (false);
auto_loop_button.set_active (false);
roll_button.set_active (true);
} else if (session->get_play_range ()) {
@ -1121,7 +1110,7 @@ void
ARDOUR_UI::transport_loop()
{
if (session) {
if (session->get_auto_loop()) {
if (Config->get_auto_loop()) {
if (session->transport_rolling()) {
Location * looploc = session->locations()->auto_loop_location();
if (looploc) {
@ -1130,7 +1119,7 @@ ARDOUR_UI::transport_loop()
}
}
else {
session->request_auto_loop (true);
session->request_play_loop (true);
}
}
}
@ -1661,11 +1650,9 @@ ARDOUR_UI::new_session (bool startup, std::string predetermined_path)
new_session_dialog->reset_recent();
new_session_dialog->show();
//Glib::RefPtr<Gdk::Window> nsd_window = new_session_dialog->get_window();
do {
response = new_session_dialog->run ();
//nsd_window ->set_cursor(Gdk::Cursor(Gdk::WATCH));
if(response == Gtk::RESPONSE_CANCEL || response == Gtk::RESPONSE_DELETE_EVENT) {
quit();
return;
@ -1682,7 +1669,6 @@ ARDOUR_UI::new_session (bool startup, std::string predetermined_path)
if (session_name.empty()) {
response = Gtk::RESPONSE_NONE;
cerr << "session name is empty\n";
continue;
}
@ -1697,6 +1683,8 @@ ARDOUR_UI::new_session (bool startup, std::string predetermined_path)
} else if (response == Gtk::RESPONSE_OK) {
session_name = new_session_dialog->session_name();
if (new_session_dialog->get_current_page() == 1) {
/* XXX this is a bit of a hack..
@ -1707,7 +1695,6 @@ ARDOUR_UI::new_session (bool startup, std::string predetermined_path)
if (session_name.empty()) {
response = Gtk::RESPONSE_NONE;
cerr << "session name is empty 2\n";
continue;
}
@ -1724,11 +1711,8 @@ ARDOUR_UI::new_session (bool startup, std::string predetermined_path)
_session_is_new = true;
session_name = new_session_dialog->session_name();
if (session_name.empty()) {
response = Gtk::RESPONSE_NONE;
cerr << "session name is empty 3\n";
continue;
}
@ -1741,7 +1725,7 @@ ARDOUR_UI::new_session (bool startup, std::string predetermined_path)
} else {
std::string session_path = new_session_dialog->session_folder();
session_path = new_session_dialog->session_folder();
}
@ -1760,8 +1744,8 @@ ARDOUR_UI::new_session (bool startup, std::string predetermined_path)
uint32_t cchns;
uint32_t mchns;
Session::AutoConnectOption iconnect;
Session::AutoConnectOption oconnect;
AutoConnectOption iconnect;
AutoConnectOption oconnect;
if (new_session_dialog->create_control_bus()) {
cchns = (uint32_t) new_session_dialog->control_channel_count();
@ -1776,19 +1760,19 @@ ARDOUR_UI::new_session (bool startup, std::string predetermined_path)
}
if (new_session_dialog->connect_inputs()) {
iconnect = Session::AutoConnectPhysical;
iconnect = AutoConnectPhysical;
} else {
iconnect = Session::AutoConnectOption (0);
iconnect = AutoConnectOption (0);
}
/// @todo some minor tweaks.
if (new_session_dialog->connect_outs_to_master()) {
oconnect = Session::AutoConnectMaster;
oconnect = AutoConnectMaster;
} else if (new_session_dialog->connect_outs_to_physical()) {
oconnect = Session::AutoConnectPhysical;
oconnect = AutoConnectPhysical;
} else {
oconnect = Session::AutoConnectOption (0);
oconnect = AutoConnectOption (0);
}
uint32_t nphysin = (uint32_t) new_session_dialog->input_limit_count();
@ -1857,6 +1841,8 @@ This prevents the session from being loaded."));
connect_to_session (new_session);
Config->set_current_owner (ConfigVariableBase::Interface);
session_loaded = true;
return 0;
}
@ -1877,11 +1863,11 @@ int
ARDOUR_UI::build_session (const string & path, const string & snap_name,
uint32_t control_channels,
uint32_t master_channels,
Session::AutoConnectOption input_connect,
Session::AutoConnectOption output_connect,
AutoConnectOption input_connect,
AutoConnectOption output_connect,
uint32_t nphysin,
uint32_t nphysout,
jack_nframes_t initial_length)
nframes_t initial_length)
{
Session *new_session;
int x;
@ -2162,9 +2148,9 @@ ARDOUR_UI::add_route ()
string name_template = add_route_dialog->name_template ();
bool track = add_route_dialog->track ();
Session::AutoConnectOption oac = session->get_output_auto_connect();
AutoConnectOption oac = Config->get_output_auto_connect();
if (oac & Session::AutoConnectMaster) {
if (oac & AutoConnectMaster) {
output_chan = (session->master_out() ? session->master_out()->n_inputs().get(DataType::AUDIO) : input_chan);
} else {
output_chan = input_chan;
@ -2248,18 +2234,6 @@ ARDOUR_UI::halt_on_xrun_message ()
msg.run ();
}
void
ARDOUR_UI::delete_sources_in_the_right_thread (list<boost::shared_ptr<ARDOUR::Source> >* deletion_list)
{
ENSURE_GUI_THREAD (bind (mem_fun(*this, &ARDOUR_UI::delete_sources_in_the_right_thread), deletion_list));
for (list<boost::shared_ptr<Source> >::iterator i = deletion_list->begin(); i != deletion_list->end(); ++i) {
(*i)->drop_references ();
}
delete deletion_list;
}
void
ARDOUR_UI::disk_overrun_handler ()
{
@ -2363,7 +2337,7 @@ ARDOUR_UI::reconnect_to_jack ()
}
void
ARDOUR_UI::set_jack_buffer_size (jack_nframes_t nframes)
ARDOUR_UI::set_jack_buffer_size (nframes_t nframes)
{
engine->request_buffer_size (nframes);
update_sample_rate (0);
@ -2389,72 +2363,6 @@ ARDOUR_UI::cmdline_new_session (string path)
return FALSE; /* don't call it again */
}
void
ARDOUR_UI::set_native_file_header_format (HeaderFormat hf)
{
Glib::RefPtr<Action> act;
switch (hf) {
case BWF:
act = ActionManager::get_action (X_("options"), X_("FileHeaderFormatBWF"));
break;
case WAVE:
act = ActionManager::get_action (X_("options"), X_("FileHeaderFormatWAVE"));
break;
case WAVE64:
act = ActionManager::get_action (X_("options"), X_("FileHeaderFormatWAVE64"));
break;
case iXML:
act = ActionManager::get_action (X_("options"), X_("FileHeaderFormatiXML"));
break;
case RF64:
act = ActionManager::get_action (X_("options"), X_("FileHeaderFormatRF64"));
break;
case CAF:
act = ActionManager::get_action (X_("options"), X_("FileHeaderFormatCAF"));
break;
case AIFF:
act = ActionManager::get_action (X_("options"), X_("FileHeaderFormatAIFF"));
break;
}
if (act) {
Glib::RefPtr<RadioAction> ract = Glib::RefPtr<RadioAction>::cast_dynamic(act);
if (ract && ract->get_active() && Config->get_native_file_header_format() != hf) {
Config->set_native_file_header_format (hf);
if (session) {
session->reset_native_file_format ();
}
}
}
}
void
ARDOUR_UI::set_native_file_data_format (SampleFormat sf)
{
Glib::RefPtr<Action> act;
switch (sf) {
case FormatFloat:
act = ActionManager::get_action (X_("options"), X_("FileDataFormatFloat"));
break;
case FormatInt24:
act = ActionManager::get_action (X_("options"), X_("FileDataFormat24bit"));
break;
}
if (act) {
Glib::RefPtr<RadioAction> ract = Glib::RefPtr<RadioAction>::cast_dynamic(act);
if (ract && ract->get_active() && Config->get_native_file_data_format() != sf) {
Config->set_native_file_data_format (sf);
if (session) {
session->reset_native_file_format ();
}
}
}
}
void
ARDOUR_UI::use_config ()
{

View File

@ -112,11 +112,11 @@ class ARDOUR_UI : public Gtkmm2ext::UI
int build_session (const string & path, const string & snapshot,
uint32_t ctl_chns,
uint32_t master_chns,
ARDOUR::Session::AutoConnectOption input_connect,
ARDOUR::Session::AutoConnectOption output_connect,
ARDOUR::AutoConnectOption input_connect,
ARDOUR::AutoConnectOption output_connect,
uint32_t nphysin,
uint32_t nphysout,
jack_nframes_t initial_length);
nframes_t initial_length);
bool session_is_new() const { return _session_is_new; }
ARDOUR::Session* the_session() { return session; }
@ -159,7 +159,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI
static sigc::signal<void,bool> Blink;
static sigc::signal<void> RapidScreenUpdate;
static sigc::signal<void> SuperRapidScreenUpdate;
static sigc::signal<void,jack_nframes_t> Clock;
static sigc::signal<void,nframes_t> Clock;
/* this is a helper function to centralize the (complex) logic for
blinking rec-enable buttons.
@ -179,7 +179,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI
void save_ardour_state ();
gboolean configure_handler (GdkEventConfigure* conf);
void do_transport_locate (jack_nframes_t position);
void do_transport_locate (nframes_t position);
void halt_on_xrun_message ();
AudioClock primary_clock;
@ -379,16 +379,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI
void toggle_time_master ();
void toggle_video_sync ();
enum ShuttleBehaviour {
Sprung,
Wheel
};
enum ShuttleUnits {
Percentage,
Semitones
};
Gtk::DrawingArea shuttle_box;
Gtk::EventBox speed_display_box;
Gtk::Label speed_display_label;
@ -396,8 +386,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI
Gtk::ComboBoxText shuttle_style_button;
Gtk::Menu* shuttle_unit_menu;
Gtk::Menu* shuttle_style_menu;
ShuttleBehaviour shuttle_behaviour;
ShuttleUnits shuttle_units;
float shuttle_max_speed;
Gtk::Menu* shuttle_context_menu;
@ -405,8 +393,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI
void show_shuttle_context_menu ();
void shuttle_style_changed();
void shuttle_unit_clicked ();
void set_shuttle_behaviour (ShuttleBehaviour);
void set_shuttle_units (ShuttleUnits);
void set_shuttle_max_speed (float);
void update_speed_display ();
float last_speed_displayed;
@ -517,7 +503,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI
Gtk::Label sample_rate_label;
Gtk::EventBox sample_rate_box;
void update_sample_rate (jack_nframes_t);
void update_sample_rate (nframes_t);
gint every_second ();
gint every_point_one_seconds ();
@ -572,7 +558,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI
void we_have_dependents ();
void setup_keybindings ();
void setup_session_options ();
void setup_config_options ();
guint32 last_key_press_time;
@ -646,8 +631,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI
struct timeval last_peak_grab;
struct timeval last_shuttle_request;
void delete_sources_in_the_right_thread (list<boost::shared_ptr<ARDOUR::Source> >*);
void editor_display_control_changed (Editing::DisplayControl c);
bool have_disk_overrun_displayed;
@ -662,7 +645,7 @@ class ARDOUR_UI : public Gtkmm2ext::UI
void disconnect_from_jack ();
void reconnect_to_jack ();
void set_jack_buffer_size (jack_nframes_t);
void set_jack_buffer_size (nframes_t);
Gtk::MenuItem* jack_disconnect_item;
Gtk::MenuItem* jack_reconnect_item;
@ -677,22 +660,17 @@ class ARDOUR_UI : public Gtkmm2ext::UI
std::vector<std::string> positional_sync_strings;
void toggle_config_state (const char* group, const char* action, void (ARDOUR::Configuration::*set)(bool));
void toggle_session_state (const char* group, const char* action, void (ARDOUR::Session::*set)(bool), bool (ARDOUR::Session::*get)(void) const);
void toggle_session_state (const char* group, const char* action, sigc::slot<void> theSlot);
void toggle_send_midi_feedback ();
void toggle_use_mmc ();
void toggle_send_mmc ();
void toggle_use_midi_control();
void toggle_send_mtc ();
void toggle_AutoConnectNewTrackInputsToHardware();
void toggle_AutoConnectNewTrackOutputsToHardware();
void toggle_AutoConnectNewTrackOutputsToMaster();
void toggle_ManuallyConnectNewTrackOutputs();
void toggle_UseHardwareMonitoring();
void toggle_UseSoftwareMonitoring();
void toggle_UseExternalMonitoring();
void set_input_auto_connect (ARDOUR::AutoConnectOption);
void set_output_auto_connect (ARDOUR::AutoConnectOption);
void set_solo_model (ARDOUR::SoloModel);
void set_monitor_model (ARDOUR::MonitorModel);
void toggle_StopPluginsWithTransport();
void toggle_DoNotRunPluginsWhileRecording();
void toggle_VerifyRemoveLastCapture();
@ -701,16 +679,24 @@ class ARDOUR_UI : public Gtkmm2ext::UI
void toggle_GainReduceFastTransport();
void toggle_LatchedSolo();
void toggle_SoloViaBus();
void toggle_AutomaticallyCreateCrossfades();
void toggle_UnmuteNewFullCrossfades();
void toggle_LatchedRecordEnable ();
void mtc_port_changed ();
void map_some_session_state (const char* group, const char* action, bool (ARDOUR::Session::*get)() const);
void queue_session_control_changed (ARDOUR::Session::ControlType t);
void session_control_changed (ARDOUR::Session::ControlType t);
void map_solo_model ();
void map_monitor_model ();
void map_file_header_format ();
void map_file_data_format ();
void map_input_auto_connect ();
void map_output_auto_connect ();
void parameter_changed (const char*);
void set_meter_hold (ARDOUR::MeterHold);
void set_meter_falloff (ARDOUR::MeterFalloff);
void map_meter_hold ();
void map_meter_falloff ();
void toggle_control_protocol (ARDOUR::ControlProtocolInfo*);
void toggle_control_protocol_feedback (ARDOUR::ControlProtocolInfo*, const char* group_name, const char* action_name);
};
#endif /* __ardour_gui_h__ */

View File

@ -130,20 +130,16 @@ ARDOUR_UI::transport_stopped ()
update_disk_space ();
}
static const double SHUTTLE_FRACT_SPEED1=0.48412291827; /* derived from A1,A2 */
void
ARDOUR_UI::transport_rolling ()
{
stop_button.set_active (false);
if (session->get_play_range()) {
play_selection_button.set_active (true);
roll_button.set_active (false);
auto_loop_button.set_active (false);
} else if (session->get_auto_loop ()) {
} else if (Config->get_auto_loop ()) {
auto_loop_button.set_active (true);
play_selection_button.set_active (false);
roll_button.set_active (false);
@ -243,29 +239,37 @@ ARDOUR_UI::setup_transport ()
goto_start_button.set_colors (colors);
goto_end_button.set_colors (colors);
stop_button.set_size_request(29, -1);
roll_button.set_size_request(29, -1);
auto_loop_button.set_size_request(29, -1);
play_selection_button.set_size_request(29, -1);
goto_start_button.set_size_request(29, -1);
goto_end_button.set_size_request(29, -1);
rec_button.set_size_request(29, -1);
Widget* w;
stop_button.set_active (true);
w = manage (new Image (Stock::MEDIA_PREVIOUS, ICON_SIZE_BUTTON));
w = manage (new Image (get_icon (X_("transport_start"))));
w->show();
goto_start_button.add (*w);
w = manage (new Image (Stock::MEDIA_NEXT, ICON_SIZE_BUTTON));
w = manage (new Image (get_icon (X_("transport_end"))));
w->show();
goto_end_button.add (*w);
w = manage (new Image (Stock::MEDIA_PLAY, ICON_SIZE_BUTTON));
w = manage (new Image (get_icon (X_("transport_play"))));
w->show();
roll_button.add (*w);
w = manage (new Image (Stock::MEDIA_STOP, ICON_SIZE_BUTTON));
w = manage (new Image (get_icon (X_("transport_stop"))));
w->show();
stop_button.add (*w);
w = manage (new Image (Stock::MEDIA_PLAY, ICON_SIZE_BUTTON));
w = manage (new Image (get_icon (X_("transport_range"))));
w->show();
play_selection_button.add (*w);
w = manage (new Image (Stock::MEDIA_RECORD, ICON_SIZE_BUTTON));
w = manage (new Image (get_icon (X_("transport_record"))));
w->show();
rec_button.add (*w);
w = manage (new Image (get_xpm("loop.xpm")));
w = manage (new Image (get_icon (X_("transport_loop"))));
w->show();
auto_loop_button.add (*w);
@ -359,6 +363,9 @@ ARDOUR_UI::setup_transport ()
auditioning_alert_button.set_name ("TransportAuditioningAlert");
auditioning_alert_button.signal_pressed().connect (mem_fun(*this,&ARDOUR_UI::audition_alert_toggle));
tooltips().set_tip (solo_alert_button, _("When active, something is soloed.\nClick to de-solo everything"));
tooltips().set_tip (auditioning_alert_button, _("When active, auditioning is taking place\nClick to stop the audition"));
alert_box.pack_start (solo_alert_button, false, false);
alert_box.pack_start (auditioning_alert_button, false, false);
@ -396,9 +403,9 @@ ARDOUR_UI::setup_transport ()
sdframe->add (speed_display_box);
mtc_port_changed ();
sync_option_combo.set_active_text (positional_sync_strings.front());
sync_option_combo.signal_changed().connect (mem_fun (*this, &ARDOUR_UI::sync_option_changed));
Gtkmm2ext::set_size_request_to_display_given_text (sync_option_combo, "Internal", 22, 10);
const guint32 FUDGE = 25; // Combo's are stupid - they steal space from the entry for the button
set_size_request_to_display_given_text (sync_option_combo, X_("Igternal"), 2+FUDGE, 10);
shbox->pack_start (*sdframe, false, false);
shbox->pack_start (shuttle_units_button, true, true);
@ -455,23 +462,6 @@ ARDOUR_UI::setup_transport ()
transport_tearoff_hbox.pack_start (alert_box, false, false);
}
void
ARDOUR_UI::setup_clock ()
{
ARDOUR_UI::Clock.connect (bind (mem_fun (big_clock, &AudioClock::set), false));
big_clock_window = new Window (WINDOW_TOPLEVEL);
big_clock_window->set_border_width (0);
big_clock_window->add (big_clock);
big_clock_window->set_title (_("ardour: clock"));
big_clock_window->set_type_hint (Gdk::WINDOW_TYPE_HINT_MENU);
big_clock_window->signal_realize().connect (bind (sigc::ptr_fun (set_decoration), big_clock_window, (Gdk::DECOR_BORDER|Gdk::DECOR_RESIZEH)));
big_clock_window->signal_unmap().connect (bind (sigc::ptr_fun(&ActionManager::uncheck_toggleaction), X_("<Actions>/Common/ToggleBigClock")));
manage_window (*big_clock_window);
}
void
ARDOUR_UI::manage_window (Window& win)
{
@ -514,7 +504,7 @@ ARDOUR_UI::_auditioning_changed (bool onoff)
void
ARDOUR_UI::auditioning_changed (bool onoff)
{
Gtkmm2ext::UI::instance()->call_slot(bind (mem_fun(*this, &ARDOUR_UI::_auditioning_changed), onoff));
UI::instance()->call_slot(bind (mem_fun(*this, &ARDOUR_UI::_auditioning_changed), onoff));
}
void
@ -668,8 +658,8 @@ ARDOUR_UI::shuttle_box_button_release (GdkEventButton* ev)
mouse_shuttle (ev->x, true);
shuttle_grabbed = false;
shuttle_box.remove_modal_grab ();
if (shuttle_behaviour == Sprung) {
if (session->get_auto_play() || roll_button.get_state()) {
if (Config->get_shuttle_behaviour() == Sprung) {
if (Config->get_auto_play() || roll_button.get_state()) {
shuttle_fract = SHUTTLE_FRACT_SPEED1;
session->request_transport_speed (1.0);
stop_button.set_active (false);
@ -828,50 +818,15 @@ ARDOUR_UI::shuttle_unit_clicked ()
shuttle_unit_menu->popup (1, 0);
}
void
ARDOUR_UI::set_shuttle_units (ShuttleUnits u)
{
switch ((shuttle_units = u)) {
case Percentage:
shuttle_units_button.set_label("% ");
break;
case Semitones:
shuttle_units_button.set_label(_("ST"));
break;
}
}
void
ARDOUR_UI::shuttle_style_changed ()
{
ustring str = shuttle_style_button.get_active_text ();
if (str == _("sprung")) {
set_shuttle_behaviour (Sprung);
Config->set_shuttle_behaviour (Sprung);
} else if (str == _("wheel")) {
set_shuttle_behaviour (Wheel);
}
}
void
ARDOUR_UI::set_shuttle_behaviour (ShuttleBehaviour b)
{
switch ((shuttle_behaviour = b)) {
case Sprung:
shuttle_style_button.set_active_text (_("sprung"));
shuttle_fract = 0.0;
shuttle_box.queue_draw ();
if (session) {
if (session->transport_rolling()) {
shuttle_fract = SHUTTLE_FRACT_SPEED1;
session->request_transport_speed (1.0);
}
}
break;
case Wheel:
shuttle_style_button.set_active_text (_("wheel"));
break;
Config->set_shuttle_behaviour (Wheel);
}
}
@ -892,7 +847,7 @@ ARDOUR_UI::update_speed_display ()
if (x != last_speed_displayed) {
if (x != 0) {
if (shuttle_units == Percentage) {
if (Config->get_shuttle_units() == Percentage) {
snprintf (buf, sizeof (buf), "%.2f", x);
} else {
if (x < 0) {
@ -920,31 +875,19 @@ ARDOUR_UI::set_transport_sensitivity (bool yn)
void
ARDOUR_UI::editor_realized ()
{
Config->map_parameters (mem_fun (*this, &ARDOUR_UI::parameter_changed));
set_size_request_to_display_given_text (speed_display_box, _("-0.55"), 2, 2);
/* XXX: this should really be saved in instant.xml or something similar and restored from there */
shuttle_style_button.set_active_text (_("sprung"));
const guint32 FUDGE = 20; // Combo's are stupid - they steal space from the entry for the button
const guint32 FUDGE = 25; // Combo's are stupid - they steal space from the entry for the button
set_size_request_to_display_given_text (shuttle_style_button, _("sprung"), 2+FUDGE, 10);
}
void
ARDOUR_UI::sync_option_changed ()
{
string which;
if (session == 0) {
return;
if (session) {
session->request_slave_source (string_to_slave_source (sync_option_combo.get_active_text()));
}
which = sync_option_combo.get_active_text();
if (which == positional_sync_strings[Session::None]) {
session->request_slave_source (Session::None);
} else if (which == positional_sync_strings[Session::MTC]) {
session->request_slave_source (Session::MTC);
} else if (which == positional_sync_strings[Session::JACK]) {
session->request_slave_source (Session::JACK);
}
}
void

View File

@ -26,6 +26,8 @@
#include <pbd/pathscanner.h>
#include <gtkmm2ext/utils.h>
#include "ardour_ui.h"
#include "public_editor.h"
#include "audio_clock.h"
@ -39,10 +41,13 @@
#include "i18n.h"
using namespace std;
using namespace ARDOUR;
using namespace PBD;
using namespace Gtk;
using namespace Gtkmm2ext;
using namespace Gtk;
using namespace Glib;
using namespace sigc;
int
ARDOUR_UI::create_editor ()
@ -81,6 +86,9 @@ ARDOUR_UI::install_actions ()
ActionManager::register_action (main_actions, X_("AudioFileFormatHeader"), _("Header"));
ActionManager::register_action (main_actions, X_("AudioFileFormatData"), _("Data"));
ActionManager::register_action (main_actions, X_("ControlSurfaces"), _("Control Surfaces"));
ActionManager::register_action (main_actions, X_("Metering"), _("Metering"));
ActionManager::register_action (main_actions, X_("MeteringFallOffRate"), _("Fall off rate"));
ActionManager::register_action (main_actions, X_("MeteringHoldTime"), _("Hold Time"));
/* the real actions */
@ -149,23 +157,23 @@ ARDOUR_UI::install_actions ()
RadioAction::Group jack_latency_group;
act = ActionManager::register_radio_action (jack_actions, jack_latency_group, X_("JACKLatency32"), X_("32"), bind (mem_fun(*this, &ARDOUR_UI::set_jack_buffer_size), (jack_nframes_t) 32));
act = ActionManager::register_radio_action (jack_actions, jack_latency_group, X_("JACKLatency32"), X_("32"), bind (mem_fun(*this, &ARDOUR_UI::set_jack_buffer_size), (nframes_t) 32));
ActionManager::jack_sensitive_actions.push_back (act);
act = ActionManager::register_radio_action (jack_actions, jack_latency_group, X_("JACKLatency64"), X_("64"), bind (mem_fun(*this, &ARDOUR_UI::set_jack_buffer_size), (jack_nframes_t) 64));
act = ActionManager::register_radio_action (jack_actions, jack_latency_group, X_("JACKLatency64"), X_("64"), bind (mem_fun(*this, &ARDOUR_UI::set_jack_buffer_size), (nframes_t) 64));
ActionManager::jack_sensitive_actions.push_back (act);
act = ActionManager::register_radio_action (jack_actions, jack_latency_group, X_("JACKLatency128"), X_("128"), bind (mem_fun(*this, &ARDOUR_UI::set_jack_buffer_size), (jack_nframes_t) 128));
act = ActionManager::register_radio_action (jack_actions, jack_latency_group, X_("JACKLatency128"), X_("128"), bind (mem_fun(*this, &ARDOUR_UI::set_jack_buffer_size), (nframes_t) 128));
ActionManager::jack_sensitive_actions.push_back (act);
act = ActionManager::register_radio_action (jack_actions, jack_latency_group, X_("JACKLatency256"), X_("256"), bind (mem_fun(*this, &ARDOUR_UI::set_jack_buffer_size), (jack_nframes_t) 256));
act = ActionManager::register_radio_action (jack_actions, jack_latency_group, X_("JACKLatency256"), X_("256"), bind (mem_fun(*this, &ARDOUR_UI::set_jack_buffer_size), (nframes_t) 256));
ActionManager::jack_sensitive_actions.push_back (act);
act = ActionManager::register_radio_action (jack_actions, jack_latency_group, X_("JACKLatency512"), X_("512"), bind (mem_fun(*this, &ARDOUR_UI::set_jack_buffer_size), (jack_nframes_t) 512));
act = ActionManager::register_radio_action (jack_actions, jack_latency_group, X_("JACKLatency512"), X_("512"), bind (mem_fun(*this, &ARDOUR_UI::set_jack_buffer_size), (nframes_t) 512));
ActionManager::jack_sensitive_actions.push_back (act);
act = ActionManager::register_radio_action (jack_actions, jack_latency_group, X_("JACKLatency1024"), X_("1024"), bind (mem_fun(*this, &ARDOUR_UI::set_jack_buffer_size), (jack_nframes_t) 1024));
act = ActionManager::register_radio_action (jack_actions, jack_latency_group, X_("JACKLatency1024"), X_("1024"), bind (mem_fun(*this, &ARDOUR_UI::set_jack_buffer_size), (nframes_t) 1024));
ActionManager::jack_sensitive_actions.push_back (act);
act = ActionManager::register_radio_action (jack_actions, jack_latency_group, X_("JACKLatency2048"), X_("2048"), bind (mem_fun(*this, &ARDOUR_UI::set_jack_buffer_size), (jack_nframes_t) 2048));
act = ActionManager::register_radio_action (jack_actions, jack_latency_group, X_("JACKLatency2048"), X_("2048"), bind (mem_fun(*this, &ARDOUR_UI::set_jack_buffer_size), (nframes_t) 2048));
ActionManager::jack_sensitive_actions.push_back (act);
act = ActionManager::register_radio_action (jack_actions, jack_latency_group, X_("JACKLatency4096"), X_("4096"), bind (mem_fun(*this, &ARDOUR_UI::set_jack_buffer_size), (jack_nframes_t) 4096));
act = ActionManager::register_radio_action (jack_actions, jack_latency_group, X_("JACKLatency4096"), X_("4096"), bind (mem_fun(*this, &ARDOUR_UI::set_jack_buffer_size), (nframes_t) 4096));
ActionManager::jack_sensitive_actions.push_back (act);
act = ActionManager::register_radio_action (jack_actions, jack_latency_group, X_("JACKLatency8192"), X_("8192"), bind (mem_fun(*this, &ARDOUR_UI::set_jack_buffer_size), (jack_nframes_t) 8192));
act = ActionManager::register_radio_action (jack_actions, jack_latency_group, X_("JACKLatency8192"), X_("8192"), bind (mem_fun(*this, &ARDOUR_UI::set_jack_buffer_size), (nframes_t) 8192));
ActionManager::jack_sensitive_actions.push_back (act);
/* these actions are intended to be shared across all windows */
@ -358,8 +366,8 @@ ARDOUR_UI::install_actions ()
Glib::RefPtr<ActionGroup> shuttle_actions = ActionGroup::create ("ShuttleActions");
shuttle_actions->add (Action::create (X_("SetShuttleUnitsPercentage"), _("Percentage")), bind (mem_fun(*this, &ARDOUR_UI::set_shuttle_units), Percentage));
shuttle_actions->add (Action::create (X_("SetShuttleUnitsSemitones"), _("Semitones")), bind (mem_fun(*this, &ARDOUR_UI::set_shuttle_units), Semitones));
shuttle_actions->add (Action::create (X_("SetShuttleUnitsPercentage"), _("Percentage")), hide_return (bind (mem_fun (*Config, &Configuration::set_shuttle_units), Percentage)));
shuttle_actions->add (Action::create (X_("SetShuttleUnitsSemitones"), _("Semitones")), hide_return (bind (mem_fun (*Config, &Configuration::set_shuttle_units), Semitones)));
Glib::RefPtr<ActionGroup> option_actions = ActionGroup::create ("options");
@ -374,9 +382,37 @@ ARDOUR_UI::install_actions ()
act = ActionManager::register_toggle_action (option_actions, X_("UseMIDIcontrol"), _("Use MIDI control"), mem_fun (*this, &ARDOUR_UI::toggle_use_midi_control));
ActionManager::session_sensitive_actions.push_back (act);
act = ActionManager::register_toggle_action (option_actions, X_("AutoConnectNewTrackInputsToHardware"), _("Connect new track inputs to hardware"), mem_fun (*this, &ARDOUR_UI::toggle_AutoConnectNewTrackInputsToHardware));
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_("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));
ActionManager::register_toggle_action (option_actions, X_("LatchedRecordEnable"), _("Rec-enable stays engaged at stop"), mem_fun (*this, &ARDOUR_UI::toggle_LatchedRecordEnable));
act = ActionManager::register_toggle_action (option_actions, X_("DoNotRunPluginsWhileRecording"), _("Do not run plugins while recording"), mem_fun (*this, &ARDOUR_UI::toggle_DoNotRunPluginsWhileRecording));
ActionManager::session_sensitive_actions.push_back (act);
act = ActionManager::register_toggle_action (option_actions, X_("LatchedSolo"), _("Latched solo"), mem_fun (*this, &ARDOUR_UI::toggle_LatchedSolo));
ActionManager::session_sensitive_actions.push_back (act);
/* !!! REMEMBER THAT RADIO ACTIONS HAVE TO BE HANDLED WITH MORE FINESSE THAN SIMPLE TOGGLES !!! */
RadioAction::Group meter_falloff_group;
RadioAction::Group meter_hold_group;
ActionManager::register_radio_action (option_actions, meter_falloff_group, X_("MeterFalloffOff"), _("Off"), bind (mem_fun (*this, &ARDOUR_UI::set_meter_falloff), MeterFalloffOff));
ActionManager::register_radio_action (option_actions, meter_falloff_group, X_("MeterFalloffSlowest"), _("Slowest"), bind (mem_fun (*this, &ARDOUR_UI::set_meter_falloff), MeterFalloffSlowest));
ActionManager::register_radio_action (option_actions, meter_falloff_group, X_("MeterFalloffSlow"), _("Slow"), bind (mem_fun (*this, &ARDOUR_UI::set_meter_falloff), MeterFalloffSlow));
ActionManager::register_radio_action (option_actions, meter_falloff_group, X_("MeterFalloffMedium"), _("Medium"), bind (mem_fun (*this, &ARDOUR_UI::set_meter_falloff), MeterFalloffMedium));
ActionManager::register_radio_action (option_actions, meter_falloff_group, X_("MeterFalloffFast"), _("Fast"), bind (mem_fun (*this, &ARDOUR_UI::set_meter_falloff), MeterFalloffFast));
ActionManager::register_radio_action (option_actions, meter_falloff_group, X_("MeterFalloffFaster"), _("Faster"), bind (mem_fun (*this, &ARDOUR_UI::set_meter_falloff), MeterFalloffFaster));
ActionManager::register_radio_action (option_actions, meter_falloff_group, X_("MeterFalloffFastest"), _("Fastest"), bind (mem_fun (*this, &ARDOUR_UI::set_meter_falloff), MeterFalloffFastest));
ActionManager::register_radio_action (option_actions, meter_hold_group, X_("MeterHoldOff"), _("Off"), bind (mem_fun (*this, &ARDOUR_UI::set_meter_hold), MeterHoldOff));
ActionManager::register_radio_action (option_actions, meter_hold_group, X_("MeterHoldShort"), _("Short"), bind (mem_fun (*this, &ARDOUR_UI::set_meter_hold), MeterHoldShort));
ActionManager::register_radio_action (option_actions, meter_hold_group, X_("MeterHoldMedium"), _("Medium"), bind (mem_fun (*this, &ARDOUR_UI::set_meter_hold), MeterHoldMedium));
ActionManager::register_radio_action (option_actions, meter_hold_group, X_("MeterHoldLong"), _("Long"), bind (mem_fun (*this, &ARDOUR_UI::set_meter_hold), MeterHoldLong));
RadioAction::Group file_header_group;
act = ActionManager::register_radio_action (option_actions, file_header_group, X_("FileHeaderFormatBWF"), X_("Broadcast WAVE"), bind (mem_fun (*this, &ARDOUR_UI::set_native_file_header_format), ARDOUR::BWF));
@ -391,48 +427,33 @@ ARDOUR_UI::install_actions ()
act = ActionManager::register_radio_action (option_actions, file_data_group, X_("FileDataFormatFloat"), X_("32-bit floating point"), bind (mem_fun (*this, &ARDOUR_UI::set_native_file_data_format), ARDOUR::FormatFloat));
act = ActionManager::register_radio_action (option_actions, file_data_group, X_("FileDataFormat24bit"), X_("24-bit signed integer"), bind (mem_fun (*this, &ARDOUR_UI::set_native_file_data_format), ARDOUR::FormatInt24));
RadioAction::Group connect_outputs_group;
act = ActionManager::register_radio_action (option_actions, connect_outputs_group, X_("AutoConnectNewTrackOutputsToHardware"), _("Connect new track outputs to hardware"), mem_fun (*this, &ARDOUR_UI::toggle_AutoConnectNewTrackOutputsToHardware));
ActionManager::session_sensitive_actions.push_back (act);
act = ActionManager::register_radio_action (option_actions, connect_outputs_group, X_("AutoConnectNewTrackOutputsToMaster"), _("Connect new track outputs to master"), mem_fun (*this, &ARDOUR_UI::toggle_AutoConnectNewTrackOutputsToMaster));
ActionManager::session_sensitive_actions.push_back (act);
act = ActionManager::register_radio_action (option_actions, connect_outputs_group, X_("ManuallyConnectNewTrackOutputs"), _("Manually connect new track outputs"), mem_fun (*this, &ARDOUR_UI::toggle_ManuallyConnectNewTrackOutputs));
ActionManager::session_sensitive_actions.push_back (act);
RadioAction::Group monitoring_group;
act = ActionManager::register_radio_action (option_actions, monitoring_group, X_("UseHardwareMonitoring"), _("Hardware monitoring"), mem_fun (*this, &ARDOUR_UI::toggle_UseHardwareMonitoring));
act = ActionManager::register_radio_action (option_actions, monitoring_group, X_("UseSoftwareMonitoring"), _("Software monitoring"), mem_fun (*this, &ARDOUR_UI::toggle_UseSoftwareMonitoring));
act = ActionManager::register_radio_action (option_actions, monitoring_group, X_("UseExternalMonitoring"), _("External monitoring"), mem_fun (*this, &ARDOUR_UI::toggle_UseExternalMonitoring));
/* Configuration object options (i.e. not session specific) */
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_("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));
ActionManager::register_toggle_action (option_actions, X_("LatchedRecordEnable"), _("Rec-enable stays engaged at stop"), mem_fun (*this, &ARDOUR_UI::toggle_LatchedRecordEnable));
/* session options */
act = ActionManager::register_toggle_action (option_actions, X_("DoNotRunPluginsWhileRecording"), _("Do not run plugins while recording"), mem_fun (*this, &ARDOUR_UI::toggle_DoNotRunPluginsWhileRecording));
ActionManager::session_sensitive_actions.push_back (act);
act = ActionManager::register_toggle_action (option_actions, X_("LatchedSolo"), _("Latched solo"), mem_fun (*this, &ARDOUR_UI::toggle_LatchedSolo));
ActionManager::session_sensitive_actions.push_back (act);
act = ActionManager::register_radio_action (option_actions, monitoring_group, X_("UseHardwareMonitoring"), _("Hardware monitoring"), bind (mem_fun (*this, &ARDOUR_UI::set_monitor_model), HardwareMonitoring));
act = ActionManager::register_radio_action (option_actions, monitoring_group, X_("UseSoftwareMonitoring"), _("Software monitoring"), bind (mem_fun (*this, &ARDOUR_UI::set_monitor_model), SoftwareMonitoring));
act = ActionManager::register_radio_action (option_actions, monitoring_group, X_("UseExternalMonitoring"), _("External monitoring"), bind (mem_fun (*this, &ARDOUR_UI::set_monitor_model), ExternalMonitoring));
RadioAction::Group solo_group;
act = ActionManager::register_radio_action (option_actions, solo_group, X_("SoloInPlace"), _("Solo in-place"), mem_fun (*this, &ARDOUR_UI::toggle_SoloViaBus));
act = ActionManager::register_radio_action (option_actions, solo_group, X_("SoloInPlace"), _("Solo in-place"), hide_return (bind (mem_fun (*this, &ARDOUR_UI::set_solo_model), InverseMute)));
ActionManager::session_sensitive_actions.push_back (act);
act = ActionManager::register_radio_action (option_actions, solo_group, X_("SoloViaBus"), _("Solo via bus"), mem_fun (*this, &ARDOUR_UI::toggle_SoloViaBus));
act = ActionManager::register_radio_action (option_actions, solo_group, X_("SoloViaBus"), _("Solo via bus"), hide_return (bind (mem_fun (*this, &ARDOUR_UI::set_solo_model), SoloBus)));
ActionManager::session_sensitive_actions.push_back (act);
act = ActionManager::register_action (option_actions, X_("AutomaticallyCreateCrossfades"), _("Automatically create crossfades"), mem_fun (*this, &ARDOUR_UI::toggle_AutomaticallyCreateCrossfades));
RadioAction::Group input_auto_connect_group;
act = ActionManager::register_radio_action (option_actions, input_auto_connect_group, X_("InputAutoConnectPhysical"), _("Auto-connect inputs to physical inputs"), hide_return (bind (mem_fun (*this, &ARDOUR_UI::set_input_auto_connect), AutoConnectPhysical)));
ActionManager::session_sensitive_actions.push_back (act);
act = ActionManager::register_action (option_actions, X_("UnmuteNewFullCrossfades"), _("Unmute new full crossfades"), mem_fun (*this, &ARDOUR_UI::toggle_UnmuteNewFullCrossfades));
act = ActionManager::register_radio_action (option_actions, input_auto_connect_group, X_("InputAutoConnectManual"), _("Manually connect inputs"), hide_return (bind (mem_fun (*this, &ARDOUR_UI::set_input_auto_connect), (AutoConnectOption) 0)));
ActionManager::session_sensitive_actions.push_back (act);
RadioAction::Group output_auto_connect_group;
act = ActionManager::register_radio_action (option_actions, output_auto_connect_group, X_("OutputAutoConnectPhysical"), _("Auto-connect outputs to physical outs"), hide_return (bind (mem_fun (*this, &ARDOUR_UI::set_output_auto_connect), AutoConnectPhysical)));
ActionManager::session_sensitive_actions.push_back (act);
act = ActionManager::register_radio_action (option_actions, output_auto_connect_group, X_("OutputAutoConnectMaster"), _("Auto-connect outputs to master bus"), hide_return (bind (mem_fun (*this, &ARDOUR_UI::set_output_auto_connect), AutoConnectMaster)));
ActionManager::session_sensitive_actions.push_back (act);
act = ActionManager::register_radio_action (option_actions, output_auto_connect_group, X_("OutputAutoConnectManual"), _("Manually connect outputs"), hide_return (bind (mem_fun (*this, &ARDOUR_UI::set_output_auto_connect), (AutoConnectOption) 0)));
ActionManager::session_sensitive_actions.push_back (act);
ActionManager::add_action_group (shuttle_actions);
@ -441,10 +462,6 @@ ARDOUR_UI::install_actions ()
ActionManager::add_action_group (transport_actions);
ActionManager::add_action_group (main_actions);
ActionManager::add_action_group (common_actions);
/* initialize state of non-session dependent options */
setup_config_options ();
}
void
@ -465,10 +482,36 @@ ARDOUR_UI::toggle_control_protocol (ControlProtocolInfo* cpi)
}
}
void
ARDOUR_UI::toggle_control_protocol_feedback (ControlProtocolInfo* cpi, const char* group, const char* action)
{
if (!session) {
/* this happens when we build the menu bar when control protocol support
has been used in the past for some given protocol - the item needs
to be made active, but there is no session yet.
*/
return;
}
if (cpi->protocol) {
Glib::RefPtr<Gtk::Action> act = ActionManager::get_action (group, action);
if (act) {
Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic (act);
bool x = tact->get_active();
if (tact && x != cpi->protocol->get_feedback()) {
cpi->protocol->set_feedback (!x);
}
}
}
}
void
ARDOUR_UI::build_control_surface_menu ()
{
list<ControlProtocolInfo*>::iterator i;
bool with_feedback;
/* !!! this has to match the top level entry from ardour.menus */
@ -488,6 +531,8 @@ ARDOUR_UI::build_control_surface_menu ()
(bind (mem_fun (*this, &ARDOUR_UI::toggle_control_protocol), *i)));
Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic (act);
with_feedback = false;
if ((*i)->protocol || (*i)->requested) {
tact->set_active ();
@ -496,6 +541,34 @@ ARDOUR_UI::build_control_surface_menu ()
ui += "<menuitem action='";
ui += action_name;
ui += "'/>\n";
if ((*i)->supports_feedback) {
string submenu_name = action_name;
submenu_name += "SubMenu";
ActionManager::register_action (editor->editor_actions, submenu_name.c_str(), _("Controls"));
action_name += "Feedback";
Glib::RefPtr<Action> act = ActionManager::register_toggle_action (editor->editor_actions, action_name.c_str(), _("Feedback"),
(bind (mem_fun (*this, &ARDOUR_UI::toggle_control_protocol_feedback),
*i,
"Editor",
action_name.c_str())));
ui += "<menu action='";
ui += submenu_name;
ui += "'>\n<menuitem action='";
ui += action_name;
ui += "'/>\n</menu>\n";
if ((*i)->protocol) {
Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic (act);
tact->set_active ((*i)->protocol->get_feedback ());
}
}
}
}
@ -549,3 +622,24 @@ ARDOUR_UI::build_menu_bar ()
menu_bar_base.set_name ("MainMenuBar");
menu_bar_base.add (menu_hbox);
}
void
ARDOUR_UI::setup_clock ()
{
ARDOUR_UI::Clock.connect (bind (mem_fun (big_clock, &AudioClock::set), false));
big_clock_window = new Window (WINDOW_TOPLEVEL);
big_clock_window->set_border_width (0);
big_clock_window->add (big_clock);
big_clock_window->set_title (_("ardour: clock"));
big_clock_window->set_type_hint (Gdk::WINDOW_TYPE_HINT_MENU);
big_clock_window->signal_realize().connect (bind (sigc::ptr_fun (set_decoration), big_clock_window, (Gdk::DECOR_BORDER|Gdk::DECOR_RESIZEH)));
big_clock_window->signal_unmap().connect (bind (sigc::ptr_fun(&ActionManager::uncheck_toggleaction), X_("<Actions>/Common/ToggleBigClock")));
if (editor) {
editor->ensure_float (*big_clock_window);
}
manage_window (*big_clock_window);
}

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,4 @@
#!/bin/sh
source ardev_common.sh
. ardev_common.sh
export ARDOUR_RUNNING_UNDER_VALGRIND=TRUE
exec valgrind --num-callers=50 --tool=memcheck gtk2_ardour/ardour.bin --novst $*

View File

@ -326,38 +326,11 @@ AudioClock::on_realize ()
/* styles are not available until the widgets are bound to a window */
switch (_mode) {
case SMPTE:
Gtkmm2ext::set_size_request_to_display_given_text (hours_label, "-88", 0, 2);
Gtkmm2ext::set_size_request_to_display_given_text (minutes_label, "88", 0, 2);
Gtkmm2ext::set_size_request_to_display_given_text (seconds_label, "88", 0, 2);
Gtkmm2ext::set_size_request_to_display_given_text (frames_label, "88", 0, 2);
break;
case BBT:
Gtkmm2ext::set_size_request_to_display_given_text (bars_label, "-888", 0, 2);
Gtkmm2ext::set_size_request_to_display_given_text (beats_label, "88", 0, 2);
Gtkmm2ext::set_size_request_to_display_given_text (ticks_label, "8888", 0, 2);
break;
case MinSec:
Gtkmm2ext::set_size_request_to_display_given_text (ms_hours_label, "99", 0, 2);
Gtkmm2ext::set_size_request_to_display_given_text (ms_minutes_label, "99", 0, 2);
Gtkmm2ext::set_size_request_to_display_given_text (ms_seconds_label, "99", 0, 2);
break;
case Frames:
Gtkmm2ext::set_size_request_to_display_given_text (audio_frames_label, "4294967296", 0, 2);
break;
case Off:
break;
}
set_size_requests ();
}
void
AudioClock::set (jack_nframes_t when, bool force)
AudioClock::set (nframes_t when, bool force)
{
if ((!force && !is_visible()) || session == 0) {
@ -395,7 +368,7 @@ AudioClock::set (jack_nframes_t when, bool force)
void
AudioClock::smpte_offset_changed ()
{
jack_nframes_t current;
nframes_t current;
switch (_mode) {
case SMPTE:
@ -412,7 +385,7 @@ AudioClock::smpte_offset_changed ()
}
void
AudioClock::set_frames (jack_nframes_t when, bool force)
AudioClock::set_frames (nframes_t when, bool force)
{
char buf[32];
snprintf (buf, sizeof (buf), "%u", when);
@ -420,29 +393,29 @@ AudioClock::set_frames (jack_nframes_t when, bool force)
}
void
AudioClock::set_minsec (jack_nframes_t when, bool force)
AudioClock::set_minsec (nframes_t when, bool force)
{
char buf[32];
jack_nframes_t left;
nframes_t left;
int hrs;
int mins;
float secs;
left = when;
hrs = (int) floor (left / (session->frame_rate() * 60.0f * 60.0f));
left -= (jack_nframes_t) floor (hrs * session->frame_rate() * 60.0f * 60.0f);
left -= (nframes_t) floor (hrs * session->frame_rate() * 60.0f * 60.0f);
mins = (int) floor (left / (session->frame_rate() * 60.0f));
left -= (jack_nframes_t) floor (mins * session->frame_rate() * 60.0f);
left -= (nframes_t) floor (mins * session->frame_rate() * 60.0f);
secs = left / (float) session->frame_rate();
if (force || hrs != ms_last_hrs) {
sprintf (buf, "%d", hrs);
sprintf (buf, "%02d", hrs);
ms_hours_label.set_text (buf);
ms_last_hrs = hrs;
}
if (force || mins != ms_last_mins) {
sprintf (buf, "%d", mins);
sprintf (buf, "%02d", mins);
ms_minutes_label.set_text (buf);
ms_last_mins = mins;
}
@ -455,7 +428,7 @@ AudioClock::set_minsec (jack_nframes_t when, bool force)
}
void
AudioClock::set_smpte (jack_nframes_t when, bool force)
AudioClock::set_smpte (nframes_t when, bool force)
{
char buf[32];
SMPTE::Time smpte;
@ -497,7 +470,7 @@ AudioClock::set_smpte (jack_nframes_t when, bool force)
}
void
AudioClock::set_bbt (jack_nframes_t when, bool force)
AudioClock::set_bbt (nframes_t when, bool force)
{
char buf[16];
BBT_Time bbt;
@ -952,7 +925,7 @@ AudioClock::field_button_press_event (GdkEventButton *ev, Field field)
{
if (session == 0) return FALSE;
jack_nframes_t frames = 0;
nframes_t frames = 0;
switch (ev->button) {
case 1:
@ -1029,7 +1002,7 @@ AudioClock::field_button_scroll_event (GdkEventScroll *ev, Field field)
{
if (session == 0) return FALSE;
jack_nframes_t frames = 0;
nframes_t frames = 0;
switch (ev->direction) {
@ -1098,8 +1071,8 @@ AudioClock::field_motion_notify_event (GdkEventMotion *ev, Field field)
if (trunc(drag_accum) != 0) {
jack_nframes_t frames;
jack_nframes_t pos ;
nframes_t frames;
nframes_t pos ;
int dir;
dir = (drag_accum < 0 ? 1:-1);
pos = current_time();
@ -1107,7 +1080,7 @@ AudioClock::field_motion_notify_event (GdkEventMotion *ev, Field field)
if (frames != 0 && frames * drag_accum < current_time()) {
set ((jack_nframes_t) floor (pos - drag_accum * frames), false); // minus because up is negative in computer-land
set ((nframes_t) floor (pos - drag_accum * frames), false); // minus because up is negative in computer-land
} else {
set (0 , false);
@ -1123,24 +1096,24 @@ AudioClock::field_motion_notify_event (GdkEventMotion *ev, Field field)
return TRUE;
}
jack_nframes_t
AudioClock::get_frames (Field field,jack_nframes_t pos,int dir)
nframes_t
AudioClock::get_frames (Field field,nframes_t pos,int dir)
{
jack_nframes_t frames = 0;
nframes_t frames = 0;
BBT_Time bbt;
switch (field) {
case SMPTE_Hours:
frames = (jack_nframes_t) floor (3600.0 * session->frame_rate());
frames = (nframes_t) floor (3600.0 * session->frame_rate());
break;
case SMPTE_Minutes:
frames = (jack_nframes_t) floor (60.0 * session->frame_rate());
frames = (nframes_t) floor (60.0 * session->frame_rate());
break;
case SMPTE_Seconds:
frames = session->frame_rate();
break;
case SMPTE_Frames:
frames = (jack_nframes_t) floor (session->frame_rate() / session->smpte_frames_per_second);
frames = (nframes_t) floor (session->frame_rate() / Config->get_smpte_frames_per_second());
break;
case AudioFrames:
@ -1148,10 +1121,10 @@ AudioClock::get_frames (Field field,jack_nframes_t pos,int dir)
break;
case MS_Hours:
frames = (jack_nframes_t) floor (3600.0 * session->frame_rate());
frames = (nframes_t) floor (3600.0 * session->frame_rate());
break;
case MS_Minutes:
frames = (jack_nframes_t) floor (60.0 * session->frame_rate());
frames = (nframes_t) floor (60.0 * session->frame_rate());
break;
case MS_Seconds:
frames = session->frame_rate();
@ -1180,10 +1153,10 @@ AudioClock::get_frames (Field field,jack_nframes_t pos,int dir)
return frames;
}
jack_nframes_t
AudioClock::current_time (jack_nframes_t pos) const
nframes_t
AudioClock::current_time (nframes_t pos) const
{
jack_nframes_t ret = 0;
nframes_t ret = 0;
switch (_mode) {
case SMPTE:
@ -1208,10 +1181,10 @@ AudioClock::current_time (jack_nframes_t pos) const
return ret;
}
jack_nframes_t
AudioClock::current_duration (jack_nframes_t pos) const
nframes_t
AudioClock::current_duration (nframes_t pos) const
{
jack_nframes_t ret = 0;
nframes_t ret = 0;
switch (_mode) {
case SMPTE:
@ -1248,7 +1221,7 @@ AudioClock::smpte_sanitize_display()
seconds_label.set_text("59");
}
switch ((long)rint(session->smpte_frames_per_second)) {
switch ((long)rint(Config->get_smpte_frames_per_second())) {
case 24:
if (atoi(frames_label.get_text()) > 23) {
frames_label.set_text("23");
@ -1268,14 +1241,14 @@ AudioClock::smpte_sanitize_display()
break;
}
if (session->smpte_drop_frames) {
if (Config->get_smpte_drop_frames()) {
if ((atoi(minutes_label.get_text()) % 10) && (atoi(seconds_label.get_text()) == 0) && (atoi(frames_label.get_text()) < 2)) {
frames_label.set_text("02");
}
}
}
jack_nframes_t
nframes_t
AudioClock::smpte_frame_from_display () const
{
if (session == 0) {
@ -1283,7 +1256,7 @@ AudioClock::smpte_frame_from_display () const
}
SMPTE::Time smpte;
jack_nframes_t sample;
nframes_t sample;
smpte.hours = atoi (hours_label.get_text());
smpte.minutes = atoi (minutes_label.get_text());
@ -1304,10 +1277,10 @@ AudioClock::smpte_frame_from_display () const
// Testcode for smpte<->sample conversions (P.S.)
SMPTE::Time smpte1;
jack_nframes_t sample1;
jack_nframes_t oldsample = 0;
nframes_t sample1;
nframes_t oldsample = 0;
SMPTE::Time smpte2;
jack_nframes_t sample_increment;
nframes_t sample_increment;
sample_increment = (long)rint(session->frame_rate() / session->smpte_frames_per_second);
@ -1666,7 +1639,7 @@ AudioClock::smpte_frame_from_display () const
return sample;
}
jack_nframes_t
nframes_t
AudioClock::minsec_frame_from_display () const
{
if (session == 0) {
@ -1677,13 +1650,13 @@ AudioClock::minsec_frame_from_display () const
int mins = atoi (ms_minutes_label.get_text());
float secs = atof (ms_seconds_label.get_text());
jack_nframes_t sr = session->frame_rate();
nframes_t sr = session->frame_rate();
return (jack_nframes_t) floor ((hrs * 60.0f * 60.0f * sr) + (mins * 60.0f * sr) + (secs * sr));
return (nframes_t) floor ((hrs * 60.0f * 60.0f * sr) + (mins * 60.0f * sr) + (secs * sr));
}
jack_nframes_t
AudioClock::bbt_frame_from_display (jack_nframes_t pos) const
nframes_t
AudioClock::bbt_frame_from_display (nframes_t pos) const
{
if (session == 0) {
error << "AudioClock::current_time() called with BBT mode but without session!" << endmsg;
@ -1697,14 +1670,14 @@ AudioClock::bbt_frame_from_display (jack_nframes_t pos) const
any.bbt.beats = atoi (beats_label.get_text());
any.bbt.ticks = atoi (ticks_label.get_text());
jack_nframes_t ret = session->convert_to_frames_at (pos, any);
nframes_t ret = session->convert_to_frames_at (pos, any);
return ret;
}
jack_nframes_t
AudioClock::bbt_frame_duration_from_display (jack_nframes_t pos) const
nframes_t
AudioClock::bbt_frame_duration_from_display (nframes_t pos) const
{
if (session == 0) {
error << "AudioClock::current_time() called with BBT mode but without session!" << endmsg;
@ -1721,10 +1694,10 @@ AudioClock::bbt_frame_duration_from_display (jack_nframes_t pos) const
return session->tempo_map().bbt_duration_at(pos,bbt,1);
}
jack_nframes_t
nframes_t
AudioClock::audio_frame_from_display () const
{
return (jack_nframes_t) atoi (audio_frames_label.get_text());
return (nframes_t) atoi (audio_frames_label.get_text());
}
void
@ -1775,40 +1748,66 @@ AudioClock::set_mode (Mode m)
}
_mode = m;
switch (_mode) {
case SMPTE:
clock_base.add (smpte_packer_hbox);
Gtkmm2ext::set_size_request_to_display_given_text (hours_label, "-88", 0, 2);
Gtkmm2ext::set_size_request_to_display_given_text (minutes_label, "88", 0, 2);
Gtkmm2ext::set_size_request_to_display_given_text (seconds_label, "88", 0, 2);
Gtkmm2ext::set_size_request_to_display_given_text (frames_label, "88", 0, 2);
break;
case BBT:
clock_base.add (bbt_packer_hbox);
Gtkmm2ext::set_size_request_to_display_given_text (bars_label, "-888", 0, 2);
Gtkmm2ext::set_size_request_to_display_given_text (beats_label, "88", 0, 2);
Gtkmm2ext::set_size_request_to_display_given_text (ticks_label, "8888", 0, 2);
break;
case MinSec:
clock_base.add (minsec_packer_hbox);
Gtkmm2ext::set_size_request_to_display_given_text (ms_hours_label, "99", 0, 2);
Gtkmm2ext::set_size_request_to_display_given_text (ms_minutes_label, "99", 0, 2);
Gtkmm2ext::set_size_request_to_display_given_text (ms_seconds_label, "99", 0, 2);
break;
case Frames:
clock_base.add (frames_packer_hbox);
Gtkmm2ext::set_size_request_to_display_given_text (audio_frames_label, "4294967296", 0, 2);
break;
case Off:
break;
}
set_size_requests ();
set (last_when, true);
clock_base.show_all ();
key_entry_state = 0;
}
void
AudioClock::set_size_requests ()
{
/* note that in some fonts, "88" is narrower than "00", hence the 2 pixel padding */
switch (_mode) {
case SMPTE:
Gtkmm2ext::set_size_request_to_display_given_text (hours_label, "-88", 2, 2);
Gtkmm2ext::set_size_request_to_display_given_text (minutes_label, "88", 2, 2);
Gtkmm2ext::set_size_request_to_display_given_text (seconds_label, "88", 2, 2);
Gtkmm2ext::set_size_request_to_display_given_text (frames_label, "88", 2, 2);
break;
case BBT:
Gtkmm2ext::set_size_request_to_display_given_text (bars_label, "-888", 2, 2);
Gtkmm2ext::set_size_request_to_display_given_text (beats_label, "88", 2, 2);
Gtkmm2ext::set_size_request_to_display_given_text (ticks_label, "8888", 2, 2);
break;
case MinSec:
Gtkmm2ext::set_size_request_to_display_given_text (ms_hours_label, "99", 2, 2);
Gtkmm2ext::set_size_request_to_display_given_text (ms_minutes_label, "99", 2, 2);
Gtkmm2ext::set_size_request_to_display_given_text (ms_seconds_label, "99.999", 2, 2);
break;
case Frames:
Gtkmm2ext::set_size_request_to_display_given_text (audio_frames_label, "4294967296", 2, 2);
break;
case Off:
break;
}
}

View File

@ -47,11 +47,11 @@ class AudioClock : public Gtk::HBox
Mode mode() const { return _mode; }
void set (jack_nframes_t, bool force = false);
void set (nframes_t, bool force = false);
void set_mode (Mode);
jack_nframes_t current_time (jack_nframes_t position = 0) const;
jack_nframes_t current_duration (jack_nframes_t position = 0) const;
nframes_t current_time (nframes_t position = 0) const;
nframes_t current_duration (nframes_t position = 0) const;
void set_session (ARDOUR::Session *s);
sigc::signal<void> ValueChanged;
@ -131,7 +131,7 @@ class AudioClock : public Gtk::HBox
Gtk::EventBox clock_base;
Gtk::Frame clock_frame;
jack_nframes_t last_when;
nframes_t last_when;
uint32_t last_hrs;
uint32_t last_mins;
@ -158,24 +158,25 @@ class AudioClock : public Gtk::HBox
bool field_focus_in_event (GdkEventFocus *, Field);
bool field_focus_out_event (GdkEventFocus *, Field);
void set_smpte (jack_nframes_t, bool);
void set_bbt (jack_nframes_t, bool);
void set_minsec (jack_nframes_t, bool);
void set_frames (jack_nframes_t, bool);
void set_smpte (nframes_t, bool);
void set_bbt (nframes_t, bool);
void set_minsec (nframes_t, bool);
void set_frames (nframes_t, bool);
jack_nframes_t get_frames (Field,jack_nframes_t pos = 0,int dir=1);
nframes_t get_frames (Field,nframes_t pos = 0,int dir=1);
void smpte_sanitize_display();
jack_nframes_t smpte_frame_from_display () const;
jack_nframes_t bbt_frame_from_display (jack_nframes_t) const;
jack_nframes_t bbt_frame_duration_from_display (jack_nframes_t) const;
jack_nframes_t minsec_frame_from_display () const;
jack_nframes_t audio_frame_from_display () const;
nframes_t smpte_frame_from_display () const;
nframes_t bbt_frame_from_display (nframes_t) const;
nframes_t bbt_frame_duration_from_display (nframes_t) const;
nframes_t minsec_frame_from_display () const;
nframes_t audio_frame_from_display () const;
void build_ops_menu ();
void setup_events ();
void smpte_offset_changed ();
void set_size_requests ();
static const uint32_t field_length[(int)AudioFrames+1];
};

View File

@ -467,7 +467,7 @@ AudioRegionEditor::end_clock_changed ()
void
AudioRegionEditor::length_clock_changed ()
{
jack_nframes_t frames = length_clock.current_time();
nframes_t frames = length_clock.current_time();
_region->trim_end (_region->position() + frames, this);
length_clock.set (_region->length());
@ -632,12 +632,12 @@ void
AudioRegionEditor::fade_in_changed ()
{
float msecs = fade_in_length_adjustment.get_value();
jack_nframes_t sr = _session.frame_rate();
jack_nframes_t adj_frames = (jack_nframes_t) floor (msecs * (sr/1000.0f));
jack_nframes_t frames;
nframes_t sr = _session.frame_rate();
nframes_t adj_frames = (nframes_t) floor (msecs * (sr/1000.0f));
nframes_t frames;
bool x;
if (adj_frames != (frames = (jack_nframes_t) _region->fade_in().back()->when)) {
if (adj_frames != (frames = (nframes_t) _region->fade_in().back()->when)) {
fade_in_length_adjustment.set_value ((frames * 1000.0f) / sr);
}
@ -650,11 +650,11 @@ void
AudioRegionEditor::fade_out_changed ()
{
float msecs = fade_out_length_adjustment.get_value();
jack_nframes_t sr = _session.frame_rate();
jack_nframes_t adj_frames = (jack_nframes_t) floor (msecs * (sr/1000.0f));
jack_nframes_t frames;
nframes_t sr = _session.frame_rate();
nframes_t adj_frames = (nframes_t) floor (msecs * (sr/1000.0f));
nframes_t frames;
bool x;
if (adj_frames != (frames = (jack_nframes_t) _region->fade_out().back()->when)) {
if (adj_frames != (frames = (nframes_t) _region->fade_out().back()->when)) {
fade_out_length_adjustment.set_value ((frames * 1000.0f) / sr);
}
@ -666,8 +666,8 @@ AudioRegionEditor::fade_out_changed ()
void
AudioRegionEditor::fade_in_length_adjustment_changed ()
{
jack_nframes_t fade_length = (jack_nframes_t) floor (fade_in_length_adjustment.get_value() * _session.frame_rate() * 0.001);
fade_length = max (fade_length, (jack_nframes_t) 64);
nframes_t fade_length = (nframes_t) floor (fade_in_length_adjustment.get_value() * _session.frame_rate() * 0.001);
fade_length = max (fade_length, (nframes_t) 64);
fade_length = min (fade_length, _region->length());
_region->set_fade_in_length (fade_length);
@ -678,8 +678,8 @@ AudioRegionEditor::fade_in_length_adjustment_changed ()
void
AudioRegionEditor::fade_out_length_adjustment_changed ()
{
jack_nframes_t fade_length = (jack_nframes_t) floor (fade_out_length_adjustment.get_value() * _session.frame_rate() * 0.001);
fade_length = max (fade_length, (jack_nframes_t) 64);
nframes_t fade_length = (nframes_t) floor (fade_out_length_adjustment.get_value() * _session.frame_rate() * 0.001);
fade_length = max (fade_length, (nframes_t) 64);
fade_length = min (fade_length, _region->length());
_region->set_fade_out_length (fade_length);

View File

@ -159,8 +159,6 @@ AudioRegionView::init (Gdk::Color& basic_color, bool wfd)
gain_line->show ();
}
reset_width_dependent_items ((double) _region->length() / samples_per_unit);
gain_line->reset ();
set_height (trackview.height);
@ -471,11 +469,11 @@ AudioRegionView::reset_fade_shapes ()
void
AudioRegionView::reset_fade_in_shape ()
{
reset_fade_in_shape_width ((jack_nframes_t) audio_region()->fade_in().back()->when);
reset_fade_in_shape_width ((nframes_t) audio_region()->fade_in().back()->when);
}
void
AudioRegionView::reset_fade_in_shape_width (jack_nframes_t width)
AudioRegionView::reset_fade_in_shape_width (nframes_t width)
{
if (fade_in_handle == 0) {
return;
@ -483,7 +481,7 @@ AudioRegionView::reset_fade_in_shape_width (jack_nframes_t width)
/* smallest size for a fade is 64 frames */
width = std::max ((jack_nframes_t) 64, width);
width = std::max ((nframes_t) 64, width);
Points* points;
double pwidth = width / samples_per_unit;
@ -555,11 +553,11 @@ AudioRegionView::reset_fade_in_shape_width (jack_nframes_t width)
void
AudioRegionView::reset_fade_out_shape ()
{
reset_fade_out_shape_width ((jack_nframes_t) audio_region()->fade_out().back()->when);
reset_fade_out_shape_width ((nframes_t) audio_region()->fade_out().back()->when);
}
void
AudioRegionView::reset_fade_out_shape_width (jack_nframes_t width)
AudioRegionView::reset_fade_out_shape_width (nframes_t width)
{
if (fade_out_handle == 0) {
return;
@ -567,7 +565,7 @@ AudioRegionView::reset_fade_out_shape_width (jack_nframes_t width)
/* smallest size for a fade is 64 frames */
width = std::max ((jack_nframes_t) 64, width);
width = std::max ((nframes_t) 64, width);
Points* points;
double pwidth = width / samples_per_unit;
@ -794,6 +792,9 @@ AudioRegionView::create_waves ()
}
if (create_zero_line) {
if (zero_line) {
delete zero_line;
}
zero_line = new ArdourCanvas::SimpleLine (*group);
zero_line->property_x1() = (gdouble) 1.0;
zero_line->property_x2() = (gdouble) (_region->length() / samples_per_unit) - 1.0;
@ -906,7 +907,7 @@ AudioRegionView::add_gain_point_event (ArdourCanvas::Item *item, GdkEvent *ev)
item->w2i (x, y);
jack_nframes_t fx = trackview.editor.pixel_to_frame (x);
nframes_t fx = trackview.editor.pixel_to_frame (x);
if (fx > _region->length()) {
return;

View File

@ -89,8 +89,8 @@ class AudioRegionView : public RegionView
GhostRegion* add_ghost (AutomationTimeAxisView&);
void reset_fade_in_shape_width (jack_nframes_t);
void reset_fade_out_shape_width (jack_nframes_t);
void reset_fade_in_shape_width (nframes_t);
void reset_fade_out_shape_width (nframes_t);
void set_fade_in_active (bool);
void set_fade_out_active (bool);

View File

@ -127,6 +127,8 @@ AudioStreamView::set_amplitude_above_axis (gdouble app)
void
AudioStreamView::add_region_view_internal (boost::shared_ptr<Region> r, bool wait_for_waves)
{
AudioRegionView *region_view;
ENSURE_GUI_THREAD (bind (mem_fun (*this, &AudioStreamView::add_region_view), r));
boost::shared_ptr<AudioRegion> region = boost::dynamic_pointer_cast<AudioRegion> (r);
@ -135,19 +137,16 @@ AudioStreamView::add_region_view_internal (boost::shared_ptr<Region> r, bool wai
return;
}
AudioRegionView *region_view;
list<RegionView *>::iterator i;
for (i = region_views.begin(); i != region_views.end(); ++i) {
for (list<RegionView *>::iterator i = region_views.begin(); i != region_views.end(); ++i) {
if ((*i)->region() == r) {
/* great. we already have a AudioRegionView for this Region. use it again. */
(*i)->set_valid (true);
return;
}
}
switch (_trackview.audio_track()->mode()) {
case Normal:
region_view = new AudioRegionView (canvas_group, _trackview, region,
@ -168,30 +167,38 @@ AudioStreamView::add_region_view_internal (boost::shared_ptr<Region> r, bool wai
region_view->set_waveform_visible(_trackview.editor.show_waveforms());
/* catch regionview going away */
region->GoingAway.connect (bind (mem_fun (*this, &AudioStreamView::remove_region_view), boost::weak_ptr<Region> (r)));
region->GoingAway.connect (bind (mem_fun (*this, &AudioStreamView::remove_region_view), region));
RegionViewAdded (region_view);
}
void
AudioStreamView::remove_region_view (boost::shared_ptr<Region> r)
AudioStreamView::remove_region_view (boost::weak_ptr<Region> weak_r)
{
ENSURE_GUI_THREAD (bind (mem_fun (*this, &AudioStreamView::remove_region_view), r));
ENSURE_GUI_THREAD (bind (mem_fun (*this, &AudioStreamView::remove_region_view), weak_r));
for (list<CrossfadeView *>::iterator i = crossfade_views.begin(); i != crossfade_views.end();) {
list<CrossfadeView*>::iterator tmp;
tmp = i;
++tmp;
boost::shared_ptr<AudioRegion> ar = boost::dynamic_pointer_cast<AudioRegion>(r);
if (ar && (*i)->crossfade.involves (ar)) {
delete *i;
crossfade_views.erase (i);
boost::shared_ptr<Region> r (weak_r.lock());
if (!r) {
return;
}
if (!_trackview.session().deletion_in_progress()) {
for (list<CrossfadeView *>::iterator i = crossfade_views.begin(); i != crossfade_views.end();) {
list<CrossfadeView*>::iterator tmp;
tmp = i;
++tmp;
boost::shared_ptr<AudioRegion> ar = boost::dynamic_pointer_cast<AudioRegion>(r);
if (ar && (*i)->crossfade.involves (ar)) {
delete *i;
crossfade_views.erase (i);
}
i = tmp;
}
i = tmp;
}
StreamView::remove_region_view(r);
@ -405,13 +412,15 @@ AudioStreamView::setup_rec_box ()
boost::shared_ptr<AudioFileSource> src = boost::static_pointer_cast<AudioFileSource> (ads->write_source (n));
if (src) {
sources.push_back (src);
rec_data_ready_connections.push_back (src->PeakRangeReady.connect (bind (mem_fun (*this, &AudioStreamView::rec_peak_range_ready), src)));
rec_data_ready_connections.push_back (src->PeakRangeReady.connect (bind
(mem_fun (*this, &AudioStreamView::rec_peak_range_ready), boost::weak_ptr<Source>(src))));
}
}
// handle multi
jack_nframes_t start = 0;
nframes_t start = 0;
if (rec_regions.size() > 0) {
start = rec_regions.back()->start() + _trackview.get_diskstream()->get_captured_frames(rec_regions.size()-1);
}
@ -420,11 +429,8 @@ AudioStreamView::setup_rec_box ()
(RegionFactory::create (sources, start, 1 , "", 0, (Region::Flag)(Region::DefaultFlags | Region::DoNotSaveState), false)));
assert(region);
region->set_position (_trackview.session().transport_frame(), this);
rec_regions.push_back (region);
// rec regions are destroyed in setup_rec_box
/* we add the region later */
}
/* start a new rec box */
@ -433,7 +439,7 @@ AudioStreamView::setup_rec_box ()
at = _trackview.audio_track(); /* we know what it is already */
boost::shared_ptr<AudioDiskstream> ds = at->audio_diskstream();
jack_nframes_t frame_pos = ds->current_capture_start ();
nframes_t frame_pos = ds->current_capture_start ();
gdouble xstart = _trackview.editor.frame_to_pixel (frame_pos);
gdouble xend;
uint32_t fill_color;
@ -503,12 +509,15 @@ AudioStreamView::setup_rec_box ()
last_rec_data_frame = 0;
/* remove temp regions */
for (list<boost::shared_ptr<Region> >::iterator iter = rec_regions.begin(); iter != rec_regions.end();) {
for (list<boost::shared_ptr<Region> >::iterator iter = rec_regions.begin(); iter != rec_regions.end(); ) {
list<boost::shared_ptr<Region> >::iterator tmp;
tmp = iter;
++tmp;
(*iter)->drop_references ();
iter = tmp;
}
@ -537,18 +546,24 @@ AudioStreamView::foreach_crossfadeview (void (CrossfadeView::*pmf)(void))
}
void
AudioStreamView::rec_peak_range_ready (jack_nframes_t start, jack_nframes_t cnt, boost::shared_ptr<Source> src)
AudioStreamView::rec_peak_range_ready (nframes_t start, nframes_t cnt, boost::weak_ptr<Source> weak_src)
{
// this is called from the peak building thread
ENSURE_GUI_THREAD(bind (mem_fun (*this, &AudioStreamView::rec_peak_range_ready), start, cnt, weak_src));
boost::shared_ptr<Source> src (weak_src.lock());
ENSURE_GUI_THREAD(bind (mem_fun (*this, &AudioStreamView::rec_peak_range_ready), start, cnt, src));
if (!src) {
return;
}
// this is called from the peak building thread
if (rec_data_ready_map.size() == 0 || start+cnt > last_rec_data_frame) {
last_rec_data_frame = start + cnt;
}
rec_data_ready_map[src] = true;
if (rec_data_ready_map.size() == _trackview.get_diskstream()->n_channels().get(DataType::AUDIO)) {
this->update_rec_regions ();
rec_data_ready_map.clear();
@ -580,13 +595,13 @@ AudioStreamView::update_rec_regions ()
continue;
}
jack_nframes_t origlen = region->length();
nframes_t origlen = region->length();
if (region == rec_regions.back() && rec_active) {
if (last_rec_data_frame > region->start()) {
jack_nframes_t nlen = last_rec_data_frame - region->start();
nframes_t nlen = last_rec_data_frame - region->start();
if (nlen != region->length()) {
@ -609,7 +624,7 @@ AudioStreamView::update_rec_regions ()
} else {
jack_nframes_t nlen = _trackview.get_diskstream()->get_captured_frames(n);
nframes_t nlen = _trackview.get_diskstream()->get_captured_frames(n);
if (nlen != region->length()) {

View File

@ -23,6 +23,8 @@
#include <map>
#include <cmath>
#include <boost/weak_ptr.hpp>
#include <ardour/location.h>
#include "enums.h"
#include "simplerect.h"
@ -76,13 +78,12 @@ class AudioStreamView : public StreamView
private:
void setup_rec_box ();
void rec_peak_range_ready (jack_nframes_t start, jack_nframes_t cnt, boost::shared_ptr<ARDOUR::Source> src);
void rec_peak_range_ready (nframes_t start, nframes_t cnt, boost::weak_ptr<ARDOUR::Source> src);
void update_rec_regions ();
void add_region_view_internal (boost::shared_ptr<ARDOUR::Region>, bool wait_for_waves);
void remove_region_view (boost::shared_ptr<ARDOUR::Region> );
void remove_region_view (boost::weak_ptr<ARDOUR::Region> );
void remove_audio_region_view (boost::shared_ptr<ARDOUR::AudioRegion> );
void remove_audio_rec_region (boost::shared_ptr<ARDOUR::AudioRegion>);
void undisplay_diskstream ();
void redisplay_diskstream ();

View File

@ -504,14 +504,14 @@ AutomationLine::model_representation (ControlPoint& cp, ModelRepresentation& mr)
line to convert them to something relevant.
*/
mr.xval = (jack_nframes_t) floor (cp.get_x());
mr.xval = (nframes_t) floor (cp.get_x());
mr.yval = 1.0 - (cp.get_y() / _height);
/* if xval has not changed, set it directly from the model to avoid rounding errors */
if (mr.xval == trackview.editor.frame_to_unit((*cp.model)->when)) {
mr.xval = (jack_nframes_t) (*cp.model)->when;
mr.xval = (nframes_t) (*cp.model)->when;
} else {
mr.xval = trackview.editor.unit_to_frame (mr.xval);
}
@ -526,7 +526,7 @@ AutomationLine::model_representation (ControlPoint& cp, ModelRepresentation& mr)
/* part 2: find out where the model point is now
*/
mr.xpos = (jack_nframes_t) (*cp.model)->when;
mr.xpos = (nframes_t) (*cp.model)->when;
mr.ypos = (*cp.model)->value;
/* part 3: get the position of the visual control
@ -545,7 +545,7 @@ AutomationLine::model_representation (ControlPoint& cp, ModelRepresentation& mr)
after = nth (cp.view_index + 1);
if (before) {
mr.xmin = (jack_nframes_t) (*before->model)->when;
mr.xmin = (nframes_t) (*before->model)->when;
mr.ymin = (*before->model)->value;
mr.start = before->model;
++mr.start;
@ -899,7 +899,7 @@ AutomationLine::start_drag (ControlPoint* cp, float fraction)
}
void
AutomationLine::point_drag (ControlPoint& cp, jack_nframes_t x, float fraction, bool with_push)
AutomationLine::point_drag (ControlPoint& cp, nframes_t x, float fraction, bool with_push)
{
modify_view (cp, x, fraction, with_push);
drags++;
@ -1027,14 +1027,14 @@ AutomationLine::remove_point (ControlPoint& cp)
}
void
AutomationLine::get_selectables (jack_nframes_t& start, jack_nframes_t& end,
AutomationLine::get_selectables (nframes_t& start, nframes_t& end,
double botfrac, double topfrac, list<Selectable*>& results)
{
double top;
double bot;
jack_nframes_t nstart;
jack_nframes_t nend;
nframes_t nstart;
nframes_t nend;
bool collecting = false;
/* Curse X11 and its inverted coordinate system! */
@ -1047,7 +1047,7 @@ AutomationLine::get_selectables (jack_nframes_t& start, jack_nframes_t& end,
for (vector<ControlPoint*>::iterator i = control_points.begin(); i != control_points.end(); ++i) {
jack_nframes_t when = (jack_nframes_t) (*(*i)->model)->when;
nframes_t when = (nframes_t) (*(*i)->model)->when;
if (when >= start && when <= end) {
@ -1239,7 +1239,7 @@ AutomationLine::clear ()
void
AutomationLine::change_model (AutomationList::iterator i, double x, double y)
{
alist.modify (i, (jack_nframes_t) x, y);
alist.modify (i, (nframes_t) x, y);
}
void

View File

@ -96,7 +96,7 @@ class ControlPoint
ShapeType _shape;
};
class AutomationLine : public sigc::trackable, public PBD::StatefulDestructible
class AutomationLine : public PBD::StatefulDestructible
{
public:
AutomationLine (const string & name, TimeAxisView&, ArdourCanvas::Group&, ARDOUR::AutomationList&);
@ -107,7 +107,7 @@ class AutomationLine : public sigc::trackable, public PBD::StatefulDestructible
void clear();
void set_selected_points (PointSelection&);
void get_selectables (jack_nframes_t& start, jack_nframes_t& end,
void get_selectables (nframes_t& start, nframes_t& end,
double botfrac, double topfrac,
list<Selectable*>& results);
void get_inverted_selectables (Selection&, list<Selectable*>& results);
@ -118,7 +118,7 @@ class AutomationLine : public sigc::trackable, public PBD::StatefulDestructible
/* dragging API */
virtual void start_drag (ControlPoint*, float fraction);
virtual void point_drag(ControlPoint&, jack_nframes_t x, float, bool with_push);
virtual void point_drag(ControlPoint&, nframes_t x, float, bool with_push);
virtual void end_drag (ControlPoint*);
virtual void line_drag(uint32_t i1, uint32_t i2, float, bool with_push);
@ -224,13 +224,13 @@ class AutomationLine : public sigc::trackable, public PBD::StatefulDestructible
struct ModelRepresentation {
ARDOUR::AutomationList::iterator start;
ARDOUR::AutomationList::iterator end;
jack_nframes_t xpos;
nframes_t xpos;
double ypos;
jack_nframes_t xmin;
nframes_t xmin;
double ymin;
jack_nframes_t xmax;
nframes_t xmax;
double ymax;
jack_nframes_t xval;
nframes_t xval;
double yval;
};

View File

@ -8,13 +8,13 @@ class TimeAxisView;
struct AutomationSelectable : public Selectable
{
jack_nframes_t start;
jack_nframes_t end;
nframes_t start;
nframes_t end;
double low_fract;
double high_fract;
TimeAxisView& track;
AutomationSelectable (jack_nframes_t s, jack_nframes_t e, double l, double h, TimeAxisView& atv)
AutomationSelectable (nframes_t s, nframes_t e, double l, double h, TimeAxisView& atv)
: start (s), end (e), low_fract (l), high_fract (h), track (atv) {}
};

View File

@ -602,7 +602,7 @@ AutomationTimeAxisView::cut_copy_clear_objects_one (AutomationLine& line, PointS
}
bool
AutomationTimeAxisView::paste (jack_nframes_t pos, float times, Selection& selection, size_t nth)
AutomationTimeAxisView::paste (nframes_t pos, float times, Selection& selection, size_t nth)
{
bool ret = true;
@ -614,7 +614,7 @@ AutomationTimeAxisView::paste (jack_nframes_t pos, float times, Selection& selec
}
bool
AutomationTimeAxisView::paste_one (AutomationLine& line, jack_nframes_t pos, float times, Selection& selection, size_t nth)
AutomationTimeAxisView::paste_one (AutomationLine& line, nframes_t pos, float times, Selection& selection, size_t nth)
{
AutomationSelection::iterator p;
AutomationList& alist (line.the_list());
@ -670,7 +670,7 @@ AutomationTimeAxisView::remove_ghost (GhostRegion* gr)
}
void
AutomationTimeAxisView::get_selectables (jack_nframes_t start, jack_nframes_t end, double top, double bot, list<Selectable*>& results)
AutomationTimeAxisView::get_selectables (nframes_t start, nframes_t end, double top, double bot, list<Selectable*>& results)
{
if (!lines.empty() && touched (top, bot)) {
double topfrac;

View File

@ -48,7 +48,7 @@ class AutomationTimeAxisView : public TimeAxisView {
void set_samples_per_unit (double);
std::string name() const { return _name; }
virtual void add_automation_event (ArdourCanvas::Item *item, GdkEvent *event, jack_nframes_t, double) = 0;
virtual void add_automation_event (ArdourCanvas::Item *item, GdkEvent *event, nframes_t, double) = 0;
virtual void clear_lines ();
virtual void add_line (AutomationLine&);
@ -56,17 +56,17 @@ class AutomationTimeAxisView : public TimeAxisView {
vector<AutomationLine*> lines;
void set_selected_points (PointSelection&);
void get_selectables (jack_nframes_t start, jack_nframes_t end, double top, double bot, list<Selectable *>&);
void get_selectables (nframes_t start, nframes_t end, double top, double bot, list<Selectable *>&);
void get_inverted_selectables (Selection&, list<Selectable*>& results);
void show_timestretch (jack_nframes_t start, jack_nframes_t end) {}
void show_timestretch (nframes_t start, nframes_t end) {}
void hide_timestretch () {}
/* editing operations */
bool cut_copy_clear (Selection&, Editing::CutCopyOp);
bool cut_copy_clear_objects (PointSelection&, Editing::CutCopyOp);
bool paste (jack_nframes_t, float times, Selection&, size_t nth);
bool paste (nframes_t, float times, Selection&, size_t nth);
void reset_objects (PointSelection&);
void add_ghost (GhostRegion*);
@ -110,7 +110,7 @@ class AutomationTimeAxisView : public TimeAxisView {
bool cut_copy_clear_one (AutomationLine&, Selection&, Editing::CutCopyOp);
bool cut_copy_clear_objects_one (AutomationLine&, PointSelection&, Editing::CutCopyOp);
bool paste_one (AutomationLine&, jack_nframes_t, float times, Selection&, size_t nth);
bool paste_one (AutomationLine&, nframes_t, float times, Selection&, size_t nth);
void reset_objects_one (AutomationLine&, PointSelection&);
virtual void set_automation_state (ARDOUR::AutoState) = 0;

View File

@ -861,9 +861,12 @@ gnome_canvas_waveview_get_property (GObject *object,
case PROP_RECTIFIED:
g_value_set_boolean (value, waveview->rectified);
break;
case PROP_REGION_START:
g_value_set_uint (value, waveview->region_start);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;

View File

@ -632,7 +632,7 @@ CrossfadeEditor::redraw ()
return;
}
jack_nframes_t len = xfade.length ();
nframes_t len = xfade.length ();
fade[current].normative_curve.clear ();
fade[current].gain_curve.clear ();
@ -1078,12 +1078,12 @@ void
CrossfadeEditor::audition_both ()
{
AudioPlaylist& pl (session.the_auditioner()->prepare_playlist());
jack_nframes_t preroll;
jack_nframes_t postroll;
jack_nframes_t length;
jack_nframes_t left_start_offset;
jack_nframes_t right_length;
jack_nframes_t left_length;
nframes_t preroll;
nframes_t postroll;
nframes_t length;
nframes_t left_start_offset;
nframes_t right_length;
nframes_t left_length;
if (preroll_button.get_active()) {
preroll = ARDOUR_UI::instance()->preroll_clock.current_duration ();

View File

@ -108,8 +108,8 @@ CrossfadeView::reset_width_dependent_items (double pixel_width)
void
CrossfadeView::set_height (double height)
{
if (height == TimeAxisView::Smaller ||
height == TimeAxisView::Small)
if (height == TimeAxisView::hSmaller ||
height == TimeAxisView::hSmall)
TimeAxisViewItem::set_height (height - 3 );
else
TimeAxisViewItem::set_height (height - NAME_HIGHLIGHT_SIZE - 3 );
@ -149,14 +149,12 @@ CrossfadeView::redraw_curves ()
At "height - 3.0" the bottom of the crossfade touches the name highlight or the bottom of the track (if the
track is either Small or Smaller.
*/
switch(get_time_axis_view().height) {
case TimeAxisView::Smaller:
case TimeAxisView::Small:
h = get_time_axis_view().height - 3.0;
break;
default:
h = get_time_axis_view().height - NAME_HIGHLIGHT_SIZE - 3.0;
double tav_height = get_time_axis_view().height;
if (tav_height == TimeAxisView::hSmaller ||
tav_height == TimeAxisView::hSmall) {
h = tav_height - 3.0;
} else {
h = tav_height - NAME_HIGHLIGHT_SIZE - 3.0;
}
if (h < 0) {

View File

@ -20,11 +20,11 @@ struct DragInfo {
ArdourCanvas::Item* item;
ItemType item_type;
void* data;
jack_nframes_t last_frame_position;
nframes_t last_frame_position;
int32_t pointer_frame_offset;
jack_nframes_t grab_frame;
jack_nframes_t last_pointer_frame;
jack_nframes_t current_pointer_frame;
nframes_t grab_frame;
nframes_t last_pointer_frame;
nframes_t current_pointer_frame;
double grab_x, grab_y;
double cumulative_x_drag;
double cumulative_y_drag;

View File

@ -98,15 +98,6 @@ const double Editor::timebar_height = 15.0;
#include "editor_xpms"
static const int32_t slide_index = 0;
static const int32_t splice_index = 1;
static const gchar *edit_mode_strings[] = {
N_("Slide Edit"),
N_("Splice Edit"),
0
};
static const gchar *snap_type_strings[] = {
N_("None"),
N_("CD Frames"),
@ -138,11 +129,11 @@ static const gchar *snap_mode_strings[] = {
};
static const gchar *zoom_focus_strings[] = {
N_("Focus Left"),
N_("Focus Right"),
N_("Focus Center"),
N_("Focus Play"),
N_("Focus Edit"),
N_("Left"),
N_("Right"),
N_("Center"),
N_("Playhead"),
N_("Edit Cursor"),
0
};
@ -257,6 +248,7 @@ Editor::Editor (AudioEngine& eng)
bbt_beat_subdivision = 4;
canvas_width = 0;
canvas_height = 0;
autoscroll_active = false;
autoscroll_timeout_tag = -1;
interthread_progress_window = 0;
@ -674,8 +666,8 @@ Editor::Editor (AudioEngine& eng)
/* nudge stuff */
nudge_forward_button.add (*(manage (new Image (get_xpm("right_arrow.xpm")))));
nudge_backward_button.add (*(manage (new Image (get_xpm("left_arrow.xpm")))));
nudge_forward_button.add (*(manage (new Image (::get_icon("nudge_right")))));
nudge_backward_button.add (*(manage (new Image (::get_icon("nudge_left")))));
ARDOUR_UI::instance()->tooltips().set_tip (nudge_forward_button, _("Nudge Region/Selection Forwards"));
ARDOUR_UI::instance()->tooltips().set_tip (nudge_backward_button, _("Nudge Region/Selection Backwards"));
@ -701,9 +693,10 @@ Editor::Editor (AudioEngine& eng)
ControlProtocol::ZoomOut.connect (bind (mem_fun (*this, &Editor::temporal_zoom_step), true));
ControlProtocol::ScrollTimeline.connect (mem_fun (*this, &Editor::control_scroll));
Config->ParameterChanged.connect (mem_fun (*this, &Editor::parameter_changed));
constructed = true;
instant_save ();
}
Editor::~Editor()
@ -803,19 +796,19 @@ Editor::tie_vertical_scrolling ()
void
Editor::set_frames_per_unit (double fpu)
{
jack_nframes_t frames;
nframes_t frames;
if (fpu == frames_per_unit) {
return;
}
if (fpu < 1.0) {
fpu = 1.0;
if (fpu < 2.0) {
fpu = 2.0;
}
// convert fpu to frame count
frames = (jack_nframes_t) floor (fpu * canvas_width);
frames = (nframes_t) floor (fpu * canvas_width);
/* don't allow zooms that fit more than the maximum number
of frames into an 800 pixel wide space.
@ -825,6 +818,10 @@ Editor::set_frames_per_unit (double fpu)
return;
}
if (fpu == frames_per_unit) {
return;
}
frames_per_unit = fpu;
if (frames != zoom_range_clock.current_duration()) {
@ -870,12 +867,12 @@ Editor::instant_save ()
}
void
Editor::reposition_x_origin (jack_nframes_t frame)
Editor::reposition_x_origin (nframes_t frame)
{
if (frame != leftmost_frame) {
leftmost_frame = frame;
jack_nframes_t rightmost_frame = leftmost_frame + current_page_frames ();
nframes_t rightmost_frame = leftmost_frame + current_page_frames ();
if (rightmost_frame > last_canvas_frame) {
last_canvas_frame = rightmost_frame;
@ -909,10 +906,10 @@ Editor::zoom_adjustment_changed ()
if (fpu < 1.0) {
fpu = 1.0;
zoom_range_clock.set ((jack_nframes_t) floor (fpu * canvas_width));
zoom_range_clock.set ((nframes_t) floor (fpu * canvas_width));
} else if (fpu > session->current_end_frame() / canvas_width) {
fpu = session->current_end_frame() / canvas_width;
zoom_range_clock.set ((jack_nframes_t) floor (fpu * canvas_width));
zoom_range_clock.set ((nframes_t) floor (fpu * canvas_width));
}
temporal_zoom (fpu);
@ -928,14 +925,14 @@ Editor::control_scroll (float fraction)
}
double step = fraction * current_page_frames();
jack_nframes_t target;
nframes_t target;
if ((fraction < 0.0f) && (session->transport_frame() < (jack_nframes_t) fabs(step))) {
if ((fraction < 0.0f) && (session->transport_frame() < (nframes_t) fabs(step))) {
target = 0;
} else if ((fraction > 0.0f) && (max_frames - session->transport_frame() < step)) {
target = (max_frames - (current_page_frames()*2)); // allow room for slop in where the PH is on the screen
} else {
target = (session->transport_frame() + (jack_nframes_t) floor ((fraction * current_page_frames())));
target = (session->transport_frame() + (nframes_t) floor ((fraction * current_page_frames())));
}
/* move visuals, we'll catch up with it later */
@ -959,7 +956,7 @@ Editor::control_scroll (float fraction)
}
bool
Editor::deferred_control_scroll (jack_nframes_t target)
Editor::deferred_control_scroll (nframes_t target)
{
session->request_locate (target);
return false;
@ -969,14 +966,14 @@ void
Editor::canvas_horizontally_scrolled ()
{
leftmost_frame = (jack_nframes_t) floor (horizontal_adjustment.get_value() * frames_per_unit);
leftmost_frame = (nframes_t) floor (horizontal_adjustment.get_value() * frames_per_unit);
update_fixed_rulers ();
tempo_map_changed (Change (0));
}
void
Editor::reposition_and_zoom (jack_nframes_t frame, double nfpu)
Editor::reposition_and_zoom (nframes_t frame, double nfpu)
{
if (!repos_zoom_queued) {
repos_zoom_queued = true;
@ -985,7 +982,7 @@ Editor::reposition_and_zoom (jack_nframes_t frame, double nfpu)
}
gint
Editor::deferred_reposition_and_zoom (jack_nframes_t frame, double nfpu)
Editor::deferred_reposition_and_zoom (nframes_t frame, double nfpu)
{
set_frames_per_unit (nfpu);
@ -1002,39 +999,6 @@ Editor::on_realize ()
Realized ();
}
void
Editor::queue_session_control_changed (Session::ControlType t)
{
Gtkmm2ext::UI::instance()->call_slot (bind (mem_fun(*this, &Editor::session_control_changed), t));
}
void
Editor::session_control_changed (Session::ControlType t)
{
// right now we're only tracking some state here
switch (t) {
case Session::AutoLoop:
update_loop_range_view (true);
break;
case Session::PunchIn:
case Session::PunchOut:
update_punch_range_view (true);
break;
case Session::LayeringModel:
update_layering_model ();
break;
case Session::SmpteMode:
update_smpte_mode ();
break;
default:
break;
}
}
void
Editor::start_scrolling ()
{
@ -1049,7 +1013,7 @@ Editor::stop_scrolling ()
}
void
Editor::map_position_change (jack_nframes_t frame)
Editor::map_position_change (nframes_t frame)
{
ENSURE_GUI_THREAD (bind (mem_fun(*this, &Editor::map_position_change), frame));
@ -1062,7 +1026,7 @@ Editor::map_position_change (jack_nframes_t frame)
}
void
Editor::center_screen (jack_nframes_t frame)
Editor::center_screen (nframes_t frame)
{
double page = canvas_width * frames_per_unit;
@ -1075,12 +1039,12 @@ Editor::center_screen (jack_nframes_t frame)
}
void
Editor::center_screen_internal (jack_nframes_t frame, float page)
Editor::center_screen_internal (nframes_t frame, float page)
{
page /= 2;
if (frame > page) {
frame -= (jack_nframes_t) page;
frame -= (nframes_t) page;
} else {
frame = 0;
}
@ -1093,7 +1057,7 @@ Editor::handle_new_duration ()
{
ENSURE_GUI_THREAD (mem_fun (*this, &Editor::handle_new_duration));
jack_nframes_t new_end = session->get_maximum_extent() + (jack_nframes_t) floorf (current_page_frames() * 0.10f);
nframes_t new_end = session->get_maximum_extent() + (nframes_t) floorf (current_page_frames() * 0.10f);
if (new_end > last_canvas_frame) {
last_canvas_frame = new_end;
@ -1174,10 +1138,6 @@ Editor::connect_to_session (Session *t)
session_connections.push_back (session->RegionHiddenChange.connect (mem_fun(*this, &Editor::region_hidden)));
session_connections.push_back (session->SMPTEOffsetChanged.connect (mem_fun(*this, &Editor::update_just_smpte)));
session_connections.push_back (session->SMPTETypeChanged.connect (mem_fun(*this, &Editor::update_just_smpte)));
session_connections.push_back (session->SMPTETypeChanged.connect (mem_fun(*this, &Editor::update_smpte_mode)));
session_connections.push_back (session->PullupChanged.connect (mem_fun(*this, &Editor::update_video_pullup)));
session_connections.push_back (session->tempo_map().StateChanged.connect (mem_fun(*this, &Editor::tempo_map_changed)));
@ -1193,16 +1153,6 @@ Editor::connect_to_session (Session *t)
analysis_window->set_session (session);
#endif
switch (session->get_edit_mode()) {
case Splice:
edit_mode_selector.set_active_text (edit_mode_strings[splice_index]);
break;
case Slide:
edit_mode_selector.set_active_text (edit_mode_strings[slide_index]);
break;
}
Location* loc = session->locations()->auto_loop_location();
if (loc == 0) {
loc = new Location (0, session->current_end_frame(), _("Loop"),(Location::Flags) (Location::IsAutoLoop | Location::IsHidden));
@ -1231,10 +1181,8 @@ Editor::connect_to_session (Session *t)
loc->set_name (_("Punch"));
}
update_loop_range_view (true);
update_punch_range_view (true);
Config->map_parameters (mem_fun (*this, &Editor::parameter_changed));
session->ControlChanged.connect (mem_fun(*this, &Editor::queue_session_control_changed));
session->StateSaved.connect (mem_fun(*this, &Editor::session_state_saved));
refresh_location_display ();
@ -1244,35 +1192,6 @@ Editor::connect_to_session (Session *t)
session->locations()->StateChanged.connect (mem_fun(*this, &Editor::refresh_location_display_s));
session->locations()->end_location()->changed.connect (mem_fun(*this, &Editor::end_location_changed));
bool yn;
RefPtr<Action> act;
act = ActionManager::get_action (X_("Editor"), X_("toggle-xfades-active"));
if (act) {
RefPtr<ToggleAction> tact = RefPtr<ToggleAction>::cast_dynamic(act);
/* do it twice to force the change */
yn = session->get_crossfades_active();
tact->set_active (!yn);
tact->set_active (yn);
}
act = ActionManager::get_action (X_("Editor"), X_("toggle-auto-xfades"));
if (act) {
RefPtr<ToggleAction> tact = RefPtr<ToggleAction>::cast_dynamic(act);
/* do it twice to force the change */
yn = Config->get_auto_xfade ();
tact->set_active (!yn);
tact->set_active (yn);
}
/* xfade visibility state set from editor::set_state() */
update_crossfade_model();
update_layering_model();
update_smpte_mode();
update_video_pullup();
handle_new_duration ();
redisplay_regions ();
@ -1439,10 +1358,10 @@ Editor::popup_fade_context_menu (int button, int32_t time, ArdourCanvas::Item* i
}
void
Editor::popup_track_context_menu (int button, int32_t time, ItemType item_type, bool with_selection, jack_nframes_t frame)
Editor::popup_track_context_menu (int button, int32_t time, ItemType item_type, bool with_selection, nframes_t frame)
{
using namespace Menu_Helpers;
Menu* (Editor::*build_menu_function)(jack_nframes_t);
Menu* (Editor::*build_menu_function)(nframes_t);
Menu *menu;
switch (item_type) {
@ -1554,7 +1473,7 @@ Editor::popup_track_context_menu (int button, int32_t time, ItemType item_type,
}
Menu*
Editor::build_track_context_menu (jack_nframes_t ignored)
Editor::build_track_context_menu (nframes_t ignored)
{
using namespace Menu_Helpers;
@ -1566,7 +1485,7 @@ Editor::build_track_context_menu (jack_nframes_t ignored)
}
Menu*
Editor::build_track_bus_context_menu (jack_nframes_t ignored)
Editor::build_track_bus_context_menu (nframes_t ignored)
{
using namespace Menu_Helpers;
@ -1578,7 +1497,7 @@ Editor::build_track_bus_context_menu (jack_nframes_t ignored)
}
Menu*
Editor::build_track_region_context_menu (jack_nframes_t frame)
Editor::build_track_region_context_menu (nframes_t frame)
{
using namespace Menu_Helpers;
MenuList& edit_items = track_region_context_menu.items();
@ -1591,7 +1510,7 @@ Editor::build_track_region_context_menu (jack_nframes_t frame)
Playlist* pl;
if ((ds = atv->get_diskstream()) && ((pl = ds->playlist()))) {
Playlist::RegionList* regions = pl->regions_at ((jack_nframes_t) floor ( (double)frame * ds->speed()));
Playlist::RegionList* regions = pl->regions_at ((nframes_t) floor ( (double)frame * ds->speed()));
for (Playlist::RegionList::iterator i = regions->begin(); i != regions->end(); ++i) {
add_region_context_items (atv->audio_view(), (*i), edit_items);
}
@ -1605,7 +1524,7 @@ Editor::build_track_region_context_menu (jack_nframes_t frame)
}
Menu*
Editor::build_track_crossfade_context_menu (jack_nframes_t frame)
Editor::build_track_crossfade_context_menu (nframes_t frame)
{
using namespace Menu_Helpers;
MenuList& edit_items = track_crossfade_context_menu.items();
@ -1685,7 +1604,7 @@ Editor::analyze_range_selection()
Menu*
Editor::build_track_selection_context_menu (jack_nframes_t ignored)
Editor::build_track_selection_context_menu (nframes_t ignored)
{
using namespace Menu_Helpers;
MenuList& edit_items = track_selection_context_menu.items();
@ -2248,7 +2167,7 @@ Editor::get_state ()
XMLNode* node = new XMLNode ("Editor");
char buf[32];
_id.print (buf);
_id.print (buf, sizeof (buf));
node->add_property ("id", buf);
if (is_realized()) {
@ -2330,7 +2249,7 @@ Editor::trackview_by_y_position (double y)
}
void
Editor::snap_to (jack_nframes_t& start, int32_t direction, bool for_mark)
Editor::snap_to (nframes_t& start, int32_t direction, bool for_mark)
{
Location* before = 0;
Location* after = 0;
@ -2339,10 +2258,10 @@ Editor::snap_to (jack_nframes_t& start, int32_t direction, bool for_mark)
return;
}
const jack_nframes_t one_second = session->frame_rate();
const jack_nframes_t one_minute = session->frame_rate() * 60;
const nframes_t one_second = session->frame_rate();
const nframes_t one_minute = session->frame_rate() * 60;
jack_nframes_t presnap = start;
nframes_t presnap = start;
switch (snap_type) {
case SnapToFrame:
@ -2350,16 +2269,16 @@ Editor::snap_to (jack_nframes_t& start, int32_t direction, bool for_mark)
case SnapToCDFrame:
if (direction) {
start = (jack_nframes_t) ceil ((double) start / (one_second / 75)) * (one_second / 75);
start = (nframes_t) ceil ((double) start / (one_second / 75)) * (one_second / 75);
} else {
start = (jack_nframes_t) floor ((double) start / (one_second / 75)) * (one_second / 75);
start = (nframes_t) floor ((double) start / (one_second / 75)) * (one_second / 75);
}
break;
case SnapToSMPTEFrame:
if (direction) {
start = (jack_nframes_t) (ceil ((double) start / session->frames_per_smpte_frame()) * session->frames_per_smpte_frame());
start = (nframes_t) (ceil ((double) start / session->frames_per_smpte_frame()) * session->frames_per_smpte_frame());
} else {
start = (jack_nframes_t) (floor ((double) start / session->frames_per_smpte_frame()) * session->frames_per_smpte_frame());
start = (nframes_t) (floor ((double) start / session->frames_per_smpte_frame()) * session->frames_per_smpte_frame());
}
break;
@ -2371,9 +2290,9 @@ Editor::snap_to (jack_nframes_t& start, int32_t direction, bool for_mark)
start -= session->smpte_offset ();
}
if (direction > 0) {
start = (jack_nframes_t) ceil ((double) start / one_second) * one_second;
start = (nframes_t) ceil ((double) start / one_second) * one_second;
} else {
start = (jack_nframes_t) floor ((double) start / one_second) * one_second;
start = (nframes_t) floor ((double) start / one_second) * one_second;
}
if (session->smpte_offset_negative())
@ -2392,9 +2311,9 @@ Editor::snap_to (jack_nframes_t& start, int32_t direction, bool for_mark)
start -= session->smpte_offset ();
}
if (direction) {
start = (jack_nframes_t) ceil ((double) start / one_minute) * one_minute;
start = (nframes_t) ceil ((double) start / one_minute) * one_minute;
} else {
start = (jack_nframes_t) floor ((double) start / one_minute) * one_minute;
start = (nframes_t) floor ((double) start / one_minute) * one_minute;
}
if (session->smpte_offset_negative())
{
@ -2406,17 +2325,17 @@ Editor::snap_to (jack_nframes_t& start, int32_t direction, bool for_mark)
case SnapToSeconds:
if (direction) {
start = (jack_nframes_t) ceil ((double) start / one_second) * one_second;
start = (nframes_t) ceil ((double) start / one_second) * one_second;
} else {
start = (jack_nframes_t) floor ((double) start / one_second) * one_second;
start = (nframes_t) floor ((double) start / one_second) * one_second;
}
break;
case SnapToMinutes:
if (direction) {
start = (jack_nframes_t) ceil ((double) start / one_minute) * one_minute;
start = (nframes_t) ceil ((double) start / one_minute) * one_minute;
} else {
start = (jack_nframes_t) floor ((double) start / one_minute) * one_minute;
start = (nframes_t) floor ((double) start / one_minute) * one_minute;
}
break;
@ -2497,7 +2416,7 @@ Editor::snap_to (jack_nframes_t& start, int32_t direction, bool for_mark)
case SnapToRegionSync:
case SnapToRegionBoundary:
if (!region_boundary_cache.empty()) {
vector<jack_nframes_t>::iterator i;
vector<nframes_t>::iterator i;
if (direction > 0) {
i = std::upper_bound (region_boundary_cache.begin(), region_boundary_cache.end(), start);
@ -2549,22 +2468,22 @@ Editor::setup_toolbar ()
vector<ToggleButton *> mouse_mode_buttons;
mouse_move_button.add (*(manage (new Image (get_xpm("tool_object.xpm")))));
mouse_move_button.add (*(manage (new Image (::get_icon("tool_object")))));
mouse_move_button.set_relief(Gtk::RELIEF_NONE);
mouse_mode_buttons.push_back (&mouse_move_button);
mouse_select_button.add (*(manage (new Image (get_xpm("tool_range.xpm")))));
mouse_select_button.set_relief(Gtk::RELIEF_NONE);
mouse_mode_buttons.push_back (&mouse_select_button);
mouse_gain_button.add (*(manage (new Image (get_xpm("tool_gain.xpm")))));
mouse_gain_button.add (*(manage (new Image (::get_icon("tool_gain")))));
mouse_gain_button.set_relief(Gtk::RELIEF_NONE);
mouse_mode_buttons.push_back (&mouse_gain_button);
mouse_zoom_button.add (*(manage (new Image (get_xpm("tool_zoom.xpm")))));
mouse_zoom_button.add (*(manage (new Image (::get_icon("tool_zoom")))));
mouse_zoom_button.set_relief(Gtk::RELIEF_NONE);
mouse_mode_buttons.push_back (&mouse_zoom_button);
mouse_timefx_button.add (*(manage (new Image (get_xpm("tool_stretch.xpm")))));
mouse_timefx_button.add (*(manage (new Image (::get_icon("tool_stretch")))));
mouse_timefx_button.set_relief(Gtk::RELIEF_NONE);
mouse_mode_buttons.push_back (&mouse_timefx_button);
mouse_audition_button.add (*(manage (new Image (get_xpm("tool_audition.xpm")))));
mouse_audition_button.add (*(manage (new Image (::get_icon("tool_audition")))));
mouse_audition_button.set_relief(Gtk::RELIEF_NONE);
mouse_mode_buttons.push_back (&mouse_audition_button);
@ -2582,9 +2501,13 @@ Editor::setup_toolbar ()
mouse_mode_button_box.pack_start(mouse_audition_button, true, true);
mouse_mode_button_box.set_homogeneous(true);
vector<string> edit_mode_strings;
edit_mode_strings.push_back (edit_mode_to_string (Splice));
edit_mode_strings.push_back (edit_mode_to_string (Slide));
edit_mode_selector.set_name ("EditModeSelector");
Gtkmm2ext::set_size_request_to_display_given_text (edit_mode_selector, "Splice Edit", 2+FUDGE, 10);
set_popdown_strings (edit_mode_selector, internationalize (edit_mode_strings));
Gtkmm2ext::set_size_request_to_display_given_text (edit_mode_selector, longest (edit_mode_strings).c_str(), 2+FUDGE, 10);
set_popdown_strings (edit_mode_selector, edit_mode_strings);
edit_mode_selector.signal_changed().connect (mem_fun(*this, &Editor::edit_mode_selection_done));
mode_box->pack_start(edit_mode_selector);
@ -2641,17 +2564,17 @@ Editor::setup_toolbar ()
zoom_box.set_border_width (2);
zoom_in_button.set_name ("EditorTimeButton");
zoom_in_button.add (*(manage (new Image (get_xpm("zoom_in.xpm")))));
zoom_in_button.add (*(manage (new Image (::get_icon("zoom_in")))));
zoom_in_button.signal_clicked().connect (bind (mem_fun(*this, &Editor::temporal_zoom_step), false));
ARDOUR_UI::instance()->tooltips().set_tip (zoom_in_button, _("Zoom In"));
zoom_out_button.set_name ("EditorTimeButton");
zoom_out_button.add (*(manage (new Image (get_xpm("zoom_out.xpm")))));
zoom_out_button.add (*(manage (new Image (::get_icon("zoom_out")))));
zoom_out_button.signal_clicked().connect (bind (mem_fun(*this, &Editor::temporal_zoom_step), true));
ARDOUR_UI::instance()->tooltips().set_tip (zoom_out_button, _("Zoom Out"));
zoom_out_full_button.set_name ("EditorTimeButton");
zoom_out_full_button.add (*(manage (new Image (get_xpm("zoom_full.xpm")))));
zoom_out_full_button.add (*(manage (new Image (::get_icon("zoom_full")))));
zoom_out_full_button.signal_clicked().connect (mem_fun(*this, &Editor::temporal_zoom_session));
ARDOUR_UI::instance()->tooltips().set_tip (zoom_out_full_button, _("Zoom to Session"));
@ -2666,6 +2589,7 @@ Editor::setup_toolbar ()
Gtkmm2ext::set_size_request_to_display_given_text (zoom_focus_selector, "Focus Center", 2+FUDGE, 0);
set_popdown_strings (zoom_focus_selector, internationalize (zoom_focus_strings));
zoom_focus_selector.signal_changed().connect (mem_fun(*this, &Editor::zoom_focus_selection_done));
ARDOUR_UI::instance()->tooltips().set_tip (zoom_focus_selector, _("Zoom focus"));
zoom_box.pack_start (zoom_focus_selector, false, false);
@ -2942,7 +2866,7 @@ Editor::set_selected_control_point_from_click (bool press, Selection::Operation
/* select this point and any others that it represents */
double y1, y2;
jack_nframes_t x1, x2;
nframes_t x1, x2;
x1 = pixel_to_frame (clicked_control_point->get_x() - 10);
x2 = pixel_to_frame (clicked_control_point->get_x() + 10);
@ -3125,8 +3049,8 @@ Editor::set_selected_regionview_from_click (bool press, Selection::Operation op,
} else if (op == Selection::Extend) {
list<Selectable*> results;
jack_nframes_t last_frame;
jack_nframes_t first_frame;
nframes_t last_frame;
nframes_t first_frame;
/* 1. find the last selected regionview in the track that was clicked in */
@ -3522,7 +3446,7 @@ Editor::edit_mode_selection_done ()
mode = Slide;
}
session->set_edit_mode (mode);
Config->set_edit_mode (mode);
}
void
@ -3904,10 +3828,10 @@ Editor::playlist_selector () const
return *_playlist_selector;
}
jack_nframes_t
Editor::get_nudge_distance (jack_nframes_t pos, jack_nframes_t& next)
nframes_t
Editor::get_nudge_distance (nframes_t pos, nframes_t& next)
{
jack_nframes_t ret;
nframes_t ret;
ret = nudge_clock.current_duration (pos);
next = ret + 1; /* XXXX fix me */
@ -3957,7 +3881,7 @@ Editor::playlist_deletion_dialog (Playlist* pl)
}
bool
Editor::audio_region_selection_covers (jack_nframes_t where)
Editor::audio_region_selection_covers (nframes_t where)
{
for (RegionSelection::iterator a = selection->regions.begin(); a != selection->regions.end(); ++a) {
if ((*a)->region()->covers (where)) {
@ -4149,131 +4073,3 @@ Editor::on_key_press_event (GdkEventKey* ev)
return key_press_focus_accelerator_handler (*this, ev);
}
void
Editor::update_smpte_mode ()
{
ENSURE_GUI_THREAD(mem_fun(*this, &Editor::update_smpte_mode));
RefPtr<Action> act;
float frames = session->smpte_frames_per_second;
bool drop = session->smpte_drop_frames;
if ((frames < 23.976 * 1.0005) && !drop)
act = ActionManager::get_action (X_("Editor"), X_("Smpte23976"));
else if ((frames < 24 * 1.0005) && !drop)
act = ActionManager::get_action (X_("Editor"), X_("Smpte24"));
else if ((frames < 24.976 * 1.0005) && !drop)
act = ActionManager::get_action (X_("Editor"), X_("Smpte24976"));
else if ((frames < 25 * 1.0005) && !drop)
act = ActionManager::get_action (X_("Editor"), X_("Smpte25"));
else if ((frames < 29.97 * 1.0005) && !drop)
act = ActionManager::get_action (X_("Editor"), X_("Smpte2997"));
else if ((frames < 29.97 * 1.0005) && drop)
act = ActionManager::get_action (X_("Editor"), X_("Smpte2997drop"));
else if ((frames < 30 * 1.0005) && !drop)
act = ActionManager::get_action (X_("Editor"), X_("Smpte30"));
else if ((frames < 30 * 1.0005) && drop)
act = ActionManager::get_action (X_("Editor"), X_("Smpte30drop"));
else if ((frames < 59.94 * 1.0005) && !drop)
act = ActionManager::get_action (X_("Editor"), X_("Smpte5994"));
else if ((frames < 60 * 1.0005) && !drop)
act = ActionManager::get_action (X_("Editor"), X_("Smpte60"));
else
cerr << "Unexpected SMPTE value (" << frames << (drop ? "drop" : "") << ") in update_smpte_mode. Menu is probably wrong\n" << endl;
if (act) {
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
if (ract && !ract->get_active()) {
ract->set_active (true);
}
}
}
void
Editor::update_video_pullup ()
{
ENSURE_GUI_THREAD (mem_fun(*this, &Editor::update_video_pullup));
RefPtr<Action> act;
float pullup = session->video_pullup;
if ( pullup < (-4.1667 - 0.1) * 0.99) {
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus4Minus1"));
} else if ( pullup < (-4.1667) * 0.99 ) {
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus4"));
} else if ( pullup < (-4.1667 + 0.1) * 0.99 ) {
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus4Plus1"));
} else if ( pullup < (-0.1) * 0.99 ) {
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus1"));
} else if (pullup > (4.1667 + 0.1) * 0.99 ) {
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus4Plus1"));
} else if ( pullup > (4.1667) * 0.99 ) {
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus4"));
} else if ( pullup > (4.1667 - 0.1) * 0.99) {
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus4Minus1"));
} else if ( pullup > (0.1) * 0.99 ) {
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus1"));
} else
act = ActionManager::get_action (X_("Editor"), X_("PullupNone"));
if (act) {
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
if (ract && !ract->get_active()) {
ract->set_active (true);
}
}
}
void
Editor::update_layering_model ()
{
RefPtr<Action> act;
switch (session->get_layer_model()) {
case Session::LaterHigher:
act = ActionManager::get_action (X_("Editor"), X_("LayerLaterHigher"));
break;
case Session::MoveAddHigher:
act = ActionManager::get_action (X_("Editor"), X_("LayerMoveAddHigher"));
break;
case Session::AddHigher:
act = ActionManager::get_action (X_("Editor"), X_("LayerAddHigher"));
break;
}
if (act) {
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
if (ract && !ract->get_active()) {
ract->set_active (true);
}
}
}
void
Editor::update_crossfade_model ()
{
RefPtr<Action> act;
switch (session->get_xfade_model()) {
case FullCrossfade:
act = ActionManager::get_action (X_("Editor"), X_("CrossfadesFull"));
break;
case ShortCrossfade:
act = ActionManager::get_action (X_("Editor"), X_("CrossfadesShort"));
break;
}
if (act) {
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
if (ract && !ract->get_active()) {
ract->set_active (true);
}
}
}

View File

@ -128,9 +128,9 @@ class Editor : public PublicEditor
void connect_to_session (ARDOUR::Session *);
ARDOUR::Session* current_session() const { return session; }
jack_nframes_t leftmost_position() const { return leftmost_frame; }
jack_nframes_t current_page_frames() const {
return (jack_nframes_t) floor (canvas_width * frames_per_unit);
nframes_t leftmost_position() const { return leftmost_frame; }
nframes_t current_page_frames() const {
return (nframes_t) floor (canvas_width * frames_per_unit);
}
void set_snap_to (Editing::SnapType);
@ -176,11 +176,11 @@ class Editor : public PublicEditor
void set_edit_menu (Gtk::Menu&);
jack_nframes_t unit_to_frame (double unit) {
return (jack_nframes_t) rint (unit * frames_per_unit);
nframes_t unit_to_frame (double unit) {
return (nframes_t) rint (unit * frames_per_unit);
}
double frame_to_unit (jack_nframes_t frame) {
double frame_to_unit (nframes_t frame) {
return rint ((double) frame / (double) frames_per_unit);
}
@ -195,7 +195,7 @@ class Editor : public PublicEditor
xscroll_adjustment.
*/
jack_nframes_t pixel_to_frame (double pixel) {
nframes_t pixel_to_frame (double pixel) {
/* pixel can be less than zero when motion events
are processed. since we've already run the world->canvas
@ -204,13 +204,13 @@ class Editor : public PublicEditor
*/
if (pixel >= 0) {
return (jack_nframes_t) rint (pixel * frames_per_unit * GNOME_CANVAS(track_canvas.gobj())->pixels_per_unit);
return (nframes_t) rint (pixel * frames_per_unit * GNOME_CANVAS(track_canvas.gobj())->pixels_per_unit);
} else {
return 0;
}
}
gulong frame_to_pixel (jack_nframes_t frame) {
gulong frame_to_pixel (nframes_t frame) {
return (gulong) rint ((frame / (frames_per_unit * GNOME_CANVAS(track_canvas.gobj())->pixels_per_unit)));
}
@ -263,7 +263,7 @@ class Editor : public PublicEditor
PlaylistSelector& playlist_selector() const;
void route_name_changed (TimeAxisView *);
gdouble frames_per_unit;
jack_nframes_t leftmost_frame;
nframes_t leftmost_frame;
void clear_playlist (ARDOUR::Playlist&);
void new_playlists ();
@ -298,9 +298,6 @@ class Editor : public PublicEditor
void toggle_waveforms_while_recording ();
void toggle_measure_visibility ();
void set_meter_falloff (int);
void set_meter_hold (int32_t);
/* SMPTE timecode & video sync */
void smpte_fps_chosen (ARDOUR::Session::SmpteFormat format);
@ -318,9 +315,8 @@ class Editor : public PublicEditor
void update_crossfade_model ();
void set_crossfade_model (ARDOUR::CrossfadeModel);
/* layers */
void set_layer_model (ARDOUR::Session::LayerModel);
void set_layer_model (ARDOUR::LayerModel);
void update_layering_model ();
/* redirect shared ops menu. caller must free returned menu */
@ -339,14 +335,14 @@ class Editor : public PublicEditor
bool new_regionviews_display_gain () { return _new_regionviews_show_envelope; }
void prepare_for_cleanup ();
void reposition_x_origin (jack_nframes_t sample);
void reposition_x_origin (nframes_t sample);
void maximise_editing_space();
void restore_editing_space();
protected:
void map_transport_state ();
void map_position_change (jack_nframes_t);
void map_position_change (nframes_t);
void on_realize();
@ -401,7 +397,7 @@ class Editor : public PublicEditor
void hide();
void show ();
void set_name (const string&);
void set_position (jack_nframes_t start, jack_nframes_t end = 0);
void set_position (nframes_t start, nframes_t end = 0);
void set_color_rgba (uint32_t);
};
@ -413,7 +409,7 @@ class Editor : public PublicEditor
void hide_marker (ArdourCanvas::Item*, GdkEvent*);
void clear_marker_display ();
void mouse_add_new_marker (jack_nframes_t where);
void mouse_add_new_marker (nframes_t where);
TimeAxisView* clicked_axisview;
RouteTimeAxisView* clicked_routeview;
@ -459,12 +455,12 @@ class Editor : public PublicEditor
Gtk::Menu * track_edit_playlist_submenu;
Gtk::Menu * track_selection_edit_playlist_submenu;
void popup_track_context_menu (int, int, ItemType, bool, jack_nframes_t);
Gtk::Menu* build_track_context_menu (jack_nframes_t);
Gtk::Menu* build_track_bus_context_menu (jack_nframes_t);
Gtk::Menu* build_track_region_context_menu (jack_nframes_t frame);
Gtk::Menu* build_track_crossfade_context_menu (jack_nframes_t);
Gtk::Menu* build_track_selection_context_menu (jack_nframes_t);
void popup_track_context_menu (int, int, ItemType, bool, nframes_t);
Gtk::Menu* build_track_context_menu (nframes_t);
Gtk::Menu* build_track_bus_context_menu (nframes_t);
Gtk::Menu* build_track_region_context_menu (nframes_t frame);
Gtk::Menu* build_track_crossfade_context_menu (nframes_t);
Gtk::Menu* build_track_selection_context_menu (nframes_t);
void add_dstream_context_items (Gtk::Menu_Helpers::MenuList&);
void add_bus_context_items (Gtk::Menu_Helpers::MenuList&);
void add_region_context_items (AudioStreamView*, boost::shared_ptr<ARDOUR::Region>, Gtk::Menu_Helpers::MenuList&);
@ -488,9 +484,7 @@ class Editor : public PublicEditor
ArdourCanvas::Text* verbose_canvas_cursor;
bool verbose_cursor_visible;
void session_control_changed (ARDOUR::Session::ControlType);
void queue_session_control_changed (ARDOUR::Session::ControlType);
void parameter_changed (const char *);
bool track_canvas_motion (GdkEvent*);
@ -546,7 +540,7 @@ class Editor : public PublicEditor
void update_just_smpte ();
void update_fixed_rulers ();
void update_tempo_based_rulers ();
void popup_ruler_menu (jack_nframes_t where = 0, ItemType type = RegionItem);
void popup_ruler_menu (nframes_t where = 0, ItemType type = RegionItem);
void update_ruler_visibility ();
void ruler_toggled (int);
gint ruler_label_button_release (GdkEventButton*);
@ -608,13 +602,13 @@ class Editor : public PublicEditor
Editor& editor;
ArdourCanvas::Points points;
ArdourCanvas::Line canvas_item;
jack_nframes_t current_frame;
nframes_t current_frame;
double length;
Cursor (Editor&, const string& color, bool (Editor::*)(GdkEvent*,ArdourCanvas::Item*));
~Cursor ();
void set_position (jack_nframes_t);
void set_position (nframes_t);
void set_length (double units);
void set_y_axis (double position);
};
@ -635,9 +629,9 @@ class Editor : public PublicEditor
void select_all_selectables_using_cursor (Cursor *, bool);
void select_all_selectables_between_cursors (Cursor *, Cursor *);
boost::shared_ptr<ARDOUR::Region> find_next_region (jack_nframes_t, ARDOUR::RegionPoint, int32_t dir, TrackViewList&, TimeAxisView ** = 0);
boost::shared_ptr<ARDOUR::Region> find_next_region (nframes_t, ARDOUR::RegionPoint, int32_t dir, TrackViewList&, TimeAxisView ** = 0);
vector<jack_nframes_t> region_boundary_cache;
vector<nframes_t> region_boundary_cache;
void build_region_boundary_cache ();
Gtk::VBox trackview_vpacker;
@ -665,7 +659,7 @@ class Editor : public PublicEditor
double canvas_width;
double canvas_height;
jack_nframes_t last_canvas_frame;
nframes_t last_canvas_frame;
bool track_canvas_map_handler (GdkEventAny*);
bool time_canvas_map_handler (GdkEventAny*);
@ -683,14 +677,14 @@ class Editor : public PublicEditor
Gtk::HBox edit_controls_hbox;
void control_scroll (float);
bool deferred_control_scroll (jack_nframes_t);
bool deferred_control_scroll (nframes_t);
sigc::connection control_scroll_connection;
void tie_vertical_scrolling ();
void canvas_horizontally_scrolled ();
void reposition_and_zoom (jack_nframes_t sample, double fpu);
gint deferred_reposition_and_zoom (jack_nframes_t sample, double fpu);
void reposition_and_zoom (nframes_t sample, double fpu);
gint deferred_reposition_and_zoom (nframes_t sample, double fpu);
void end_location_changed (ARDOUR::Location*);
bool repos_zoom_queued;
@ -702,14 +696,15 @@ class Editor : public PublicEditor
}
Gtk::TreeModelColumn<Glib::ustring> name;
Gtk::TreeModelColumn<boost::shared_ptr<ARDOUR::Region> > region;
Gtk::TreeModelColumn<Gdk::Color> color_;
Gtk::TreeModelColumn<Gdk::Color> color_;
};
RegionListDisplayModelColumns region_list_columns;
Gtkmm2ext::DnDTreeView region_list_display;
Glib::RefPtr<Gtk::TreeStore> region_list_model;
Glib::RefPtr<Gtk::ToggleAction> toggle_full_region_list_action;
Glib::RefPtr<Gtk::ToggleAction> toggle_show_auto_regions_action;
RegionListDisplayModelColumns region_list_columns;
Gtkmm2ext::DnDTreeView<boost::shared_ptr<ARDOUR::Region> > region_list_display;
Glib::RefPtr<Gtk::TreeStore> region_list_model;
Glib::RefPtr<Gtk::ToggleAction> toggle_full_region_list_action;
Glib::RefPtr<Gtk::ToggleAction> toggle_show_auto_regions_action;
void region_list_selection_changed ();
bool region_list_selection_filter (const Glib::RefPtr<Gtk::TreeModel>& model, const Gtk::TreeModel::Path& path, bool yn);
@ -772,7 +767,7 @@ class Editor : public PublicEditor
NamedSelectionDisplayModelColumns named_selection_columns;
Glib::RefPtr<Gtk::TreeStore> named_selection_model;
Gtkmm2ext::DnDTreeView named_selection_display;
Gtkmm2ext::DnDTreeView<ARDOUR::NamedSelection*> named_selection_display;
Gtk::ScrolledWindow named_selection_scroller;
void name_selection();
@ -806,9 +801,9 @@ class Editor : public PublicEditor
static void build_cursors ();
sigc::connection scroll_connection;
jack_nframes_t last_update_frame;
void center_screen (jack_nframes_t);
void center_screen_internal (jack_nframes_t, float);
nframes_t last_update_frame;
void center_screen (nframes_t);
void center_screen_internal (nframes_t, float);
void update_current_screen ();
@ -817,8 +812,8 @@ class Editor : public PublicEditor
void session_going_away ();
jack_nframes_t cut_buffer_start;
jack_nframes_t cut_buffer_length;
nframes_t cut_buffer_start;
nframes_t cut_buffer_length;
bool typed_event (ArdourCanvas::Item*, GdkEvent*, ItemType);
bool button_press_handler (ArdourCanvas::Item*, GdkEvent*, ItemType);
@ -831,7 +826,7 @@ class Editor : public PublicEditor
void register_actions ();
int ensure_cursor (jack_nframes_t* pos);
int ensure_cursor (nframes_t* pos);
void handle_new_region (boost::shared_ptr<ARDOUR::Region>);
void handle_region_removed (boost::shared_ptr<ARDOUR::Region>);
@ -848,7 +843,7 @@ class Editor : public PublicEditor
void cut_copy_ranges (Editing::CutCopyOp);
void mouse_paste ();
void paste_internal (jack_nframes_t position, float times);
void paste_internal (nframes_t position, float times);
/* EDITING OPERATIONS */
@ -860,16 +855,16 @@ class Editor : public PublicEditor
void lower_region ();
void lower_region_to_bottom ();
void split_region ();
void split_region_at (jack_nframes_t);
void split_regions_at (jack_nframes_t, RegionSelection&);
void split_region_at (nframes_t);
void split_regions_at (nframes_t, RegionSelection&);
void crop_region_to_selection ();
void set_a_regions_sync_position (boost::shared_ptr<ARDOUR::Region>, jack_nframes_t);
void set_a_regions_sync_position (boost::shared_ptr<ARDOUR::Region>, nframes_t);
void set_region_sync_from_edit_cursor ();
void remove_region_sync();
void align_selection (ARDOUR::RegionPoint, jack_nframes_t position);
void align_selection_relative (ARDOUR::RegionPoint point, jack_nframes_t position);
void align_region (boost::shared_ptr<ARDOUR::Region>, ARDOUR::RegionPoint point, jack_nframes_t position);
void align_region_internal (boost::shared_ptr<ARDOUR::Region>, ARDOUR::RegionPoint point, jack_nframes_t position);
void align_selection (ARDOUR::RegionPoint, nframes_t position);
void align_selection_relative (ARDOUR::RegionPoint point, nframes_t position);
void align_region (boost::shared_ptr<ARDOUR::Region>, ARDOUR::RegionPoint point, nframes_t position);
void align_region_internal (boost::shared_ptr<ARDOUR::Region>, ARDOUR::RegionPoint point, nframes_t position);
void remove_some_regions ();
void remove_clicked_region ();
void destroy_clicked_region ();
@ -927,8 +922,8 @@ class Editor : public PublicEditor
void temporal_zoom_selection ();
void temporal_zoom_session ();
void temporal_zoom (gdouble scale);
void temporal_zoom_by_frame (jack_nframes_t start, jack_nframes_t end, const string & op);
void temporal_zoom_to_frame (bool coarser, jack_nframes_t frame);
void temporal_zoom_by_frame (nframes_t start, nframes_t end, const string & op);
void temporal_zoom_to_frame (bool coarser, nframes_t frame);
void amplitude_zoom (gdouble scale);
void amplitude_zoom_step (bool in);
@ -938,13 +933,13 @@ class Editor : public PublicEditor
void add_external_audio_action (Editing::ImportMode);
void bring_in_external_audio (Editing::ImportMode mode, ARDOUR::AudioTrack*, jack_nframes_t& pos, bool prompt);
void do_import (vector<Glib::ustring> paths, bool split, Editing::ImportMode mode, ARDOUR::AudioTrack*, jack_nframes_t&, bool);
void do_embed (vector<Glib::ustring> paths, bool split, Editing::ImportMode mode, ARDOUR::AudioTrack*, jack_nframes_t&, bool);
int import_sndfile (Glib::ustring path, Editing::ImportMode mode, ARDOUR::AudioTrack* track, jack_nframes_t& pos);
void bring_in_external_audio (Editing::ImportMode mode, ARDOUR::AudioTrack*, nframes_t& pos, bool prompt);
void do_import (vector<Glib::ustring> paths, bool split, Editing::ImportMode mode, ARDOUR::AudioTrack*, nframes_t&, bool);
void do_embed (vector<Glib::ustring> paths, bool split, Editing::ImportMode mode, ARDOUR::AudioTrack*, nframes_t&, bool);
int import_sndfile (Glib::ustring path, Editing::ImportMode mode, ARDOUR::AudioTrack* track, nframes_t& pos);
int embed_sndfile (Glib::ustring path, bool split, bool multiple_files, bool& check_sample_rate, Editing::ImportMode mode,
ARDOUR::AudioTrack* track, jack_nframes_t& pos, bool prompt);
int finish_bringing_in_audio (boost::shared_ptr<ARDOUR::AudioRegion> region, uint32_t, uint32_t, ARDOUR::AudioTrack* track, jack_nframes_t& pos, Editing::ImportMode mode);
ARDOUR::AudioTrack* track, nframes_t& pos, bool prompt);
int finish_bringing_in_audio (boost::shared_ptr<ARDOUR::AudioRegion> region, uint32_t, uint32_t, ARDOUR::AudioTrack* track, nframes_t& pos, Editing::ImportMode mode);
/* generic interthread progress window */
@ -1025,7 +1020,7 @@ class Editor : public PublicEditor
void keyboard_selection_begin ();
void keyboard_selection_finish (bool add);
bool have_pending_keyboard_selection;
jack_nframes_t pending_keyboard_selection_start;
nframes_t pending_keyboard_selection_start;
boost::shared_ptr<ARDOUR::Region> select_region_for_operation (int dir, TimeAxisView **tv);
void extend_selection_to_end_of_region (bool next);
@ -1101,11 +1096,11 @@ class Editor : public PublicEditor
void remove_gain_control_point (ArdourCanvas::Item*, GdkEvent*);
void remove_control_point (ArdourCanvas::Item*, GdkEvent*);
void mouse_brush_insert_region (RegionView*, jack_nframes_t pos);
void brush (jack_nframes_t);
void mouse_brush_insert_region (RegionView*, nframes_t pos);
void brush (nframes_t);
void show_verbose_time_cursor (jack_nframes_t frame, double offset = 0, double xpos=-1, double ypos=-1);
void show_verbose_duration_cursor (jack_nframes_t start, jack_nframes_t end, double offset = 0, double xpos=-1, double ypos=-1);
void show_verbose_time_cursor (nframes_t frame, double offset = 0, double xpos=-1, double ypos=-1);
void show_verbose_duration_cursor (nframes_t start, nframes_t end, double offset = 0, double xpos=-1, double ypos=-1);
/* Canvas event handlers */
@ -1204,8 +1199,8 @@ class Editor : public PublicEditor
void new_tempo_section ();
void mouse_add_new_tempo_event (jack_nframes_t where);
void mouse_add_new_meter_event (jack_nframes_t where);
void mouse_add_new_tempo_event (nframes_t where);
void mouse_add_new_meter_event (nframes_t where);
void remove_tempo_marker (ArdourCanvas::Item*);
void remove_meter_marker (ArdourCanvas::Item*);
@ -1259,7 +1254,7 @@ class Editor : public PublicEditor
void tempo_map_changed (ARDOUR::Change);
void redisplay_tempo ();
void snap_to (jack_nframes_t& first, int32_t direction = 0, bool for_mark = false);
void snap_to (nframes_t& first, int32_t direction = 0, bool for_mark = false);
uint32_t bbt_beat_subdivision;
/* toolbar */
@ -1357,7 +1352,7 @@ class Editor : public PublicEditor
void region_selection_op (void (ARDOUR::Region::*pmf)(void*), void*);
void region_selection_op (void (ARDOUR::Region::*pmf)(bool), bool);
bool audio_region_selection_covers (jack_nframes_t where);
bool audio_region_selection_covers (nframes_t where);
/* transport range select process */
enum RangeMarkerOp {
@ -1398,7 +1393,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 (jack_nframes_t start, jack_nframes_t end, gdouble topy, gdouble boty, Selection::Operation op);
bool select_all_within (nframes_t start, nframes_t end, gdouble topy, gdouble boty, Selection::Operation op);
ArdourCanvas::SimpleRect *rubberband_rect;
@ -1409,7 +1404,7 @@ class Editor : public PublicEditor
void end_mouse_zoom (ArdourCanvas::Item* item, GdkEvent* event);
ArdourCanvas::SimpleRect *zoom_rect;
void reposition_zoom_rect (jack_nframes_t start, jack_nframes_t end);
void reposition_zoom_rect (nframes_t start, nframes_t end);
/* diskstream/route display management */
@ -1429,9 +1424,9 @@ class Editor : public PublicEditor
Glib::RefPtr<Gtk::TreeSelection> route_display_selection;
gint route_list_compare_func (Gtk::TreeModel::iterator, Gtk::TreeModel::iterator);
Gtkmm2ext::DnDTreeView route_list_display;
Gtk::ScrolledWindow route_list_scroller;
Gtk::Menu* route_list_menu;
Gtkmm2ext::DnDTreeView<boost::shared_ptr<ARDOUR::Route> > route_list_display;
Gtk::ScrolledWindow route_list_scroller;
Gtk::Menu* route_list_menu;
bool route_list_display_button_press (GdkEventButton*);
bool route_list_selection_filter (const Glib::RefPtr<Gtk::TreeModel>& model, const Gtk::TreeModel::Path& path, bool yn);
@ -1503,10 +1498,11 @@ class Editor : public PublicEditor
/* autoscrolling */
bool autoscroll_active;
int autoscroll_timeout_tag;
int autoscroll_direction;
uint32_t autoscroll_cnt;
jack_nframes_t autoscroll_distance;
nframes_t autoscroll_distance;
static gint _autoscroll_canvas (void *);
bool autoscroll_canvas ();
@ -1524,9 +1520,9 @@ class Editor : public PublicEditor
void start_trim (ArdourCanvas::Item*, GdkEvent*);
void point_trim (GdkEvent*);
void trim_motion_callback (ArdourCanvas::Item*, GdkEvent*);
void single_contents_trim (RegionView&, jack_nframes_t, bool, bool, bool);
void single_start_trim (RegionView&, jack_nframes_t, bool, bool);
void single_end_trim (RegionView&, jack_nframes_t, bool, bool);
void single_contents_trim (RegionView&, nframes_t, bool, bool, bool);
void single_start_trim (RegionView&, nframes_t, bool, bool);
void single_end_trim (RegionView&, nframes_t, bool, bool);
void trim_finished_callback (ArdourCanvas::Item*, GdkEvent*);
void thaw_region_after_trim (RegionView& rv);
@ -1580,7 +1576,7 @@ class Editor : public PublicEditor
ExportDialog *export_dialog;
ExportDialog *export_range_markers_dialog;
void export_range (jack_nframes_t start, jack_nframes_t end);
void export_range (nframes_t start, nframes_t end);
void export_range_markers ();
int write_region_selection(RegionSelection&);
@ -1654,7 +1650,7 @@ class Editor : public PublicEditor
Gtk::Menu* edit_menu;
bool edit_menu_map_handler (GdkEventAny*);
jack_nframes_t event_frame (GdkEvent*, double* px = 0, double* py = 0);
nframes_t event_frame (GdkEvent*, double* px = 0, double* py = 0);
void time_fx_motion (ArdourCanvas::Item*, GdkEvent*);
void start_time_fx (ArdourCanvas::Item*, GdkEvent*);
@ -1770,7 +1766,7 @@ class Editor : public PublicEditor
Gtk::VBox nudge_vbox;
AudioClock nudge_clock;
jack_nframes_t get_nudge_distance (jack_nframes_t pos, jack_nframes_t& next);
nframes_t get_nudge_distance (nframes_t pos, nframes_t& next);
/* audio filters */

View File

@ -5,6 +5,7 @@
#include "editing.h"
#include "actions.h"
#include "ardour_ui.h"
#include "gui_thread.h"
#include "i18n.h"
using namespace Gtk;
@ -41,9 +42,6 @@ Editor::register_actions ()
ActionManager::register_action (editor_actions, X_("Layering"), _("Layering"));
ActionManager::register_action (editor_actions, X_("SMPTE"), _("SMPTE fps"));
ActionManager::register_action (editor_actions, X_("Pullup"), _("Pullup / Pulldown"));
ActionManager::register_action (editor_actions, X_("Metering"), _("Metering"));
ActionManager::register_action (editor_actions, X_("MeteringFallOffRate"), _("Fall off rate"));
ActionManager::register_action (editor_actions, X_("MeteringHoldTime"), _("Hold Time"));
ActionManager::register_action (editor_actions, X_("addExistingAudioFiles"), _("Add Existing Audio"));
/* add named actions for the editor */
@ -368,32 +366,11 @@ Editor::register_actions ()
ActionManager::register_toggle_action (editor_actions, X_("ToggleWaveformsWhileRecording"), _("Show Waveforms While Recording"), mem_fun (*this, &Editor::toggle_waveforms_while_recording));
act = ActionManager::register_toggle_action (editor_actions, X_("ToggleMeasureVisibility"), _("Show Measures"), mem_fun (*this, &Editor::toggle_measure_visibility));
RadioAction::Group meter_falloff_group;
RadioAction::Group meter_hold_group;
/*
Slowest = 6.6dB/sec falloff at update rate of 40ms
Slow = 6.8dB/sec falloff at update rate of 40ms
*/
ActionManager::register_radio_action (editor_actions, meter_falloff_group, X_("MeterFalloffOff"), _("Off"), bind (mem_fun (*this, &Editor::set_meter_falloff), 0));
ActionManager::register_radio_action (editor_actions, meter_falloff_group, X_("MeterFalloffSlowest"), _("Slowest"), bind (mem_fun (*this, &Editor::set_meter_falloff), 1));
ActionManager::register_radio_action (editor_actions, meter_falloff_group, X_("MeterFalloffSlow"), _("Slow"), bind (mem_fun (*this, &Editor::set_meter_falloff), 2));
ActionManager::register_radio_action (editor_actions, meter_falloff_group, X_("MeterFalloffMedium"), _("Medium"), bind (mem_fun (*this, &Editor::set_meter_falloff), 3));
ActionManager::register_radio_action (editor_actions, meter_falloff_group, X_("MeterFalloffFast"), _("Fast"), bind (mem_fun (*this, &Editor::set_meter_falloff), 4));
ActionManager::register_radio_action (editor_actions, meter_falloff_group, X_("MeterFalloffFaster"), _("Faster"), bind (mem_fun (*this, &Editor::set_meter_falloff), 5));
ActionManager::register_radio_action (editor_actions, meter_falloff_group, X_("MeterFalloffFastest"), _("Fastest"), bind (mem_fun (*this, &Editor::set_meter_falloff), 6));
ActionManager::register_radio_action (editor_actions, meter_hold_group, X_("MeterHoldOff"), _("Off"), bind (mem_fun (*this, &Editor::set_meter_hold), 0));
ActionManager::register_radio_action (editor_actions, meter_hold_group, X_("MeterHoldShort"), _("Short"), bind (mem_fun (*this, &Editor::set_meter_hold), 40));
ActionManager::register_radio_action (editor_actions, meter_hold_group, X_("MeterHoldMedium"), _("Medium"), bind (mem_fun (*this, &Editor::set_meter_hold), 100));
ActionManager::register_radio_action (editor_actions, meter_hold_group, X_("MeterHoldLong"), _("Long"), bind (mem_fun (*this, &Editor::set_meter_hold), 200));
RadioAction::Group layer_model_group;
ActionManager::register_radio_action (editor_actions, layer_model_group, X_("LayerLaterHigher"), _("Later is Higher"), bind (mem_fun (*this, &Editor::set_layer_model), Session::LaterHigher));
ActionManager::register_radio_action (editor_actions, layer_model_group, X_("LayerMoveAddHigher"), _("Most Recently Moved/Added is Higher"), bind (mem_fun (*this, &Editor::set_layer_model), Session::MoveAddHigher));
ActionManager::register_radio_action (editor_actions, layer_model_group, X_("LayerAddHigher"), _("Most Recently Added is Higher"), bind (mem_fun (*this, &Editor::set_layer_model), Session::AddHigher));
ActionManager::register_radio_action (editor_actions, layer_model_group, X_("LayerLaterHigher"), _("Later is Higher"), bind (mem_fun (*this, &Editor::set_layer_model), LaterHigher));
ActionManager::register_radio_action (editor_actions, layer_model_group, X_("LayerMoveAddHigher"), _("Most Recently Moved/Added is Higher"), bind (mem_fun (*this, &Editor::set_layer_model), MoveAddHigher));
ActionManager::register_radio_action (editor_actions, layer_model_group, X_("LayerAddHigher"), _("Most Recently Added is Higher"), bind (mem_fun (*this, &Editor::set_layer_model), AddHigher));
RadioAction::Group smpte_group;
@ -458,37 +435,168 @@ Editor::toggle_measure_visibility ()
}
void
Editor::toggle_auto_xfade ()
Editor::set_crossfade_model (CrossfadeModel model)
{
Glib::RefPtr<Action> act = ActionManager::get_action (X_("Editor"), X_("toggle-auto-xfades"));
RefPtr<Action> act;
/* this is driven by a toggle on a radio group, and so is invoked twice,
once for the item that became inactive and once for the one that became
active.
*/
switch (model) {
case FullCrossfade:
act = ActionManager::get_action (X_("Editor"), X_("CrossfadesFull"));
break;
case ShortCrossfade:
act = ActionManager::get_action (X_("Editor"), X_("CrossfadesShort"));
break;
}
if (act) {
Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
Config->set_auto_xfade (tact->get_active());
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
if (ract && ract->get_active()) {
Config->set_xfade_model (model);
}
}
}
void
Editor::toggle_xfades_active ()
Editor::update_crossfade_model ()
{
Glib::RefPtr<Action> act = ActionManager::get_action (X_("Editor"), X_("toggle-xfades-active"));
if (session && act) {
Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
session->set_crossfades_active (tact->get_active());
RefPtr<Action> act;
switch (Config->get_xfade_model()) {
case FullCrossfade:
act = ActionManager::get_action (X_("Editor"), X_("CrossfadesFull"));
break;
case ShortCrossfade:
act = ActionManager::get_action (X_("Editor"), X_("CrossfadesShort"));
break;
}
if (act) {
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
if (ract && !ract->get_active()) {
ract->set_active (true);
}
}
}
void
Editor::toggle_xfade_visibility ()
Editor::update_smpte_mode ()
{
Glib::RefPtr<Action> act = ActionManager::get_action (X_("Editor"), X_("toggle-xfades-visible"));
if (session && act) {
Glib::RefPtr<ToggleAction> tact = Glib::RefPtr<ToggleAction>::cast_dynamic(act);
// set_xfade_visibility (tact->get_active());
ENSURE_GUI_THREAD(mem_fun(*this, &Editor::update_smpte_mode));
RefPtr<Action> act;
const char* action = 0;
float frames = Config->get_smpte_frames_per_second();
bool drop = Config->get_smpte_drop_frames();
if ((frames < 23.976 * 1.0005) && !drop)
action = X_("Smpte23976");
else if ((frames < 24 * 1.0005) && !drop)
action = X_("Smpte24");
else if ((frames < 24.976 * 1.0005) && !drop)
action = X_("Smpte24976");
else if ((frames < 25 * 1.0005) && !drop)
action = X_("Smpte25");
else if ((frames < 29.97 * 1.0005) && !drop)
action = X_("Smpte2997");
else if ((frames < 29.97 * 1.0005) && drop)
action = X_("Smpte2997drop");
else if ((frames < 30 * 1.0005) && !drop)
action = X_("Smpte30");
else if ((frames < 30 * 1.0005) && drop)
action = X_("Smpte30drop");
else if ((frames < 59.94 * 1.0005) && !drop)
action = X_("Smpte5994");
else if ((frames < 60 * 1.0005) && !drop)
action = X_("Smpte60");
else {
fatal << string_compose (_("programming error: Unexpected SMPTE value (%1, drop = %2) in update_smpte_mode. Menu is probably wrong."),
frames, drop) << endmsg;
/*NOTREACHED*/
}
act = ActionManager::get_action (X_("Editor"), action);
if (act) {
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
if (ract && !ract->get_active()) {
ract->set_active (true);
}
}
}
void
Editor::set_layer_model (Session::LayerModel model)
Editor::update_video_pullup ()
{
ENSURE_GUI_THREAD (mem_fun(*this, &Editor::update_video_pullup));
RefPtr<Action> act;
const char* action = 0;
float pullup = Config->get_video_pullup();
if ( pullup < (-4.1667 - 0.1) * 0.99) {
action = X_("PullupMinus4Minus1");
} else if ( pullup < (-4.1667) * 0.99 ) {
action = X_("PullupMinus4");
} else if ( pullup < (-4.1667 + 0.1) * 0.99 ) {
action = X_("PullupMinus4Plus1");
} else if ( pullup < (-0.1) * 0.99 ) {
action = X_("PullupMinus1");
} else if (pullup > (4.1667 + 0.1) * 0.99 ) {
action = X_("PullupPlus4Plus1");
} else if ( pullup > (4.1667) * 0.99 ) {
action = X_("PullupPlus4");
} else if ( pullup > (4.1667 - 0.1) * 0.99) {
action = X_("PullupPlus4Minus1");
} else if ( pullup > (0.1) * 0.99 ) {
action = X_("PullupPlus1");
} else {
action = X_("PullupNone");
}
act = ActionManager::get_action (X_("Editor"), action);
if (act) {
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
if (ract && !ract->get_active()) {
ract->set_active (true);
}
}
}
void
Editor::update_layering_model ()
{
RefPtr<Action> act;
switch (Config->get_layer_model()) {
case LaterHigher:
act = ActionManager::get_action (X_("Editor"), X_("LayerLaterHigher"));
break;
case MoveAddHigher:
act = ActionManager::get_action (X_("Editor"), X_("LayerMoveAddHigher"));
break;
case AddHigher:
act = ActionManager::get_action (X_("Editor"), X_("LayerAddHigher"));
break;
}
if (act) {
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
if (ract && !ract->get_active()) {
ract->set_active (true);
}
}
}
void
Editor::set_layer_model (LayerModel model)
{
/* this is driven by a toggle on a radio group, and so is invoked twice,
once for the item that became inactive and once for the one that became
@ -497,24 +605,22 @@ Editor::set_layer_model (Session::LayerModel model)
RefPtr<Action> act;
if (session) {
switch (model) {
case Session::LaterHigher:
act = ActionManager::get_action (X_("Editor"), X_("LayerLaterHigher"));
break;
case Session::MoveAddHigher:
act = ActionManager::get_action (X_("Editor"), X_("LayerMoveAddHigher"));
break;
case Session::AddHigher:
act = ActionManager::get_action (X_("Editor"), X_("LayerAddHigher"));
break;
}
if (act) {
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
if (ract && ract->get_active()) {
session->set_layer_model (model);
}
switch (model) {
case LaterHigher:
act = ActionManager::get_action (X_("Editor"), X_("LayerLaterHigher"));
break;
case MoveAddHigher:
act = ActionManager::get_action (X_("Editor"), X_("LayerMoveAddHigher"));
break;
case AddHigher:
act = ActionManager::get_action (X_("Editor"), X_("LayerAddHigher"));
break;
}
if (act) {
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
if (ract && ract->get_active() && Config->get_layer_model() != model) {
Config->set_layer_model (model);
}
}
}
@ -606,88 +712,114 @@ Editor::video_pullup_chosen (Session::PullupFormat pullup)
active.
*/
if (session) {
const char* action = 0;
RefPtr<Action> act;
float pull = 0.0;
switch (pullup) {
case Session::pullup_Plus4Plus1:{
pull = 4.1667 + 0.1;
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus4Plus1"));
} break;
case Session::pullup_Plus4:{
pull = 4.1667;
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus4"));
} break;
case Session::pullup_Plus4Minus1:{
pull = 4.1667 - 0.1;
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus4Minus1"));
} break;
case Session::pullup_Plus1:{
pull = 0.1;
act = ActionManager::get_action (X_("Editor"), X_("PullupPlus1"));
} break;
case Session::pullup_None:{
pull = 0.0;
act = ActionManager::get_action (X_("Editor"), X_("PullupNone"));
} break;
case Session::pullup_Minus1:{
pull = -0.1;
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus1"));
} break;
case Session::pullup_Minus4Plus1:{
pull = -4.1667 + 0.1;
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus4Plus1"));
} break;
case Session::pullup_Minus4:{
pull = -4.1667;
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus4"));
} break;
case Session::pullup_Minus4Minus1:{
pull = -4.1667 - 0.1;
act = ActionManager::get_action (X_("Editor"), X_("PullupMinus4Minus1"));
} break;
default:
cerr << "Session received unexpected pullup type" << endl;
RefPtr<Action> act;
float pull = 0.0;
switch (pullup) {
case Session::pullup_Plus4Plus1:
pull = 4.1667 + 0.1;
action = X_("PullupPlus4Plus1");
break;
case Session::pullup_Plus4:
pull = 4.1667;
action = X_("PullupPlus4");
break;
case Session::pullup_Plus4Minus1:
pull = 4.1667 - 0.1;
action = X_("PullupPlus4Minus1");
break;
case Session::pullup_Plus1:
pull = 0.1;
action = X_("PullupPlus1");
break;
case Session::pullup_None:
pull = 0.0;
action = X_("PullupNone");
break;
case Session::pullup_Minus1:
pull = -0.1;
action = X_("PullupMinus1");
break;
case Session::pullup_Minus4Plus1:
pull = -4.1667 + 0.1;
action = X_("PullupMinus4Plus1");
break;
case Session::pullup_Minus4:
pull = -4.1667;
action = X_("PullupMinus4");
break;
case Session::pullup_Minus4Minus1:
pull = -4.1667 - 0.1;
action = X_("PullupMinus4Minus1");
break;
default:
fatal << string_compose (_("programming error: %1"), "Session received unexpected pullup type") << endmsg;
/*NOTREACHED*/
}
act = ActionManager::get_action (X_("Editor"), action);
if (act) {
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
if (ract && ract->get_active()) {
Config->set_video_pullup ( pull );
}
if (act) {
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
if (ract && ract->get_active()) {
session->set_video_pullup ( pull );
}
} else cerr << "Editor::video_pullup_chosen could not find action to match pullup." << endl;
} else {
error << string_compose (_("programming error: %1"), "Editor::video_pullup_chosen could not find action to match pullup.") << endmsg;
}
}
void
Editor::set_crossfade_model (CrossfadeModel model)
Editor::toggle_auto_xfade ()
{
RefPtr<Action> act;
/* this is driven by a toggle on a radio group, and so is invoked twice,
once for the item that became inactive and once for the one that became
active.
*/
if (session) {
switch (model) {
case FullCrossfade:
act = ActionManager::get_action (X_("Editor"), X_("CrossfadesFull"));
break;
case ShortCrossfade:
act = ActionManager::get_action (X_("Editor"), X_("CrossfadesShort"));
break;
}
if (act) {
RefPtr<RadioAction> ract = RefPtr<RadioAction>::cast_dynamic(act);
if (ract && ract->get_active()) {
session->set_xfade_model (model);
}
}
}
ActionManager::toggle_config_state ("Editor", "toggle-auto-xfades", &Configuration::set_auto_xfade, &Configuration::get_auto_xfade);
}
void
Editor::toggle_xfades_active ()
{
ActionManager::toggle_config_state ("Editor", "toggle-xfades-active", &Configuration::set_crossfades_active, &Configuration::get_crossfades_active);
}
void
Editor::toggle_xfade_visibility ()
{
ActionManager::toggle_config_state ("Editor", "toggle-xfades-visibility", &Configuration::set_crossfades_visible, &Configuration::get_crossfades_visible);
}
void
Editor::parameter_changed (const char* parameter_name)
{
#define PARAM_IS(x) (!strcmp (parameter_name, (x)))
ENSURE_GUI_THREAD (bind (mem_fun (*this, &Editor::parameter_changed), parameter_name));
if (PARAM_IS ("auto-loop")) {
update_loop_range_view (true);
} else if (PARAM_IS ("punch-in")) {
update_punch_range_view (true);
} else if (PARAM_IS ("punch-out")) {
update_punch_range_view (true);
} else if (PARAM_IS ("layer-model")) {
update_layering_model ();
} else if (PARAM_IS ("smpte-frames-per-second") || PARAM_IS ("smpte-drop-frames")) {
update_smpte_mode ();
update_just_smpte ();
} else if (PARAM_IS ("video-pullup")) {
update_video_pullup ();
} else if (PARAM_IS ("crossfades-active")) {
ActionManager::map_some_state ("Editor", "toggle-xfades-active", &Configuration::get_crossfades_active);
} else if (PARAM_IS ("crossfades-visible")) {
ActionManager::map_some_state ("Editor", "toggle-xfades-visible", &Configuration::get_crossfades_visible);
} else if (PARAM_IS ("auto-xfade")) {
ActionManager::map_some_state ("Editor", "toggle-auto-xfades", &Configuration::get_auto_xfade);
} else if (PARAM_IS ("edit-mode")) {
edit_mode_selector.set_active_text (edit_mode_to_string (Config->get_edit_mode()));
}
#undef PARAM_IS
}

View File

@ -55,7 +55,7 @@ using namespace Editing;
void
Editor::add_external_audio_action (ImportMode mode)
{
jack_nframes_t& pos = edit_cursor->current_frame;
nframes_t& pos = edit_cursor->current_frame;
AudioTrack* track = 0;
if (!selection->tracks.empty()) {
@ -69,7 +69,7 @@ Editor::add_external_audio_action (ImportMode mode)
}
void
Editor::bring_in_external_audio (ImportMode mode, AudioTrack* track, jack_nframes_t& pos, bool prompt)
Editor::bring_in_external_audio (ImportMode mode, AudioTrack* track, nframes_t& pos, bool prompt)
{
if (session == 0) {
MessageDialog msg (0, _("You can't import or embed an audiofile until you have a session loaded."));
@ -95,7 +95,7 @@ Editor::bring_in_external_audio (ImportMode mode, AudioTrack* track, jack_nframe
}
void
Editor::do_import (vector<Glib::ustring> paths, bool split, ImportMode mode, AudioTrack* track, jack_nframes_t& pos, bool prompt)
Editor::do_import (vector<Glib::ustring> paths, bool split, ImportMode mode, AudioTrack* track, nframes_t& pos, bool prompt)
{
/* SFDB sets "multichan" to true to indicate "split channels"
so reverse the setting to match the way libardour
@ -120,7 +120,7 @@ Editor::do_import (vector<Glib::ustring> paths, bool split, ImportMode mode, Aud
}
void
Editor::do_embed (vector<Glib::ustring> paths, bool split, ImportMode mode, AudioTrack* track, jack_nframes_t& pos, bool prompt)
Editor::do_embed (vector<Glib::ustring> paths, bool split, ImportMode mode, AudioTrack* track, nframes_t& pos, bool prompt)
{
bool multiple_files = paths.size() > 1;
bool check_sample_rate = true;
@ -140,7 +140,7 @@ Editor::do_embed (vector<Glib::ustring> paths, bool split, ImportMode mode, Audi
}
int
Editor::import_sndfile (Glib::ustring path, ImportMode mode, AudioTrack* track, jack_nframes_t& pos)
Editor::import_sndfile (Glib::ustring path, ImportMode mode, AudioTrack* track, nframes_t& pos)
{
interthread_progress_window->set_title (string_compose (_("ardour: importing %1"), path));
interthread_progress_window->set_position (Gtk::WIN_POS_MOUSE);
@ -188,7 +188,7 @@ Editor::import_sndfile (Glib::ustring path, ImportMode mode, AudioTrack* track,
int
Editor::embed_sndfile (Glib::ustring path, bool split, bool multiple_files, bool& check_sample_rate, ImportMode mode,
AudioTrack* track, jack_nframes_t& pos, bool prompt)
AudioTrack* track, nframes_t& pos, bool prompt)
{
boost::shared_ptr<AudioFileSource> source;
SourceList sources;
@ -294,7 +294,7 @@ Editor::embed_sndfile (Glib::ustring path, bool split, bool multiple_files, bool
input_chan = finfo.channels;
if (session->get_output_auto_connect() & Session::AutoConnectMaster) {
if (Config->get_output_auto_connect() & AutoConnectMaster) {
output_chan = (session->master_out() ? session->master_out()->n_inputs().get(DataType::AUDIO) : input_chan);
} else {
output_chan = input_chan;
@ -308,7 +308,7 @@ Editor::embed_sndfile (Glib::ustring path, bool split, bool multiple_files, bool
}
int
Editor::finish_bringing_in_audio (boost::shared_ptr<AudioRegion> region, uint32_t in_chans, uint32_t out_chans, AudioTrack* track, jack_nframes_t& pos, ImportMode mode)
Editor::finish_bringing_in_audio (boost::shared_ptr<AudioRegion> region, uint32_t in_chans, uint32_t out_chans, AudioTrack* track, nframes_t& pos, ImportMode mode)
{
switch (mode) {
case ImportAsRegion:

View File

@ -17,8 +17,8 @@ Editor::set_route_loop_selection ()
return;
}
jack_nframes_t start = selection->time[clicked_selection].start;
jack_nframes_t end = selection->time[clicked_selection].end;
nframes_t start = selection->time[clicked_selection].start;
nframes_t end = selection->time[clicked_selection].end;
Location* loc = transport_loop_location();
@ -27,7 +27,7 @@ Editor::set_route_loop_selection ()
loc->set (start, end);
// enable looping, reposition and start rolling
session->request_auto_loop (true);
session->request_play_loop (true);
session->request_locate (loc->start(), true);
}

View File

@ -52,7 +52,7 @@ using namespace Glib;
using namespace Gtkmm2ext;
using namespace Editing;
/* XXX this is a hack. it ought to be the maximum value of an jack_nframes_t */
/* XXX this is a hack. it ought to be the maximum value of an nframes_t */
const double max_canvas_coordinate = (double) JACK_MAX_FRAMES;
@ -279,7 +279,7 @@ Editor::track_canvas_allocate (Gtk::Allocation alloc)
canvas_width = alloc.get_width();
canvas_height = alloc.get_height();
zoom_range_clock.set ((jack_nframes_t) floor ((canvas_width * frames_per_unit)));
zoom_range_clock.set ((nframes_t) floor ((canvas_width * frames_per_unit)));
edit_cursor->set_position (edit_cursor->current_frame);
playhead_cursor->set_position (playhead_cursor->current_frame);
@ -438,7 +438,7 @@ Editor::drop_paths (const RefPtr<Gdk::DragContext>& context,
vector<ustring> paths;
string spath;
GdkEvent ev;
jack_nframes_t frame;
nframes_t frame;
if (convert_drop_to_paths (paths, context, x, y, data, info, time)) {
goto out;
@ -466,7 +466,7 @@ Editor::drop_paths (const RefPtr<Gdk::DragContext>& context,
/* drop onto canvas background: create new tracks */
jack_nframes_t pos = 0;
nframes_t pos = 0;
do_embed (paths, false, ImportAsTrack, 0, pos, false);
} else if ((tv = dynamic_cast<RouteTimeAxisView*>(tvp)) != 0) {
@ -488,11 +488,12 @@ Editor::drop_regions (const RefPtr<Gdk::DragContext>& context,
const SelectionData& data,
guint info, guint time)
{
const DnDTreeView::SerializedObjectPointers* sr = reinterpret_cast<const DnDTreeView::SerializedObjectPointers*> (data.get_data());
const SerializedObjectPointers<boost::shared_ptr<Region> >* sr =
reinterpret_cast<const SerializedObjectPointers<boost::shared_ptr<Region> > *> (data.get_data());
for (uint32_t i = 0; i < sr->cnt; ++i) {
boost::shared_ptr<Region> r (reinterpret_cast<Region*> (sr->ptr[i]));
boost::shared_ptr<Region> r = sr->data[i];
insert_region_list_drag (r, x, y);
}
@ -503,8 +504,8 @@ Editor::drop_regions (const RefPtr<Gdk::DragContext>& context,
void
Editor::maybe_autoscroll (GdkEvent* event)
{
jack_nframes_t rightmost_frame = leftmost_frame + current_page_frames();
jack_nframes_t frame = drag_info.current_pointer_frame;
nframes_t rightmost_frame = leftmost_frame + current_page_frames();
nframes_t frame = drag_info.current_pointer_frame;
bool startit = false;
static int last_autoscroll_direction = 0;
@ -553,10 +554,10 @@ Editor::_autoscroll_canvas (void *arg)
bool
Editor::autoscroll_canvas ()
{
jack_nframes_t new_frame;
jack_nframes_t limit = max_frames - current_page_frames();
nframes_t new_frame;
nframes_t limit = max_frames - current_page_frames();
GdkEventMotion ev;
jack_nframes_t target_frame;
nframes_t target_frame;
if (autoscroll_direction < 0) {
if (leftmost_frame < autoscroll_distance) {
@ -606,17 +607,17 @@ Editor::autoscroll_canvas ()
/* after about a while, speed up a bit by changing the timeout interval */
autoscroll_distance = (jack_nframes_t) floor (current_page_frames()/30.0f);
autoscroll_distance = (nframes_t) floor (current_page_frames()/30.0f);
} else if (autoscroll_cnt == 150) { /* 1.0 seconds */
autoscroll_distance = (jack_nframes_t) floor (current_page_frames()/20.0f);
autoscroll_distance = (nframes_t) floor (current_page_frames()/20.0f);
} else if (autoscroll_cnt == 300) { /* 1.5 seconds */
/* after about another while, speed up by increasing the shift per callback */
autoscroll_distance = (jack_nframes_t) floor (current_page_frames()/10.0f);
autoscroll_distance = (nframes_t) floor (current_page_frames()/10.0f);
}
@ -626,14 +627,15 @@ Editor::autoscroll_canvas ()
void
Editor::start_canvas_autoscroll (int dir)
{
if (!session) {
if (!session || autoscroll_active) {
return;
}
stop_canvas_autoscroll ();
autoscroll_active = true;
autoscroll_direction = dir;
autoscroll_distance = (jack_nframes_t) floor (current_page_frames()/100.0);
autoscroll_distance = (nframes_t) floor (current_page_frames()/50.0);
autoscroll_cnt = 0;
/* do it right now, which will start the repeated callbacks */
@ -648,6 +650,8 @@ Editor::stop_canvas_autoscroll ()
g_source_remove (autoscroll_timeout_tag);
autoscroll_timeout_tag = -1;
}
autoscroll_active = false;
}
gint

View File

@ -70,7 +70,7 @@ Editor::track_canvas_scroll (GdkEventScroll* ev)
event.button.x = wx;
event.button.y = wy;
jack_nframes_t where = event_frame (&event, 0, 0);
nframes_t where = event_frame (&event, 0, 0);
temporal_zoom_to_frame (true, where);
return true;
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::Shift)) {
@ -101,7 +101,7 @@ Editor::track_canvas_scroll (GdkEventScroll* ev)
event.button.x = wx;
event.button.y = wy;
jack_nframes_t where = event_frame (&event, 0, 0);
nframes_t where = event_frame (&event, 0, 0);
temporal_zoom_to_frame (false, where);
return true;
} else if (Keyboard::modifier_state_equals (ev->state, Keyboard::Shift)) {

View File

@ -63,7 +63,7 @@ Editor::Cursor::~Cursor ()
}
void
Editor::Cursor::set_position (jack_nframes_t frame)
Editor::Cursor::set_position (nframes_t frame)
{
double new_pos = editor.frame_to_unit (frame);

View File

@ -56,7 +56,7 @@ void
Editor::export_session()
{
if (session) {
export_range (0, session->current_end_frame());
export_range (session->current_start_frame(), session->current_end_frame());
}
}
@ -75,7 +75,7 @@ Editor::export_selection ()
}
void
Editor::export_range (jack_nframes_t start, jack_nframes_t end)
Editor::export_range (nframes_t start, nframes_t end)
{
if (session) {
if (export_dialog == 0) {
@ -162,11 +162,11 @@ bool
Editor::write_region (string path, boost::shared_ptr<AudioRegion> region)
{
boost::shared_ptr<AudioFileSource> fs;
const jack_nframes_t chunk_size = 4096;
jack_nframes_t to_read;
const nframes_t chunk_size = 4096;
nframes_t to_read;
Sample buf[chunk_size];
gain_t gain_buffer[chunk_size];
jack_nframes_t pos;
nframes_t pos;
char s[PATH_MAX+1];
uint32_t cnt;
vector<boost::shared_ptr<AudioFileSource> > sources;
@ -229,7 +229,7 @@ Editor::write_region (string path, boost::shared_ptr<AudioRegion> region)
pos = region->position();
while (to_read) {
jack_nframes_t this_time;
nframes_t this_time;
this_time = min (to_read, chunk_size);
@ -306,11 +306,11 @@ bool
Editor::write_audio_range (AudioPlaylist& playlist, const ChanCount& count, list<AudioRange>& range)
{
boost::shared_ptr<AudioFileSource> fs;
const jack_nframes_t chunk_size = 4096;
jack_nframes_t nframes;
const nframes_t chunk_size = 4096;
nframes_t nframes;
Sample buf[chunk_size];
gain_t gain_buffer[chunk_size];
jack_nframes_t pos;
nframes_t pos;
char s[PATH_MAX+1];
uint32_t cnt;
string path;
@ -361,7 +361,7 @@ Editor::write_audio_range (AudioPlaylist& playlist, const ChanCount& count, list
pos = (*i).start;
while (nframes) {
jack_nframes_t this_time;
nframes_t this_time;
this_time = min (nframes, chunk_size);
@ -393,7 +393,7 @@ Editor::write_audio_range (AudioPlaylist& playlist, const ChanCount& count, list
while (nframes) {
jack_nframes_t this_time = min (nframes, chunk_size);
nframes_t this_time = min (nframes, chunk_size);
memset (buf, 0, sizeof (Sample) * this_time);
for (uint32_t n=0; n < channels; ++n) {

View File

@ -96,10 +96,10 @@ void
Editor::scroll_timeaxis_to_imageframe_item(const TimeAxisViewItem* item)
{
// GTK2FIX
//jack_nframes_t offset = static_cast<jack_nframes_t>(frames_per_unit * (edit_hscroll_slider_width/2)) ;
jack_nframes_t offset = 0;
//nframes_t offset = static_cast<nframes_t>(frames_per_unit * (edit_hscroll_slider_width/2)) ;
nframes_t offset = 0;
jack_nframes_t x_pos = 0 ;
nframes_t x_pos = 0 ;
if(item->get_position() < offset)
{
x_pos = 0 ;
@ -494,14 +494,14 @@ Editor::markerview_drag_motion_callback(ArdourCanvas::Item*, GdkEvent* event)
double cx, cy ;
MarkerView* mv = reinterpret_cast<MarkerView*>(drag_info.data) ;
jack_nframes_t pending_region_position ;
jack_nframes_t pointer_frame ;
nframes_t pending_region_position ;
nframes_t pointer_frame ;
pointer_frame = event_frame(event, &cx, &cy) ;
snap_to(pointer_frame) ;
if (pointer_frame > (jack_nframes_t) drag_info.pointer_frame_offset)
if (pointer_frame > (nframes_t) drag_info.pointer_frame_offset)
{
pending_region_position = pointer_frame - drag_info.pointer_frame_offset ;
snap_to(pending_region_position) ;
@ -542,14 +542,14 @@ Editor::imageframe_drag_motion_callback(ArdourCanvas::Item*, GdkEvent* event)
ImageFrameView* ifv = reinterpret_cast<ImageFrameView*>(drag_info.data) ;
jack_nframes_t pending_region_position;
jack_nframes_t pointer_frame;
nframes_t pending_region_position;
nframes_t pointer_frame;
pointer_frame = event_frame(event, &cx, &cy) ;
snap_to(pointer_frame) ;
if (pointer_frame > (jack_nframes_t) drag_info.pointer_frame_offset)
if (pointer_frame > (nframes_t) drag_info.pointer_frame_offset)
{
pending_region_position = pointer_frame - drag_info.pointer_frame_offset ;
snap_to(pending_region_position) ;
@ -577,7 +577,7 @@ Editor::imageframe_drag_motion_callback(ArdourCanvas::Item*, GdkEvent* event)
void
Editor::timeaxis_item_drag_finished_callback(ArdourCanvas::Item*, GdkEvent* event)
{
jack_nframes_t where ;
nframes_t where ;
TimeAxisViewItem* tavi = reinterpret_cast<TimeAxisViewItem*>(drag_info.data) ;
bool item_x_movement = (drag_info.last_frame_position != tavi->get_position()) ;
@ -675,9 +675,9 @@ Editor::imageframe_start_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent*
{
ImageFrameView* ifv = reinterpret_cast<ImageFrameView*> (drag_info.data) ;
jack_nframes_t start = 0 ;
jack_nframes_t end = 0 ;
jack_nframes_t pointer_frame = event_frame(event) ;
nframes_t start = 0 ;
nframes_t end = 0 ;
nframes_t pointer_frame = event_frame(event) ;
// chekc th eposition of the item is not locked
if(!ifv->get_position_locked()) {
@ -694,7 +694,7 @@ Editor::imageframe_start_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent*
}
// are we getting bigger or smaller?
jack_nframes_t new_dur_val = end - start ;
nframes_t new_dur_val = end - start ;
// start handle, so a smaller pointer frame increases our component size
if(pointer_frame <= drag_info.grab_frame)
@ -752,10 +752,10 @@ Editor::imageframe_start_handle_end_trim(ArdourCanvas::Item* item, GdkEvent* eve
}
else
{
jack_nframes_t temp = ifv->get_position() + ifv->get_duration() ;
nframes_t temp = ifv->get_position() + ifv->get_duration() ;
ifv->set_position((jack_nframes_t) (temp - drag_info.cumulative_x_drag), this) ;
ifv->set_duration((jack_nframes_t) drag_info.cumulative_x_drag, this) ;
ifv->set_position((nframes_t) (temp - drag_info.cumulative_x_drag), this) ;
ifv->set_duration((nframes_t) drag_info.cumulative_x_drag, this) ;
}
}
@ -764,10 +764,10 @@ Editor::imageframe_end_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* ev
{
ImageFrameView* ifv = reinterpret_cast<ImageFrameView *> (drag_info.data) ;
jack_nframes_t start = 0 ;
jack_nframes_t end = 0 ;
jack_nframes_t pointer_frame = event_frame(event) ;
jack_nframes_t new_dur_val = 0 ;
nframes_t start = 0 ;
nframes_t end = 0 ;
nframes_t pointer_frame = event_frame(event) ;
nframes_t new_dur_val = 0 ;
snap_to(pointer_frame) ;
@ -829,7 +829,7 @@ Editor::imageframe_end_handle_end_trim (ArdourCanvas::Item* item, GdkEvent* even
}
else
{
jack_nframes_t new_duration = (jack_nframes_t)drag_info.cumulative_x_drag ;
nframes_t new_duration = (nframes_t)drag_info.cumulative_x_drag ;
if((new_duration <= ifv->get_max_duration()) && (new_duration >= ifv->get_min_duration()))
{
ifv->set_duration(new_duration, this) ;
@ -889,9 +889,9 @@ Editor::markerview_start_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent*
{
MarkerView* mv = reinterpret_cast<MarkerView*> (drag_info.data) ;
jack_nframes_t start = 0 ;
jack_nframes_t end = 0 ;
jack_nframes_t pointer_frame = event_frame(event) ;
nframes_t start = 0 ;
nframes_t end = 0 ;
nframes_t pointer_frame = event_frame(event) ;
// chekc th eposition of the item is not locked
if(!mv->get_position_locked())
@ -912,7 +912,7 @@ Editor::markerview_start_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent*
}
// are we getting bigger or smaller?
jack_nframes_t new_dur_val = end - start ;
nframes_t new_dur_val = end - start ;
if(pointer_frame <= drag_info.grab_frame)
{
@ -969,10 +969,10 @@ Editor::markerview_start_handle_end_trim(ArdourCanvas::Item* item, GdkEvent* eve
}
else
{
jack_nframes_t temp = mv->get_position() + mv->get_duration() ;
nframes_t temp = mv->get_position() + mv->get_duration() ;
mv->set_position((jack_nframes_t) (temp - drag_info.cumulative_x_drag), this) ;
mv->set_duration((jack_nframes_t) drag_info.cumulative_x_drag, this) ;
mv->set_position((nframes_t) (temp - drag_info.cumulative_x_drag), this) ;
mv->set_duration((nframes_t) drag_info.cumulative_x_drag, this) ;
}
}
@ -981,10 +981,10 @@ Editor::markerview_end_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* ev
{
MarkerView* mv = reinterpret_cast<MarkerView*> (drag_info.data) ;
jack_nframes_t start = 0 ;
jack_nframes_t end = 0 ;
jack_nframes_t pointer_frame = event_frame(event) ;
jack_nframes_t new_dur_val = 0 ;
nframes_t start = 0 ;
nframes_t end = 0 ;
nframes_t pointer_frame = event_frame(event) ;
nframes_t new_dur_val = 0 ;
snap_to(pointer_frame) ;
@ -1009,7 +1009,7 @@ Editor::markerview_end_handle_trim_motion(ArdourCanvas::Item* item, GdkEvent* ev
{
// we cant extend beyond the item we are marking
ImageFrameView* marked_item = mv->get_marked_item() ;
jack_nframes_t marked_end = marked_item->get_position() + marked_item->get_duration() ;
nframes_t marked_end = marked_item->get_position() + marked_item->get_duration() ;
if(mv->get_max_duration_active() && (new_dur_val > mv->get_max_duration()))
{
@ -1063,7 +1063,7 @@ Editor::markerview_end_handle_end_trim (ArdourCanvas::Item* item, GdkEvent* even
}
else
{
jack_nframes_t new_duration = (jack_nframes_t)drag_info.cumulative_x_drag ;
nframes_t new_duration = (nframes_t)drag_info.cumulative_x_drag ;
mv->set_duration(new_duration, this) ;
}
}

View File

@ -79,7 +79,7 @@ Editor::kbd_set_edit_cursor ()
void
Editor::kbd_do_split (GdkEvent* ev)
{
jack_nframes_t where = event_frame (ev);
nframes_t where = event_frame (ev);
if (entered_regionview) {
if (selection->regions.find (entered_regionview) != selection->regions.end()) {
@ -122,7 +122,7 @@ Editor::kbd_set_sync_position ()
void
Editor::kbd_do_set_sync_position (GdkEvent* ev)
{
jack_nframes_t where = event_frame (ev);
nframes_t where = event_frame (ev);
snap_to (where);
if (entered_regionview) {

View File

@ -271,8 +271,8 @@ Editor::LocationMarkers::set_name (const string& str)
}
void
Editor::LocationMarkers::set_position (jack_nframes_t startf,
jack_nframes_t endf)
Editor::LocationMarkers::set_position (nframes_t startf,
nframes_t endf)
{
start->set_position (startf);
if (end) { end->set_position (endf); }
@ -286,7 +286,7 @@ Editor::LocationMarkers::set_color_rgba (uint32_t rgba)
}
void
Editor::mouse_add_new_marker (jack_nframes_t where)
Editor::mouse_add_new_marker (nframes_t where)
{
if (session) {
Location *location = new Location (where, where, "mark", Location::IsMark);
@ -745,7 +745,7 @@ Editor::marker_menu_loop_range ()
l2->set (l->start(), l->end());
// enable looping, reposition and start rolling
session->request_auto_loop(true);
session->request_play_loop(true);
session->request_locate (l2->start(), true);
}
}
@ -925,7 +925,7 @@ Editor::update_loop_range_view (bool visibility)
Location* tll;
if (session->get_auto_loop() && ((tll = transport_loop_location()) != 0)) {
if (Config->get_auto_loop() && ((tll = transport_loop_location()) != 0)) {
double x1 = frame_to_pixel (tll->start());
double x2 = frame_to_pixel (tll->end());
@ -951,7 +951,7 @@ Editor::update_punch_range_view (bool visibility)
Location* tpl;
if ((session->get_punch_in() || session->get_punch_out()) && ((tpl = transport_punch_location()) != 0)) {
if ((Config->get_punch_in() || Config->get_punch_out()) && ((tpl = transport_punch_location()) != 0)) {
double x1 = frame_to_pixel (tpl->start());
double x2 = frame_to_pixel (tpl->end());

View File

@ -157,7 +157,7 @@ Editor::update_current_screen ()
{
if (session && engine.running()) {
jack_nframes_t frame;
nframes_t frame;
frame = session->audible_frame();

View File

@ -69,7 +69,7 @@ using namespace sigc;
using namespace Gtk;
using namespace Editing;
jack_nframes_t
nframes_t
Editor::event_frame (GdkEvent* event, double* pcx, double* pcy)
{
double cx, cy;
@ -377,7 +377,7 @@ Editor::button_selection (ArdourCanvas::Item* item, GdkEvent* event, ItemType it
bool
Editor::button_press_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_type)
{
jack_nframes_t where = event_frame (event, 0, 0);
nframes_t where = event_frame (event, 0, 0);
track_canvas.grab_focus();
@ -821,7 +821,7 @@ Editor::button_press_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemTyp
bool
Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item_type)
{
jack_nframes_t where = event_frame (event, 0, 0);
nframes_t where = event_frame (event, 0, 0);
/* no action if we're recording */
@ -1710,7 +1710,7 @@ Editor::end_grab (ArdourCanvas::Item* item, GdkEvent* event)
void
Editor::set_edit_cursor (GdkEvent* event)
{
jack_nframes_t pointer_frame = event_frame (event);
nframes_t pointer_frame = event_frame (event);
if (!Keyboard::modifier_state_contains (event->button.state, Keyboard::snap_modifier())) {
if (snap_type != SnapToEditCursor) {
@ -1725,7 +1725,7 @@ Editor::set_edit_cursor (GdkEvent* event)
void
Editor::set_playhead_cursor (GdkEvent* event)
{
jack_nframes_t pointer_frame = event_frame (event);
nframes_t pointer_frame = event_frame (event);
if (!Keyboard::modifier_state_contains (event->button.state, Keyboard::snap_modifier())) {
snap_to (pointer_frame);
@ -1752,15 +1752,15 @@ Editor::start_fade_in_grab (ArdourCanvas::Item* item, GdkEvent* event)
AudioRegionView* arv = static_cast<AudioRegionView*>(drag_info.data);
drag_info.pointer_frame_offset = drag_info.grab_frame - ((jack_nframes_t) arv->audio_region()->fade_in().back()->when + arv->region()->position());
drag_info.pointer_frame_offset = drag_info.grab_frame - ((nframes_t) arv->audio_region()->fade_in().back()->when + arv->region()->position());
}
void
Editor::fade_in_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
{
AudioRegionView* arv = static_cast<AudioRegionView*>(drag_info.data);
jack_nframes_t pos;
jack_nframes_t fade_length;
nframes_t pos;
nframes_t fade_length;
if ((long)drag_info.current_pointer_frame > drag_info.pointer_frame_offset) {
pos = drag_info.current_pointer_frame - drag_info.pointer_frame_offset;
@ -1794,8 +1794,8 @@ Editor::fade_in_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* even
if (drag_info.first_move) return;
AudioRegionView* arv = static_cast<AudioRegionView*>(drag_info.data);
jack_nframes_t pos;
jack_nframes_t fade_length;
nframes_t pos;
nframes_t fade_length;
if ((long)drag_info.current_pointer_frame > drag_info.pointer_frame_offset) {
pos = drag_info.current_pointer_frame - drag_info.pointer_frame_offset;
@ -1845,15 +1845,15 @@ Editor::start_fade_out_grab (ArdourCanvas::Item* item, GdkEvent* event)
AudioRegionView* arv = static_cast<AudioRegionView*>(drag_info.data);
drag_info.pointer_frame_offset = drag_info.grab_frame - (arv->region()->length() - (jack_nframes_t) arv->audio_region()->fade_out().back()->when + arv->region()->position());
drag_info.pointer_frame_offset = drag_info.grab_frame - (arv->region()->length() - (nframes_t) arv->audio_region()->fade_out().back()->when + arv->region()->position());
}
void
Editor::fade_out_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
{
AudioRegionView* arv = static_cast<AudioRegionView*>(drag_info.data);
jack_nframes_t pos;
jack_nframes_t fade_length;
nframes_t pos;
nframes_t fade_length;
if ((long)drag_info.current_pointer_frame > drag_info.pointer_frame_offset) {
pos = drag_info.current_pointer_frame - drag_info.pointer_frame_offset;
@ -1889,8 +1889,8 @@ Editor::fade_out_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* eve
if (drag_info.first_move) return;
AudioRegionView* arv = static_cast<AudioRegionView*>(drag_info.data);
jack_nframes_t pos;
jack_nframes_t fade_length;
nframes_t pos;
nframes_t fade_length;
if ((long)drag_info.current_pointer_frame > drag_info.pointer_frame_offset) {
pos = drag_info.current_pointer_frame - drag_info.pointer_frame_offset;
@ -1956,7 +1956,7 @@ void
Editor::cursor_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
{
Cursor* cursor = (Cursor *) drag_info.data;
jack_nframes_t adjusted_frame;
nframes_t adjusted_frame;
if ((long)drag_info.current_pointer_frame > drag_info.pointer_frame_offset) {
adjusted_frame = drag_info.current_pointer_frame - drag_info.pointer_frame_offset;
@ -2061,7 +2061,7 @@ Editor::start_marker_grab (ArdourCanvas::Item* item, GdkEvent* event)
void
Editor::marker_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
{
jack_nframes_t f_delta;
nframes_t f_delta;
Marker* marker = (Marker *) drag_info.data;
Location *real_location;
Location *copy_location;
@ -2069,7 +2069,7 @@ Editor::marker_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
bool move_both = false;
jack_nframes_t newframe;
nframes_t newframe;
if (drag_info.pointer_frame_offset <= (long) drag_info.current_pointer_frame) {
newframe = drag_info.current_pointer_frame - drag_info.pointer_frame_offset;
}
@ -2077,7 +2077,7 @@ Editor::marker_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
newframe = 0;
}
jack_nframes_t next = newframe;
nframes_t next = newframe;
if (!Keyboard::modifier_state_contains (event->button.state, Keyboard::snap_modifier())) {
snap_to (newframe, 0, true);
@ -2249,7 +2249,7 @@ void
Editor::meter_marker_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
{
MeterMarker* marker = (MeterMarker *) drag_info.data;
jack_nframes_t adjusted_frame;
nframes_t adjusted_frame;
if ((long)drag_info.current_pointer_frame > drag_info.pointer_frame_offset) {
adjusted_frame = drag_info.current_pointer_frame - drag_info.pointer_frame_offset;
@ -2380,7 +2380,7 @@ void
Editor::tempo_marker_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
{
TempoMarker* marker = (TempoMarker *) drag_info.data;
jack_nframes_t adjusted_frame;
nframes_t adjusted_frame;
if ((long)drag_info.current_pointer_frame > drag_info.pointer_frame_offset) {
adjusted_frame = drag_info.current_pointer_frame - drag_info.pointer_frame_offset;
@ -2522,7 +2522,7 @@ Editor::control_point_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent*
cy = min ((double) cp->line.height(), cy);
//translate cx to frames
jack_nframes_t cx_frames = unit_to_frame (cx);
nframes_t cx_frames = unit_to_frame (cx);
if (!Keyboard::modifier_state_contains (event->button.state, Keyboard::snap_modifier()) && !drag_info.x_constrained) {
snap_to (cx_frames);
@ -2595,7 +2595,7 @@ Editor::start_line_grab (AutomationLine* line, GdkEvent* event)
{
double cx;
double cy;
jack_nframes_t frame_within_region;
nframes_t frame_within_region;
/* need to get x coordinate in terms of parent (TimeAxisItemView)
origin.
@ -2604,7 +2604,7 @@ Editor::start_line_grab (AutomationLine* line, GdkEvent* event)
cx = event->button.x;
cy = event->button.y;
line->parent_group().w2i (cx, cy);
frame_within_region = (jack_nframes_t) floor (cx * frames_per_unit);
frame_within_region = (nframes_t) floor (cx * frames_per_unit);
if (!line->control_points_adjacent (frame_within_region, current_line_drag_info.before,
current_line_drag_info.after)) {
@ -2684,7 +2684,7 @@ Editor::start_region_grab (ArdourCanvas::Item* item, GdkEvent* event)
speed = tv->get_diskstream()->speed();
}
drag_info.last_frame_position = (jack_nframes_t) (clicked_regionview->region()->position() / speed);
drag_info.last_frame_position = (nframes_t) (clicked_regionview->region()->position() / speed);
drag_info.pointer_frame_offset = drag_info.grab_frame - drag_info.last_frame_position;
drag_info.last_trackview = &clicked_regionview->get_time_axis_view();
// we want a move threshold
@ -2717,7 +2717,7 @@ Editor::start_region_copy_grab (ArdourCanvas::Item* item, GdkEvent* event)
}
drag_info.last_trackview = &clicked_regionview->get_time_axis_view();
drag_info.last_frame_position = (jack_nframes_t) (clicked_regionview->region()->position() / speed);
drag_info.last_frame_position = (nframes_t) (clicked_regionview->region()->position() / speed);
drag_info.pointer_frame_offset = drag_info.grab_frame - drag_info.last_frame_position;
// we want a move threshold
drag_info.want_move_threshold = true;
@ -2748,7 +2748,7 @@ Editor::start_region_brush_grab (ArdourCanvas::Item* item, GdkEvent* event)
speed = tv->get_diskstream()->speed();
}
drag_info.last_frame_position = (jack_nframes_t) (clicked_regionview->region()->position() / speed);
drag_info.last_frame_position = (nframes_t) (clicked_regionview->region()->position() / speed);
drag_info.pointer_frame_offset = drag_info.grab_frame - drag_info.last_frame_position;
drag_info.last_trackview = &clicked_regionview->get_time_axis_view();
// we want a move threshold
@ -2764,7 +2764,7 @@ Editor::region_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
double x_delta;
double y_delta = 0;
RegionView* rv = reinterpret_cast<RegionView*> (drag_info.data);
jack_nframes_t pending_region_position = 0;
nframes_t pending_region_position = 0;
int32_t pointer_y_span = 0, canvas_pointer_y_span = 0, original_pointer_order;
int32_t visible_y_high = 0, visible_y_low = 512; //high meaning higher numbered.. not the height on the screen
bool clamp_y_axis = false;
@ -2816,7 +2816,7 @@ Editor::region_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
newregion->set_locked (false);
to_playlist->add_region (newregion, (jack_nframes_t) (rv->region()->position() * rtv->get_diskstream()->speed()));
to_playlist->add_region (newregion, (nframes_t) (rv->region()->position() * rtv->get_diskstream()->speed()));
c.disconnect ();
@ -3025,8 +3025,8 @@ Editor::region_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
if ((int32_t)drag_info.current_pointer_frame > drag_info.pointer_frame_offset) {
jack_nframes_t sync_frame;
jack_nframes_t sync_offset;
nframes_t sync_frame;
nframes_t sync_offset;
int32_t sync_dir;
pending_region_position = drag_info.current_pointer_frame - drag_info.pointer_frame_offset;
@ -3261,7 +3261,7 @@ Editor::region_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
void
Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event)
{
jack_nframes_t where;
nframes_t where;
RegionView* rv = reinterpret_cast<RegionView *> (drag_info.data);
pair<set<Playlist*>::iterator,bool> insert_result;
bool nocommit = true;
@ -3300,7 +3300,7 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event
speed = atv->get_diskstream()->speed();
}
regionview_x_movement = (drag_info.last_frame_position != (jack_nframes_t) (rv->region()->position()/speed));
regionview_x_movement = (drag_info.last_frame_position != (nframes_t) (rv->region()->position()/speed));
regionview_y_movement = (drag_info.last_trackview != &rv->get_time_axis_view());
//printf ("last_frame: %s position is %lu %g\n", rv->get_time_axis_view().name().c_str(), drag_info.last_frame_position, speed);
@ -3385,7 +3385,7 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event
latest_regionview = 0;
where = (jack_nframes_t) (unit_to_frame (ix1) * speed);
where = (nframes_t) (unit_to_frame (ix1) * speed);
boost::shared_ptr<Region> new_region (RegionFactory::create ((*i)->region()));
from_playlist->remove_region (((*i)->region()));
@ -3425,7 +3425,7 @@ Editor::region_drag_finished_callback (ArdourCanvas::Item* item, GdkEvent* event
rv->get_canvas_frame()->get_bounds (ix1, iy1, ix2, iy2);
rv->get_canvas_group()->i2w (ix1, iy1);
where = (jack_nframes_t) (unit_to_frame (ix1) * ownspeed);
where = (nframes_t) (unit_to_frame (ix1) * ownspeed);
} else {
@ -3470,21 +3470,21 @@ Editor::region_view_item_click (AudioRegionView& rv, GdkEventButton* event)
if (Keyboard::modifier_state_equals (event->state, Keyboard::ModifierMask (Keyboard::Control|Keyboard::Alt))) {
align_region (rv.region(), SyncPoint, (jack_nframes_t) (edit_cursor->current_frame * speed));
align_region (rv.region(), SyncPoint, (nframes_t) (edit_cursor->current_frame * speed));
} else if (Keyboard::modifier_state_equals (event->state, Keyboard::ModifierMask (Keyboard::Control|Keyboard::Shift))) {
align_region (rv.region(), End, (jack_nframes_t) (edit_cursor->current_frame * speed));
align_region (rv.region(), End, (nframes_t) (edit_cursor->current_frame * speed));
} else {
align_region (rv.region(), Start, (jack_nframes_t) (edit_cursor->current_frame * speed));
align_region (rv.region(), Start, (nframes_t) (edit_cursor->current_frame * speed));
}
}
}
void
Editor::show_verbose_time_cursor (jack_nframes_t frame, double offset, double xpos, double ypos)
Editor::show_verbose_time_cursor (nframes_t frame, double offset, double xpos, double ypos)
{
char buf[128];
SMPTE::Time smpte;
@ -3509,7 +3509,7 @@ Editor::show_verbose_time_cursor (jack_nframes_t frame, double offset, double xp
case AudioClock::MinSec:
/* XXX fix this to compute min/sec properly */
session->smpte_time (frame, smpte);
secs = smpte.seconds + ((float) smpte.frames / session->smpte_frames_per_second);
secs = smpte.seconds + ((float) smpte.frames / Config->get_smpte_frames_per_second());
snprintf (buf, sizeof (buf), "%02" PRId32 ":%02" PRId32 ":%.4f", smpte.hours, smpte.minutes, secs);
break;
@ -3528,7 +3528,7 @@ Editor::show_verbose_time_cursor (jack_nframes_t frame, double offset, double xp
}
void
Editor::show_verbose_duration_cursor (jack_nframes_t start, jack_nframes_t end, double offset, double xpos, double ypos)
Editor::show_verbose_duration_cursor (nframes_t start, nframes_t end, double offset, double xpos, double ypos)
{
char buf[128];
SMPTE::Time smpte;
@ -3576,7 +3576,7 @@ Editor::show_verbose_duration_cursor (jack_nframes_t start, jack_nframes_t end,
case AudioClock::MinSec:
/* XXX fix this to compute min/sec properly */
session->smpte_duration (end - start, smpte);
secs = smpte.seconds + ((float) smpte.frames / session->smpte_frames_per_second);
secs = smpte.seconds + ((float) smpte.frames / Config->get_smpte_frames_per_second());
snprintf (buf, sizeof (buf), "%02" PRId32 ":%02" PRId32 ":%.4f", smpte.hours, smpte.minutes, secs);
break;
@ -3685,8 +3685,8 @@ Editor::cancel_selection ()
void
Editor::start_selection_op (ArdourCanvas::Item* item, GdkEvent* event, SelectionOp op)
{
jack_nframes_t start = 0;
jack_nframes_t end = 0;
nframes_t start = 0;
nframes_t end = 0;
if (session == 0) {
return;
@ -3743,10 +3743,10 @@ Editor::start_selection_op (ArdourCanvas::Item* item, GdkEvent* event, Selection
void
Editor::drag_selection (ArdourCanvas::Item* item, GdkEvent* event)
{
jack_nframes_t start = 0;
jack_nframes_t end = 0;
jack_nframes_t length;
jack_nframes_t pending_position;
nframes_t start = 0;
nframes_t end = 0;
nframes_t length;
nframes_t pending_position;
if ((int32_t) drag_info.current_pointer_frame > drag_info.pointer_frame_offset) {
pending_position = drag_info.current_pointer_frame - drag_info.pointer_frame_offset;
@ -3905,9 +3905,9 @@ Editor::start_trim (ArdourCanvas::Item* item, GdkEvent* event)
speed = tv->get_diskstream()->speed();
}
jack_nframes_t region_start = (jack_nframes_t) (clicked_regionview->region()->position() / speed);
jack_nframes_t region_end = (jack_nframes_t) (clicked_regionview->region()->last_frame() / speed);
jack_nframes_t region_length = (jack_nframes_t) (clicked_regionview->region()->length() / speed);
nframes_t region_start = (nframes_t) (clicked_regionview->region()->position() / speed);
nframes_t region_end = (nframes_t) (clicked_regionview->region()->last_frame() / speed);
nframes_t region_length = (nframes_t) (clicked_regionview->region()->length() / speed);
motion_frozen_playlists.clear();
@ -3948,7 +3948,7 @@ void
Editor::trim_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
{
RegionView* rv = clicked_regionview;
jack_nframes_t frame_delta = 0;
nframes_t frame_delta = 0;
bool left_direction;
bool obey_snap = !Keyboard::modifier_state_contains (event->button.state, Keyboard::snap_modifier());
@ -4031,7 +4031,7 @@ Editor::trim_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
}
case EndTrim:
if ((left_direction == true) && (drag_info.current_pointer_frame > (jack_nframes_t) (rv->region()->last_frame()/speed))) {
if ((left_direction == true) && (drag_info.current_pointer_frame > (nframes_t) (rv->region()->last_frame()/speed))) {
break;
} else {
for (list<RegionView*>::const_iterator i = selection->regions.by_layer().begin(); i != selection->regions.by_layer().end(); ++i) {
@ -4059,10 +4059,10 @@ Editor::trim_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
switch (trim_op) {
case StartTrim:
show_verbose_time_cursor((jack_nframes_t) (rv->region()->position()/speed), 10);
show_verbose_time_cursor((nframes_t) (rv->region()->position()/speed), 10);
break;
case EndTrim:
show_verbose_time_cursor((jack_nframes_t) (rv->region()->last_frame()/speed), 10);
show_verbose_time_cursor((nframes_t) (rv->region()->last_frame()/speed), 10);
break;
case ContentsTrim:
show_verbose_time_cursor(drag_info.current_pointer_frame, 10);
@ -4074,7 +4074,7 @@ Editor::trim_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
}
void
Editor::single_contents_trim (RegionView& rv, jack_nframes_t frame_delta, bool left_direction, bool swap_direction, bool obey_snap)
Editor::single_contents_trim (RegionView& rv, nframes_t frame_delta, bool left_direction, bool swap_direction, bool obey_snap)
{
boost::shared_ptr<Region> region (rv.region());
@ -4082,7 +4082,7 @@ Editor::single_contents_trim (RegionView& rv, jack_nframes_t frame_delta, bool l
return;
}
jack_nframes_t new_bound;
nframes_t new_bound;
double speed = 1.0;
TimeAxisView* tvp = clicked_axisview;
@ -4094,27 +4094,27 @@ Editor::single_contents_trim (RegionView& rv, jack_nframes_t frame_delta, bool l
if (left_direction) {
if (swap_direction) {
new_bound = (jack_nframes_t) (region->position()/speed) + frame_delta;
new_bound = (nframes_t) (region->position()/speed) + frame_delta;
} else {
new_bound = (jack_nframes_t) (region->position()/speed) - frame_delta;
new_bound = (nframes_t) (region->position()/speed) - frame_delta;
}
} else {
if (swap_direction) {
new_bound = (jack_nframes_t) (region->position()/speed) - frame_delta;
new_bound = (nframes_t) (region->position()/speed) - frame_delta;
} else {
new_bound = (jack_nframes_t) (region->position()/speed) + frame_delta;
new_bound = (nframes_t) (region->position()/speed) + frame_delta;
}
}
if (obey_snap) {
snap_to (new_bound);
}
region->trim_start ((jack_nframes_t) (new_bound * speed), this);
region->trim_start ((nframes_t) (new_bound * speed), this);
rv.region_changed (StartChanged);
}
void
Editor::single_start_trim (RegionView& rv, jack_nframes_t frame_delta, bool left_direction, bool obey_snap)
Editor::single_start_trim (RegionView& rv, nframes_t frame_delta, bool left_direction, bool obey_snap)
{
boost::shared_ptr<Region> region (rv.region());
@ -4122,7 +4122,7 @@ Editor::single_start_trim (RegionView& rv, jack_nframes_t frame_delta, bool left
return;
}
jack_nframes_t new_bound;
nframes_t new_bound;
double speed = 1.0;
TimeAxisView* tvp = clicked_axisview;
@ -4133,22 +4133,22 @@ Editor::single_start_trim (RegionView& rv, jack_nframes_t frame_delta, bool left
}
if (left_direction) {
new_bound = (jack_nframes_t) (region->position()/speed) - frame_delta;
new_bound = (nframes_t) (region->position()/speed) - frame_delta;
} else {
new_bound = (jack_nframes_t) (region->position()/speed) + frame_delta;
new_bound = (nframes_t) (region->position()/speed) + frame_delta;
}
if (obey_snap) {
snap_to (new_bound, (left_direction ? 0 : 1));
}
region->trim_front ((jack_nframes_t) (new_bound * speed), this);
region->trim_front ((nframes_t) (new_bound * speed), this);
rv.region_changed (Change (LengthChanged|PositionChanged|StartChanged));
}
void
Editor::single_end_trim (RegionView& rv, jack_nframes_t frame_delta, bool left_direction, bool obey_snap)
Editor::single_end_trim (RegionView& rv, nframes_t frame_delta, bool left_direction, bool obey_snap)
{
boost::shared_ptr<Region> region (rv.region());
@ -4156,7 +4156,7 @@ Editor::single_end_trim (RegionView& rv, jack_nframes_t frame_delta, bool left_d
return;
}
jack_nframes_t new_bound;
nframes_t new_bound;
double speed = 1.0;
TimeAxisView* tvp = clicked_axisview;
@ -4167,15 +4167,15 @@ Editor::single_end_trim (RegionView& rv, jack_nframes_t frame_delta, bool left_d
}
if (left_direction) {
new_bound = (jack_nframes_t) ((region->last_frame() + 1)/speed) - frame_delta;
new_bound = (nframes_t) ((region->last_frame() + 1)/speed) - frame_delta;
} else {
new_bound = (jack_nframes_t) ((region->last_frame() + 1)/speed) + frame_delta;
new_bound = (nframes_t) ((region->last_frame() + 1)/speed) + frame_delta;
}
if (obey_snap) {
snap_to (new_bound);
}
region->trim_end ((jack_nframes_t) (new_bound * speed), this);
region->trim_end ((nframes_t) (new_bound * speed), this);
rv.region_changed (LengthChanged);
}
@ -4214,7 +4214,7 @@ void
Editor::point_trim (GdkEvent* event)
{
RegionView* rv = clicked_regionview;
jack_nframes_t new_bound = drag_info.current_pointer_frame;
nframes_t new_bound = drag_info.current_pointer_frame;
if (!Keyboard::modifier_state_contains (event->button.state, Keyboard::snap_modifier())) {
snap_to (new_bound);
@ -4361,8 +4361,8 @@ Editor::start_range_markerbar_op (ArdourCanvas::Item* item, GdkEvent* event, Ran
void
Editor::drag_range_markerbar_op (ArdourCanvas::Item* item, GdkEvent* event)
{
jack_nframes_t start = 0;
jack_nframes_t end = 0;
nframes_t start = 0;
nframes_t end = 0;
ArdourCanvas::SimpleRect *crect = (range_marker_op == CreateRangeMarker) ? range_bar_drag_rect: transport_bar_drag_rect;
if (!Keyboard::modifier_state_contains (event->button.state, Keyboard::snap_modifier())) {
@ -4465,8 +4465,8 @@ Editor::end_range_markerbar_op (ArdourCanvas::Item* item, GdkEvent* event)
if (Keyboard::no_modifier_keys_pressed (&event->button)) {
jack_nframes_t start;
jack_nframes_t end;
nframes_t start;
nframes_t end;
start = session->locations()->first_mark_before (drag_info.grab_frame);
end = session->locations()->first_mark_after (drag_info.grab_frame);
@ -4517,8 +4517,8 @@ Editor::start_mouse_zoom (ArdourCanvas::Item* item, GdkEvent* event)
void
Editor::drag_mouse_zoom (ArdourCanvas::Item* item, GdkEvent* event)
{
jack_nframes_t start;
jack_nframes_t end;
nframes_t start;
nframes_t end;
if (!Keyboard::modifier_state_contains (event->button.state, Keyboard::snap_modifier())) {
snap_to (drag_info.current_pointer_frame);
@ -4578,7 +4578,7 @@ Editor::end_mouse_zoom (ArdourCanvas::Item* item, GdkEvent* event)
}
void
Editor::reposition_zoom_rect (jack_nframes_t start, jack_nframes_t end)
Editor::reposition_zoom_rect (nframes_t start, nframes_t end)
{
double x1 = frame_to_pixel (start);
double x2 = frame_to_pixel (end);
@ -4605,8 +4605,8 @@ Editor::start_rubberband_select (ArdourCanvas::Item* item, GdkEvent* event)
void
Editor::drag_rubberband_select (ArdourCanvas::Item* item, GdkEvent* event)
{
jack_nframes_t start;
jack_nframes_t end;
nframes_t start;
nframes_t end;
double y1;
double y2;
@ -4775,7 +4775,7 @@ Editor::end_time_fx (ArdourCanvas::Item* item, GdkEvent* event)
return;
}
jack_nframes_t newlen = drag_info.last_pointer_frame - clicked_regionview->region()->position();
nframes_t newlen = drag_info.last_pointer_frame - clicked_regionview->region()->position();
float percentage = (float) ((double) newlen - (double) clicked_regionview->region()->length()) / ((double) newlen) * 100.0f;
begin_reversible_command (_("timestretch"));
@ -4786,7 +4786,7 @@ Editor::end_time_fx (ArdourCanvas::Item* item, GdkEvent* event)
}
void
Editor::mouse_brush_insert_region (RegionView* rv, jack_nframes_t pos)
Editor::mouse_brush_insert_region (RegionView* rv, nframes_t pos)
{
/* no brushing without a useful snap setting */
@ -4827,7 +4827,7 @@ Editor::mouse_brush_insert_region (RegionView* rv, jack_nframes_t pos)
double speed = atv->get_diskstream()->speed();
XMLNode &before = playlist->get_state();
playlist->add_region (boost::dynamic_pointer_cast<AudioRegion> (RegionFactory::create (arv->audio_region())), (jack_nframes_t) (pos * speed));
playlist->add_region (boost::dynamic_pointer_cast<AudioRegion> (RegionFactory::create (arv->audio_region())), (nframes_t) (pos * speed));
XMLNode &after = playlist->get_state();
session->add_command(new MementoCommand<Playlist>(*playlist, &before, &after));

View File

@ -90,89 +90,8 @@ Editor::redo (uint32_t n)
}
}
void
Editor::set_meter_hold (int32_t cnt)
{
Config->set_meter_hold_off(false);
Config->set_meter_hold_short(false);
Config->set_meter_hold_medium(false);
Config->set_meter_hold_long(false);
switch (cnt)
{
case 0:
Config->set_meter_hold_off(true);
break;
case 40:
Config->set_meter_hold_short(true);
break;
case 100:
Config->set_meter_hold_medium(true);
break;
case 200:
Config->set_meter_hold_long(true);
break;
}
if (session) {
session->set_meter_hold (cnt);
}
}
void
Editor::set_meter_falloff (int intval)
{
float val = 0.0f; /* off */
std::string str;
Config->set_meter_falloff_off(false);
Config->set_meter_falloff_slowest(false);
Config->set_meter_falloff_slow(false);
Config->set_meter_falloff_medium(false);
Config->set_meter_falloff_fast(false);
Config->set_meter_falloff_faster(false);
Config->set_meter_falloff_fastest(false);
switch (intval)
{
case 0:
val = 0.0f;
Config->set_meter_falloff_off(true);
break;
case 1:
val = 0.125f;
Config->set_meter_falloff_slowest(true);
break;
case 2:
val = 0.250f;
Config->set_meter_falloff_slow(true);
break;
case 3:
val = 0.375f;
Config->set_meter_falloff_medium(true);
break;
case 4:
val = 0.500f;
Config->set_meter_falloff_fast(true);
break;
case 5:
val = 0.750f;
Config->set_meter_falloff_faster(true);
break;
case 6:
val = 0.875f;
Config->set_meter_falloff_fastest(true);
break;
}
if (session) {
session->set_meter_falloff (val);
}
}
int
Editor::ensure_cursor (jack_nframes_t *pos)
Editor::ensure_cursor (nframes_t *pos)
{
*pos = edit_cursor->current_frame;
return 0;
@ -185,13 +104,13 @@ Editor::split_region ()
}
void
Editor::split_region_at (jack_nframes_t where)
Editor::split_region_at (nframes_t where)
{
split_regions_at (where, selection->regions);
}
void
Editor::split_regions_at (jack_nframes_t where, RegionSelection& regions)
Editor::split_regions_at (nframes_t where, RegionSelection& regions)
{
begin_reversible_command (_("split"));
@ -291,7 +210,7 @@ Editor::select_region_for_operation (int dir, TimeAxisView **tv)
{
RegionView* rv;
boost::shared_ptr<Region> region;
jack_nframes_t start = 0;
nframes_t start = 0;
if (selection->time.start () == selection->time.end_frame ()) {
@ -334,7 +253,7 @@ Editor::extend_selection_to_end_of_region (bool next)
{
TimeAxisView *tv;
boost::shared_ptr<Region> region;
jack_nframes_t start;
nframes_t start;
if ((region = select_region_for_operation (next ? 1 : 0, &tv)) == 0) {
return;
@ -362,7 +281,7 @@ Editor::extend_selection_to_start_of_region (bool previous)
{
TimeAxisView *tv;
boost::shared_ptr<Region> region;
jack_nframes_t end;
nframes_t end;
if ((region = select_region_for_operation (previous ? -1 : 0, &tv)) == 0) {
return;
@ -389,8 +308,8 @@ Editor::extend_selection_to_start_of_region (bool previous)
void
Editor::nudge_forward (bool next)
{
jack_nframes_t distance;
jack_nframes_t next_distance;
nframes_t distance;
nframes_t next_distance;
if (!session) return;
@ -424,8 +343,8 @@ Editor::nudge_forward (bool next)
void
Editor::nudge_backward (bool next)
{
jack_nframes_t distance;
jack_nframes_t next_distance;
nframes_t distance;
nframes_t next_distance;
if (!session) return;
@ -470,7 +389,7 @@ Editor::nudge_backward (bool next)
void
Editor::nudge_forward_capture_offset ()
{
jack_nframes_t distance;
nframes_t distance;
if (!session) return;
@ -497,7 +416,7 @@ Editor::nudge_forward_capture_offset ()
void
Editor::nudge_backward_capture_offset ()
{
jack_nframes_t distance;
nframes_t distance;
if (!session) return;
@ -543,7 +462,7 @@ Editor::move_to_end ()
void
Editor::build_region_boundary_cache ()
{
jack_nframes_t pos = 0;
nframes_t pos = 0;
RegionPoint point;
boost::shared_ptr<Region> r;
TrackViewList tracks;
@ -599,7 +518,7 @@ Editor::build_region_boundary_cache ()
}
}
jack_nframes_t rpos;
nframes_t rpos;
switch (snap_type) {
case SnapToRegionStart:
@ -642,20 +561,20 @@ Editor::build_region_boundary_cache ()
}
boost::shared_ptr<Region>
Editor::find_next_region (jack_nframes_t frame, RegionPoint point, int32_t dir, TrackViewList& tracks, TimeAxisView **ontrack)
Editor::find_next_region (nframes_t frame, RegionPoint point, int32_t dir, TrackViewList& tracks, TimeAxisView **ontrack)
{
TrackViewList::iterator i;
jack_nframes_t closest = max_frames;
nframes_t closest = max_frames;
boost::shared_ptr<Region> ret;
jack_nframes_t rpos = 0;
nframes_t rpos = 0;
float track_speed;
jack_nframes_t track_frame;
nframes_t track_frame;
AudioTimeAxisView *atav;
for (i = tracks.begin(); i != tracks.end(); ++i) {
jack_nframes_t distance;
nframes_t distance;
boost::shared_ptr<Region> r;
track_speed = 1.0f;
@ -707,7 +626,7 @@ void
Editor::cursor_to_region_point (Cursor* cursor, RegionPoint point, int32_t dir)
{
boost::shared_ptr<Region> r;
jack_nframes_t pos = cursor->current_frame;
nframes_t pos = cursor->current_frame;
if (!session) {
return;
@ -786,7 +705,7 @@ Editor::cursor_to_previous_region_point (Cursor* cursor, RegionPoint point)
void
Editor::cursor_to_selection_start (Cursor *cursor)
{
jack_nframes_t pos = 0;
nframes_t pos = 0;
switch (mouse_mode) {
case MouseObject:
if (!selection->regions.empty()) {
@ -814,7 +733,7 @@ Editor::cursor_to_selection_start (Cursor *cursor)
void
Editor::cursor_to_selection_end (Cursor *cursor)
{
jack_nframes_t pos = 0;
nframes_t pos = 0;
switch (mouse_mode) {
case MouseObject:
@ -843,8 +762,8 @@ Editor::cursor_to_selection_end (Cursor *cursor)
void
Editor::playhead_backward ()
{
jack_nframes_t pos;
jack_nframes_t cnt;
nframes_t pos;
nframes_t cnt;
float prefix;
bool was_floating;
@ -852,15 +771,15 @@ Editor::playhead_backward ()
cnt = 1;
} else {
if (was_floating) {
cnt = (jack_nframes_t) floor (prefix * session->frame_rate ());
cnt = (nframes_t) floor (prefix * session->frame_rate ());
} else {
cnt = (jack_nframes_t) prefix;
cnt = (nframes_t) prefix;
}
}
pos = playhead_cursor->current_frame;
if ((jack_nframes_t) pos < cnt) {
if ((nframes_t) pos < cnt) {
pos = 0;
} else {
pos -= cnt;
@ -877,8 +796,8 @@ Editor::playhead_backward ()
void
Editor::playhead_forward ()
{
jack_nframes_t pos;
jack_nframes_t cnt;
nframes_t pos;
nframes_t cnt;
bool was_floating;
float prefix;
@ -886,9 +805,9 @@ Editor::playhead_forward ()
cnt = 1;
} else {
if (was_floating) {
cnt = (jack_nframes_t) floor (prefix * session->frame_rate ());
cnt = (nframes_t) floor (prefix * session->frame_rate ());
} else {
cnt = (jack_nframes_t) floor (prefix);
cnt = (nframes_t) floor (prefix);
}
}
@ -917,8 +836,8 @@ Editor::cursor_align (bool playhead_to_edit)
void
Editor::edit_cursor_backward ()
{
jack_nframes_t pos;
jack_nframes_t cnt;
nframes_t pos;
nframes_t cnt;
float prefix;
bool was_floating;
@ -926,15 +845,15 @@ Editor::edit_cursor_backward ()
cnt = 1;
} else {
if (was_floating) {
cnt = (jack_nframes_t) floor (prefix * session->frame_rate ());
cnt = (nframes_t) floor (prefix * session->frame_rate ());
} else {
cnt = (jack_nframes_t) prefix;
cnt = (nframes_t) prefix;
}
}
pos = edit_cursor->current_frame;
if ((jack_nframes_t) pos < cnt) {
if ((nframes_t) pos < cnt) {
pos = 0;
} else {
pos -= cnt;
@ -946,8 +865,8 @@ Editor::edit_cursor_backward ()
void
Editor::edit_cursor_forward ()
{
jack_nframes_t pos;
jack_nframes_t cnt;
nframes_t pos;
nframes_t cnt;
bool was_floating;
float prefix;
@ -955,9 +874,9 @@ Editor::edit_cursor_forward ()
cnt = 1;
} else {
if (was_floating) {
cnt = (jack_nframes_t) floor (prefix * session->frame_rate ());
cnt = (nframes_t) floor (prefix * session->frame_rate ());
} else {
cnt = (jack_nframes_t) floor (prefix);
cnt = (nframes_t) floor (prefix);
}
}
@ -970,16 +889,16 @@ Editor::goto_frame ()
{
float prefix;
bool was_floating;
jack_nframes_t frame;
nframes_t frame;
if (get_prefix (prefix, was_floating)) {
return;
}
if (was_floating) {
frame = (jack_nframes_t) floor (prefix * session->frame_rate());
frame = (nframes_t) floor (prefix * session->frame_rate());
} else {
frame = (jack_nframes_t) floor (prefix);
frame = (nframes_t) floor (prefix);
}
session->request_locate (frame);
@ -988,19 +907,19 @@ Editor::goto_frame ()
void
Editor::scroll_backward (float pages)
{
jack_nframes_t frame;
jack_nframes_t one_page = (jack_nframes_t) rint (canvas_width * frames_per_unit);
nframes_t frame;
nframes_t one_page = (nframes_t) rint (canvas_width * frames_per_unit);
bool was_floating;
float prefix;
jack_nframes_t cnt;
nframes_t cnt;
if (get_prefix (prefix, was_floating)) {
cnt = (jack_nframes_t) floor (pages * one_page);
cnt = (nframes_t) floor (pages * one_page);
} else {
if (was_floating) {
cnt = (jack_nframes_t) floor (prefix * session->frame_rate());
cnt = (nframes_t) floor (prefix * session->frame_rate());
} else {
cnt = (jack_nframes_t) floor (prefix * one_page);
cnt = (nframes_t) floor (prefix * one_page);
}
}
@ -1016,24 +935,24 @@ Editor::scroll_backward (float pages)
void
Editor::scroll_forward (float pages)
{
jack_nframes_t frame;
jack_nframes_t one_page = (jack_nframes_t) rint (canvas_width * frames_per_unit);
nframes_t frame;
nframes_t one_page = (nframes_t) rint (canvas_width * frames_per_unit);
bool was_floating;
float prefix;
jack_nframes_t cnt;
nframes_t cnt;
if (get_prefix (prefix, was_floating)) {
cnt = (jack_nframes_t) floor (pages * one_page);
cnt = (nframes_t) floor (pages * one_page);
} else {
if (was_floating) {
cnt = (jack_nframes_t) floor (prefix * session->frame_rate());
cnt = (nframes_t) floor (prefix * session->frame_rate());
} else {
cnt = (jack_nframes_t) floor (prefix * one_page);
cnt = (nframes_t) floor (prefix * one_page);
}
}
if (ULONG_MAX - cnt < leftmost_frame) {
frame = ULONG_MAX - cnt;
if (max_frames - cnt < leftmost_frame) {
frame = max_frames - cnt;
} else {
frame = leftmost_frame + cnt;
}
@ -1123,17 +1042,17 @@ Editor::temporal_zoom (gdouble fpu)
{
if (!session) return;
jack_nframes_t current_page = current_page_frames();
jack_nframes_t current_leftmost = leftmost_frame;
jack_nframes_t current_rightmost;
jack_nframes_t current_center;
jack_nframes_t new_page;
jack_nframes_t leftmost_after_zoom = 0;
nframes_t current_page = current_page_frames();
nframes_t current_leftmost = leftmost_frame;
nframes_t current_rightmost;
nframes_t current_center;
nframes_t new_page;
nframes_t leftmost_after_zoom = 0;
double nfpu;
nfpu = fpu;
new_page = (jack_nframes_t) floor (canvas_width * nfpu);
new_page = (nframes_t) floor (canvas_width * nfpu);
switch (zoom_focus) {
case ZoomFocusLeft:
@ -1197,8 +1116,8 @@ Editor::temporal_zoom_selection ()
return;
}
jack_nframes_t start = selection->time[clicked_selection].start;
jack_nframes_t end = selection->time[clicked_selection].end;
nframes_t start = selection->time[clicked_selection].start;
nframes_t end = selection->time[clicked_selection].end;
temporal_zoom_by_frame (start, end, "zoom to selection");
}
@ -1214,7 +1133,7 @@ Editor::temporal_zoom_session ()
}
void
Editor::temporal_zoom_by_frame (jack_nframes_t start, jack_nframes_t end, const string & op)
Editor::temporal_zoom_by_frame (nframes_t start, nframes_t end, const string & op)
{
if (!session) return;
@ -1222,7 +1141,7 @@ Editor::temporal_zoom_by_frame (jack_nframes_t start, jack_nframes_t end, const
return;
}
jack_nframes_t range = end - start;
nframes_t range = end - start;
double new_fpu = (double)range / (double)canvas_width;
// double p2 = 1.0;
@ -1232,9 +1151,9 @@ Editor::temporal_zoom_by_frame (jack_nframes_t start, jack_nframes_t end, const
// }
// new_fpu = p2;
jack_nframes_t new_page = (jack_nframes_t) floor (canvas_width * new_fpu);
jack_nframes_t middle = (jack_nframes_t) floor( (double)start + ((double)range / 2.0f ));
jack_nframes_t new_leftmost = (jack_nframes_t) floor( (double)middle - ((double)new_page/2.0f));
nframes_t new_page = (nframes_t) floor (canvas_width * new_fpu);
nframes_t middle = (nframes_t) floor( (double)start + ((double)range / 2.0f ));
nframes_t new_leftmost = (nframes_t) floor( (double)middle - ((double)new_page/2.0f));
if (new_leftmost > middle) new_leftmost = 0;
@ -1247,7 +1166,7 @@ Editor::temporal_zoom_by_frame (jack_nframes_t start, jack_nframes_t end, const
}
void
Editor::temporal_zoom_to_frame (bool coarser, jack_nframes_t frame)
Editor::temporal_zoom_to_frame (bool coarser, nframes_t frame)
{
if (!session) return;
@ -1266,7 +1185,7 @@ Editor::temporal_zoom_to_frame (bool coarser, jack_nframes_t frame)
if (new_fpu == frames_per_unit) return;
jack_nframes_t new_leftmost = frame - (jack_nframes_t)range_before;
nframes_t new_leftmost = frame - (nframes_t)range_before;
if (new_leftmost > frame) new_leftmost = 0;
@ -1289,8 +1208,8 @@ Editor::add_location_from_selection ()
return;
}
jack_nframes_t start = selection->time[clicked_selection].start;
jack_nframes_t end = selection->time[clicked_selection].end;
nframes_t start = selection->time[clicked_selection].start;
nframes_t end = selection->time[clicked_selection].end;
Location *location = new Location (start, end, "selection");
@ -1305,7 +1224,7 @@ Editor::add_location_from_selection ()
void
Editor::add_location_from_playhead_cursor ()
{
jack_nframes_t where = session->audible_frame();
nframes_t where = session->audible_frame();
Location *location = new Location (where, where, "mark", Location::IsMark);
session->begin_reversible_command (_("add marker"));
@ -1414,7 +1333,7 @@ Editor::invert_selection ()
}
bool
Editor::select_all_within (jack_nframes_t start, jack_nframes_t end, double top, double bot, Selection::Operation op)
Editor::select_all_within (nframes_t start, nframes_t end, double top, double bot, Selection::Operation op)
{
list<Selectable *> touched;
@ -1508,8 +1427,8 @@ Editor::select_all_selectables_using_time_selection ()
return;
}
jack_nframes_t start = selection->time[clicked_selection].start;
jack_nframes_t end = selection->time[clicked_selection].end;
nframes_t start = selection->time[clicked_selection].start;
nframes_t end = selection->time[clicked_selection].end;
if (end - start < 1) {
return;
@ -1575,8 +1494,8 @@ Editor::select_all_selectables_using_loop()
void
Editor::select_all_selectables_using_cursor (Cursor *cursor, bool after)
{
jack_nframes_t start;
jack_nframes_t end;
nframes_t start;
nframes_t end;
list<Selectable *> touched;
if (after) {
@ -1606,8 +1525,8 @@ Editor::select_all_selectables_using_cursor (Cursor *cursor, bool after)
void
Editor::select_all_selectables_between_cursors (Cursor *cursor, Cursor *other_cursor)
{
jack_nframes_t start;
jack_nframes_t end;
nframes_t start;
nframes_t end;
list<Selectable *> touched;
bool other_cursor_is_first = cursor->current_frame > other_cursor->current_frame;
@ -1725,7 +1644,7 @@ Editor::jump_backward_to_mark ()
void
Editor::set_mark ()
{
jack_nframes_t pos;
nframes_t pos;
float prefix;
bool was_floating;
@ -1733,9 +1652,9 @@ Editor::set_mark ()
pos = session->audible_frame ();
} else {
if (was_floating) {
pos = (jack_nframes_t) floor (prefix * session->frame_rate ());
pos = (nframes_t) floor (prefix * session->frame_rate ());
} else {
pos = (jack_nframes_t) floor (prefix);
pos = (nframes_t) floor (prefix);
}
}
@ -1796,7 +1715,7 @@ Editor::insert_region_list_drag (boost::shared_ptr<Region> region, int x, int y)
double wx, wy;
double cx, cy;
TimeAxisView *tv;
jack_nframes_t where;
nframes_t where;
AudioTimeAxisView *atv = 0;
Playlist *playlist;
@ -1863,17 +1782,24 @@ Editor::insert_region_list_selection (float times)
return;
}
TreeModel::iterator i = region_list_display.get_selection()->get_selected();
boost::shared_ptr<Region> region = (*i)[region_list_columns.region];
TreeView::Selection::ListHandle_Path rows = selected->get_selected_rows ();
begin_reversible_command (_("insert region"));
XMLNode &before = playlist->get_state();
playlist->add_region ((RegionFactory::create (region)), edit_cursor->current_frame, times);
session->add_command(new MementoCommand<Playlist>(*playlist, &before, &playlist->get_state()));
commit_reversible_command ();
/* only one row selected, so rows.begin() is it */
TreeIter iter;
if ((iter = region_list_model->get_iter (*rows.begin()))) {
boost::shared_ptr<Region> region = (*iter)[region_list_columns.region];
begin_reversible_command (_("insert region"));
XMLNode &before = playlist->get_state();
playlist->add_region ((RegionFactory::create (region)), edit_cursor->current_frame, times);
session->add_command(new MementoCommand<Playlist>(*playlist, &before, &playlist->get_state()));
commit_reversible_command ();
}
}
/* BUILT-IN EFFECTS */
void
@ -1898,9 +1824,9 @@ Editor::toggle_playback (bool with_abort)
return;
}
switch (session->slave_source()) {
case Session::None:
case Session::JACK:
switch (Config->get_slave_source()) {
case None:
case JACK:
break;
default:
/* transport controlled by the master */
@ -1914,8 +1840,8 @@ Editor::toggle_playback (bool with_abort)
if (session->transport_rolling()) {
session->request_stop (with_abort);
if (session->get_auto_loop()) {
session->request_auto_loop (false);
if (Config->get_auto_loop()) {
session->request_play_loop (false);
}
} else {
session->request_transport_speed (1.0f);
@ -1961,7 +1887,7 @@ Editor::loop_selected_region ()
// enable looping, reposition and start rolling
session->request_auto_loop (true);
session->request_play_loop (true);
session->request_locate (tll->start(), false);
session->request_transport_speed (1.0f);
}
@ -1991,7 +1917,7 @@ Editor::loop_location (Location& location)
tll->set (location.start(), location.end());
// enable looping, reposition and start rolling
session->request_auto_loop (true);
session->request_play_loop (true);
session->request_locate (tll->start(), true);
}
}
@ -2177,17 +2103,17 @@ Editor::region_from_selection ()
return;
}
jack_nframes_t start = selection->time[clicked_selection].start;
jack_nframes_t end = selection->time[clicked_selection].end;
nframes_t start = selection->time[clicked_selection].start;
nframes_t end = selection->time[clicked_selection].end;
jack_nframes_t selection_cnt = end - start + 1;
nframes_t selection_cnt = end - start + 1;
for (TrackSelection::iterator i = selection->tracks.begin(); i != selection->tracks.end(); ++i) {
boost::shared_ptr<AudioRegion> current;
boost::shared_ptr<Region> current_r;
Playlist *pl;
jack_nframes_t internal_start;
nframes_t internal_start;
string new_name;
if ((pl = (*i)->playlist()) == 0) {
@ -2215,15 +2141,15 @@ Editor::create_region_from_selection (vector<boost::shared_ptr<AudioRegion> >& n
return;
}
jack_nframes_t start = selection->time[clicked_selection].start;
jack_nframes_t end = selection->time[clicked_selection].end;
nframes_t start = selection->time[clicked_selection].start;
nframes_t end = selection->time[clicked_selection].end;
for (TrackSelection::iterator i = selection->tracks.begin(); i != selection->tracks.end(); ++i) {
boost::shared_ptr<AudioRegion> current;
boost::shared_ptr<Region> current_r;
Playlist* playlist;
jack_nframes_t internal_start;
nframes_t internal_start;
string new_name;
if ((playlist = (*i)->playlist()) == 0) {
@ -2303,7 +2229,7 @@ Editor::separate_region_from_selection ()
double speed = atv->get_diskstream()->speed();
for (list<AudioRange>::iterator t = selection->time.begin(); t != selection->time.end(); ++t) {
playlist->partition ((jack_nframes_t)((*t).start * speed), (jack_nframes_t)((*t).end * speed), true);
playlist->partition ((nframes_t)((*t).start * speed), (nframes_t)((*t).end * speed), true);
}
if (doing_undo)
@ -2358,7 +2284,7 @@ Editor::separate_regions_using_location (Location& loc)
double speed = atv->get_diskstream()->speed();
playlist->partition ((jack_nframes_t)(loc.start() * speed), (jack_nframes_t)(loc.end() * speed), true);
playlist->partition ((nframes_t)(loc.start() * speed), (nframes_t)(loc.end() * speed), true);
if (doing_undo)
session->add_command(new MementoCommand<Playlist>(*playlist, before, &playlist->get_state()));
}
@ -2404,9 +2330,9 @@ Editor::crop_region_to_selection ()
if (!playlists.empty()) {
jack_nframes_t start;
jack_nframes_t end;
jack_nframes_t cnt;
nframes_t start;
nframes_t end;
nframes_t cnt;
begin_reversible_command (_("trim to selection"));
@ -2441,7 +2367,7 @@ Editor::crop_region_to_selection ()
void
Editor::region_fill_track ()
{
jack_nframes_t end;
nframes_t end;
if (!session || selection->regions.empty()) {
return;
@ -2500,8 +2426,8 @@ Editor::region_fill_selection ()
TreeModel::iterator i = region_list_display.get_selection()->get_selected();
boost::shared_ptr<Region> region = (*i)[region_list_columns.region];
jack_nframes_t start = selection->time[clicked_selection].start;
jack_nframes_t end = selection->time[clicked_selection].end;
nframes_t start = selection->time[clicked_selection].start;
nframes_t end = selection->time[clicked_selection].end;
Playlist *playlist;
@ -2509,7 +2435,7 @@ Editor::region_fill_selection ()
return;
}
jack_nframes_t selection_length = end - start;
nframes_t selection_length = end - start;
float times = (float)selection_length / region->length();
begin_reversible_command (_("fill selection"));
@ -2529,7 +2455,7 @@ Editor::region_fill_selection ()
}
void
Editor::set_a_regions_sync_position (boost::shared_ptr<Region> region, jack_nframes_t position)
Editor::set_a_regions_sync_position (boost::shared_ptr<Region> region, nframes_t position)
{
if (!region->covers (position)) {
@ -2614,14 +2540,14 @@ struct RegionSortByTime {
};
void
Editor::align_selection_relative (RegionPoint point, jack_nframes_t position)
Editor::align_selection_relative (RegionPoint point, nframes_t position)
{
if (selection->regions.empty()) {
return;
}
jack_nframes_t distance;
jack_nframes_t pos = 0;
nframes_t distance;
nframes_t pos = 0;
int dir;
list<RegionView*> sorted;
@ -2673,7 +2599,7 @@ Editor::align_selection_relative (RegionPoint point, jack_nframes_t position)
}
void
Editor::align_selection (RegionPoint point, jack_nframes_t position)
Editor::align_selection (RegionPoint point, nframes_t position)
{
if (selection->regions.empty()) {
return;
@ -2689,7 +2615,7 @@ Editor::align_selection (RegionPoint point, jack_nframes_t position)
}
void
Editor::align_region (boost::shared_ptr<Region> region, RegionPoint point, jack_nframes_t position)
Editor::align_region (boost::shared_ptr<Region> region, RegionPoint point, nframes_t position)
{
begin_reversible_command (_("align region"));
align_region_internal (region, point, position);
@ -2697,7 +2623,7 @@ Editor::align_region (boost::shared_ptr<Region> region, RegionPoint point, jack_
}
void
Editor::align_region_internal (boost::shared_ptr<Region> region, RegionPoint point, jack_nframes_t position)
Editor::align_region_internal (boost::shared_ptr<Region> region, RegionPoint point, nframes_t position)
{
XMLNode &before = region->playlist()->get_state();
@ -2855,9 +2781,9 @@ Editor::bounce_range_selection ()
TrackViewList *views = get_valid_views (selection->time.track, selection->time.group);
jack_nframes_t start = selection->time[clicked_selection].start;
jack_nframes_t end = selection->time[clicked_selection].end;
jack_nframes_t cnt = end - start + 1;
nframes_t start = selection->time[clicked_selection].start;
nframes_t end = selection->time[clicked_selection].end;
nframes_t cnt = end - start + 1;
begin_reversible_command (_("bounce range"));
@ -2989,7 +2915,7 @@ Editor::cut_copy_regions (CutCopyOp op)
{
typedef std::map<AudioPlaylist*,AudioPlaylist*> PlaylistMapping;
PlaylistMapping pmap;
jack_nframes_t first_position = max_frames;
nframes_t first_position = max_frames;
set<Playlist*> freezelist;
pair<set<Playlist*>::iterator,bool> insert_result;
@ -3100,13 +3026,13 @@ Editor::mouse_paste ()
event.button.x = wx;
event.button.y = wy;
jack_nframes_t where = event_frame (&event, 0, 0);
nframes_t where = event_frame (&event, 0, 0);
snap_to (where);
paste_internal (where, 1);
}
void
Editor::paste_internal (jack_nframes_t position, float times)
Editor::paste_internal (nframes_t position, float times)
{
bool commit = false;
@ -3312,9 +3238,9 @@ void
Editor::nudge_track (bool use_edit_cursor, bool forwards)
{
Playlist *playlist;
jack_nframes_t distance;
jack_nframes_t next_distance;
jack_nframes_t start;
nframes_t distance;
nframes_t next_distance;
nframes_t start;
if (use_edit_cursor) {
start = edit_cursor->current_frame;
@ -3525,7 +3451,7 @@ Editor::external_edit_region ()
}
void
Editor::brush (jack_nframes_t pos)
Editor::brush (nframes_t pos)
{
RegionSelection sel;
snap_to (pos);

View File

@ -235,6 +235,7 @@ Editor::redisplay_regions ()
for (list<boost::shared_ptr<Region> >::iterator r = tmp_region_list.begin(); r != tmp_region_list.end(); ++r) {
add_region_to_region_display (*r);
}
tmp_region_list.clear();
region_list_display.set_model (region_list_model);
}
@ -582,7 +583,7 @@ Editor::region_list_display_drag_data_received (const RefPtr<Gdk::DragContext>&
vector<ustring> paths;
if (convert_drop_to_paths (paths, context, x, y, data, info, time) == 0) {
jack_nframes_t pos = 0;
nframes_t pos = 0;
do_embed (paths, false, ImportAsRegion, 0, pos, true);
context->drag_finish (true, false, time);
}

View File

@ -160,7 +160,7 @@ Editor::ruler_button_release (GdkEventButton* ev)
hide_verbose_canvas_cursor();
stop_canvas_autoscroll();
jack_nframes_t where = leftmost_frame + pixel_to_frame (x);
nframes_t where = leftmost_frame + pixel_to_frame (x);
switch (ev->button) {
case 1:
@ -229,11 +229,11 @@ Editor::ruler_mouse_motion (GdkEventMotion* ev)
track_canvas.c2w (x, y, wcx, wcy);
track_canvas.w2c (wcx, wcy, cx, cy);
jack_nframes_t where = leftmost_frame + pixel_to_frame (x);
nframes_t where = leftmost_frame + pixel_to_frame (x);
/// ripped from maybe_autoscroll
jack_nframes_t one_page = (jack_nframes_t) rint (canvas_width * frames_per_unit);
jack_nframes_t rightmost_frame = leftmost_frame + one_page;
nframes_t one_page = (nframes_t) rint (canvas_width * frames_per_unit);
nframes_t rightmost_frame = leftmost_frame + one_page;
jack_nframes_t frame = pixel_to_frame (cx);
@ -289,7 +289,7 @@ Editor::ruler_mouse_motion (GdkEventMotion* ev)
void
Editor::popup_ruler_menu (jack_nframes_t where, ItemType t)
Editor::popup_ruler_menu (nframes_t where, ItemType t)
{
using namespace Menu_Helpers;
@ -696,8 +696,8 @@ Editor::update_just_smpte ()
an uint32_t (or larger) to a float ... what to do ?
*/
jack_nframes_t page = (jack_nframes_t) floor (canvas_width * frames_per_unit);
jack_nframes_t rightmost_frame = leftmost_frame + page;
nframes_t page = (nframes_t) floor (canvas_width * frames_per_unit);
nframes_t rightmost_frame = leftmost_frame + page;
if (ruler_shown[ruler_metric_smpte]) {
gtk_custom_ruler_set_range (GTK_CUSTOM_RULER(_smpte_ruler), leftmost_frame, rightmost_frame,
@ -708,7 +708,7 @@ Editor::update_just_smpte ()
void
Editor::update_fixed_rulers ()
{
jack_nframes_t rightmost_frame;
nframes_t rightmost_frame;
if (session == 0) {
return;
@ -718,7 +718,7 @@ Editor::update_fixed_rulers ()
an uint32_t (or larger) to a float ... what to do ?
*/
jack_nframes_t page = (jack_nframes_t) floor (canvas_width * frames_per_unit);
nframes_t page = (nframes_t) floor (canvas_width * frames_per_unit);
ruler_metrics[ruler_metric_smpte].units_per_pixel = frames_per_unit;
ruler_metrics[ruler_metric_frames].units_per_pixel = frames_per_unit;
@ -757,7 +757,7 @@ Editor::update_tempo_based_rulers ()
an uint32_t (or larger) to a float ... what to do ?
*/
jack_nframes_t page = (jack_nframes_t) floor (canvas_width * frames_per_unit);
nframes_t page = (nframes_t) floor (canvas_width * frames_per_unit);
ruler_metrics[ruler_metric_bbt].units_per_pixel = frames_per_unit;
if (ruler_shown[ruler_metric_bbt]) {
@ -795,10 +795,10 @@ Editor::_metric_get_minsec (GtkCustomRulerMark **marks, gdouble lower, gdouble u
gint
Editor::metric_get_smpte (GtkCustomRulerMark **marks, gdouble lower, gdouble upper, gint maxchars)
{
jack_nframes_t range;
jack_nframes_t pos;
jack_nframes_t spacer;
jack_nframes_t fr;
nframes_t range;
nframes_t pos;
nframes_t spacer;
nframes_t fr;
SMPTE::Time smpte;
gchar buf[16];
gint nmarks = 0;
@ -816,13 +816,13 @@ Editor::metric_get_smpte (GtkCustomRulerMark **marks, gdouble lower, gdouble upp
fr = session->frame_rate();
if (lower > (spacer = (jack_nframes_t)(128 * Editor::get_current_zoom ()))) {
if (lower > (spacer = (nframes_t)(128 * Editor::get_current_zoom ()))) {
lower = lower - spacer;
} else {
lower = 0;
}
upper = upper + spacer;
range = (jack_nframes_t) floor (upper - lower);
range = (nframes_t) floor (upper - lower);
if (range < (2 * session->frames_per_smpte_frame())) { /* 0 - 2 frames */
show_bits = true;
@ -831,19 +831,19 @@ Editor::metric_get_smpte (GtkCustomRulerMark **marks, gdouble lower, gdouble upp
} else if (range <= (fr / 4)) { /* 2 frames - 0.250 second */
show_frames = true;
mark_modulo = 1;
nmarks = 1 + (range / (jack_nframes_t)session->frames_per_smpte_frame());
nmarks = 1 + (range / (nframes_t)session->frames_per_smpte_frame());
} else if (range <= (fr / 2)) { /* 0.25-0.5 second */
show_frames = true;
mark_modulo = 2;
nmarks = 1 + (range / (jack_nframes_t)session->frames_per_smpte_frame());
nmarks = 1 + (range / (nframes_t)session->frames_per_smpte_frame());
} else if (range <= fr) { /* 0.5-1 second */
show_frames = true;
mark_modulo = 5;
nmarks = 1 + (range / (jack_nframes_t)session->frames_per_smpte_frame());
nmarks = 1 + (range / (nframes_t)session->frames_per_smpte_frame());
} else if (range <= 2 * fr) { /* 1-2 seconds */
show_frames = true;
mark_modulo = 10;
nmarks = 1 + (range / (jack_nframes_t)session->frames_per_smpte_frame());
nmarks = 1 + (range / (nframes_t)session->frames_per_smpte_frame());
} else if (range <= 8 * fr) { /* 2-8 seconds */
show_seconds = true;
mark_modulo = 1;
@ -894,14 +894,14 @@ Editor::metric_get_smpte (GtkCustomRulerMark **marks, gdouble lower, gdouble upp
nmarks = 1 + 24;
} else {
/* not possible if jack_nframes_t is a 32 bit quantity */
/* not possible if nframes_t is a 32 bit quantity */
show_hours = true;
mark_modulo = 4;
nmarks = 1 + 24;
}
pos = (jack_nframes_t) floor (lower);
pos = (nframes_t) floor (lower);
*marks = (GtkCustomRulerMark *) g_malloc (sizeof(GtkCustomRulerMark) * nmarks);
@ -1044,12 +1044,12 @@ Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble upper
gint nmarks;
char buf[64];
gint n;
jack_nframes_t pos;
nframes_t pos;
bool bar_helper_on = true;
BBT_Time next_beat;
jack_nframes_t next_beat_pos;
jack_nframes_t ilower = (jack_nframes_t) floor (lower);
nframes_t next_beat_pos;
nframes_t ilower = (nframes_t) floor (lower);
if ((desirable_marks = maxchars / 7) == 0) {
return 0;
@ -1102,7 +1102,7 @@ Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble upper
uint32_t tick = 0;
uint32_t skip;
uint32_t t;
jack_nframes_t frame_skip;
nframes_t frame_skip;
double frame_skip_error;
double accumulated_error;
double position_of_helper;
@ -1173,7 +1173,7 @@ Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble upper
next_beat_pos = session->tempo_map().frame_time(next_beat);
frame_skip = (jack_nframes_t) floor (frame_skip_error = (session->frame_rate() * 60) / (bbt_beat_subdivision * (*i).tempo->beats_per_minute()));
frame_skip = (nframes_t) floor (frame_skip_error = (session->frame_rate() * 60) / (bbt_beat_subdivision * (*i).tempo->beats_per_minute()));
frame_skip_error -= frame_skip;
skip = (uint32_t) (Meter::ticks_per_beat / bbt_beat_subdivision);
@ -1199,7 +1199,7 @@ Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble upper
(*marks)[n].label = g_strdup (buf);
/* Error compensation for float to jack_nframes_t*/
/* Error compensation for float to nframes_t*/
accumulated_error += frame_skip_error;
if (accumulated_error > 1) {
pos += 1;
@ -1327,10 +1327,10 @@ Editor::metric_get_bbt (GtkCustomRulerMark **marks, gdouble lower, gdouble upper
gint
Editor::metric_get_frames (GtkCustomRulerMark **marks, gdouble lower, gdouble upper, gint maxchars)
{
jack_nframes_t mark_interval;
jack_nframes_t pos;
jack_nframes_t ilower = (jack_nframes_t) floor (lower);
jack_nframes_t iupper = (jack_nframes_t) floor (upper);
nframes_t mark_interval;
nframes_t pos;
nframes_t ilower = (nframes_t) floor (lower);
nframes_t iupper = (nframes_t) floor (upper);
gchar buf[16];
gint nmarks;
gint n;
@ -1358,15 +1358,15 @@ Editor::metric_get_frames (GtkCustomRulerMark **marks, gdouble lower, gdouble up
}
static void
sample_to_clock_parts ( jack_nframes_t sample,
jack_nframes_t sample_rate,
sample_to_clock_parts ( nframes_t sample,
nframes_t sample_rate,
long *hrs_p,
long *mins_p,
long *secs_p,
long *millisecs_p)
{
jack_nframes_t left;
nframes_t left;
long hrs;
long mins;
long secs;
@ -1392,11 +1392,11 @@ sample_to_clock_parts ( jack_nframes_t sample,
gint
Editor::metric_get_minsec (GtkCustomRulerMark **marks, gdouble lower, gdouble upper, gint maxchars)
{
jack_nframes_t range;
jack_nframes_t fr;
jack_nframes_t mark_interval;
jack_nframes_t pos;
jack_nframes_t spacer;
nframes_t range;
nframes_t fr;
nframes_t mark_interval;
nframes_t pos;
nframes_t spacer;
long hrs, mins, secs, millisecs;
gchar buf[16];
gint nmarks;
@ -1405,8 +1405,8 @@ Editor::metric_get_minsec (GtkCustomRulerMark **marks, gdouble lower, gdouble up
bool show_seconds = false;
bool show_minutes = false;
bool show_hours = false;
jack_nframes_t ilower = (jack_nframes_t) floor (lower);
jack_nframes_t iupper = (jack_nframes_t) floor (upper);
nframes_t ilower = (nframes_t) floor (lower);
nframes_t iupper = (nframes_t) floor (upper);
if (session == 0) {
return 0;
@ -1415,7 +1415,7 @@ Editor::metric_get_minsec (GtkCustomRulerMark **marks, gdouble lower, gdouble up
fr = session->frame_rate();
/* to prevent 'flashing' */
if (lower > (spacer = (jack_nframes_t)(128 * Editor::get_current_zoom ()))) {
if (lower > (spacer = (nframes_t)(128 * Editor::get_current_zoom ()))) {
lower = lower - spacer;
} else {
lower = 0;
@ -1487,7 +1487,7 @@ Editor::metric_get_minsec (GtkCustomRulerMark **marks, gdouble lower, gdouble up
mark_modulo = 2;
} else {
/* not possible if jack_nframes_t is a 32 bit quantity */
/* not possible if nframes_t is a 32 bit quantity */
mark_interval = 4 * 60 * 60 * fr; /* show 4 hrs */
}

View File

@ -44,6 +44,7 @@
#include "rgb_macros.h"
#include "gui_thread.h"
#include "color.h"
#include "time_axis_view.h"
#include "i18n.h"
@ -200,6 +201,7 @@ Editor::draw_measures ()
}
track_canvas.get_scroll_region (x1, y1, x2, y2);
y2 = TimeAxisView::hLargest*5000; // five thousand largest tracks should be enough.. :)
/* get the first bar spacing */
@ -210,8 +212,9 @@ Editor::draw_measures ()
beat_density = (beats * 10.0f) / track_canvas.get_width ();
if (beat_density > 2.0f) {
/* if the lines are too close together, they become useless */
if (beat_density > 4.0f) {
/* if the lines are too close together, they become useless
*/
return;
}
@ -228,10 +231,10 @@ Editor::draw_measures ()
} else {
color = color_map[cMeasureLineBar];
/* only draw beat lines if the gaps between beats are large. */
if (beat_density > 0.25) {
break;
if (beat_density > 2.0) {
/* only draw beat lines if the gaps between beats are large.
*/
break;
}
}
@ -255,7 +258,7 @@ Editor::draw_measures ()
}
void
Editor::mouse_add_new_tempo_event (jack_nframes_t frame)
Editor::mouse_add_new_tempo_event (nframes_t frame)
{
if (session == 0) {
return;
@ -297,7 +300,7 @@ Editor::mouse_add_new_tempo_event (jack_nframes_t frame)
}
void
Editor::mouse_add_new_meter_event (jack_nframes_t frame)
Editor::mouse_add_new_meter_event (nframes_t frame)
{
if (session == 0) {
return;

View File

@ -581,7 +581,7 @@ ExportDialog::save_state()
}
void
ExportDialog::set_range (jack_nframes_t start, jack_nframes_t end)
ExportDialog::set_range (nframes_t start, nframes_t end)
{
spec.start_frame = start;
spec.end_frame = end;
@ -595,7 +595,7 @@ ExportDialog::progress_timeout ()
}
void
frames_to_cd_frames_string (char* buf, jack_nframes_t when, jack_nframes_t fr)
frames_to_cd_frames_string (char* buf, nframes_t when, nframes_t fr)
{
long unsigned int remainder;
@ -1022,7 +1022,7 @@ void
ExportDialog::sample_rate_chosen ()
{
string sr_str = sample_rate_combo.get_active_text();
jack_nframes_t rate;
nframes_t rate;
if (sr_str == N_("22.05kHz")) {
rate = 22050;

View File

@ -53,7 +53,7 @@ class ExportDialog : public ArdourDialog
~ExportDialog ();
void connect_to_session (ARDOUR::Session*);
virtual void set_range (jack_nframes_t start, jack_nframes_t end);
virtual void set_range (nframes_t start, nframes_t end);
void start_export ();
protected:

View File

@ -166,7 +166,7 @@ ExportRangeMarkersDialog::init_progress_computing(Locations::LocationList& locat
// flush vector
range_markers_durations_aggregated.resize(0);
jack_nframes_t duration_before_current_location = 0;
nframes_t duration_before_current_location = 0;
Locations::LocationList::iterator locationIter;
for (locationIter = locations.begin(); locationIter != locations.end(); ++locationIter) {
@ -176,7 +176,7 @@ ExportRangeMarkersDialog::init_progress_computing(Locations::LocationList& locat
range_markers_durations_aggregated.push_back(
duration_before_current_location);
jack_nframes_t duration =
nframes_t duration =
currentLocation->end() - currentLocation->start();
range_markers_durations.push_back(duration);

View File

@ -37,10 +37,10 @@ class ExportRangeMarkersDialog : public ExportDialog
private:
// keeps the duration of all range_markers before the current
vector<jack_nframes_t> range_markers_durations_aggregated;
vector<jack_nframes_t> range_markers_durations;
vector<nframes_t> range_markers_durations_aggregated;
vector<nframes_t> range_markers_durations;
// duration of all range markers
jack_nframes_t total_duration;
nframes_t total_duration;
// index of range marker, that get's exported right now
unsigned int current_range_marker_index;

View File

@ -47,7 +47,7 @@ ExportSessionDialog::export_audio_data ()
void
ExportSessionDialog::set_range (jack_nframes_t start, jack_nframes_t end)
ExportSessionDialog::set_range (nframes_t start, nframes_t end)
{
ExportDialog::set_range (start, end);

View File

@ -27,7 +27,7 @@ class ExportSessionDialog : public ExportDialog
{
public:
ExportSessionDialog (PublicEditor&);
void set_range (jack_nframes_t start, jack_nframes_t end);
void set_range (nframes_t start, nframes_t end);
protected:
void export_audio_data();

View File

@ -48,7 +48,7 @@ GainAutomationTimeAxisView::~GainAutomationTimeAxisView ()
}
void
GainAutomationTimeAxisView::add_automation_event (ArdourCanvas::Item* item, GdkEvent* event, jack_nframes_t when, double y)
GainAutomationTimeAxisView::add_automation_event (ArdourCanvas::Item* item, GdkEvent* event, nframes_t when, double y)
{
double x = 0;

View File

@ -22,7 +22,7 @@ class GainAutomationTimeAxisView : public AutomationTimeAxisView
~GainAutomationTimeAxisView();
void add_automation_event (ArdourCanvas::Item *item, GdkEvent *event, jack_nframes_t, double);
void add_automation_event (ArdourCanvas::Item *item, GdkEvent *event, nframes_t, double);
private:
ARDOUR::Curve& curve;

View File

@ -205,7 +205,7 @@ GainMeter::GainMeter (boost::shared_ptr<IO> io, Session& s)
gain_adjustment.signal_value_changed().connect (mem_fun(*this, &GainMeter::gain_adjusted));
peak_display.signal_button_release_event().connect (mem_fun(*this, &GainMeter::peak_button_release));
_session.MeterHoldChanged.connect (mem_fun(*this, &GainMeter::meter_hold_changed));
Config->ParameterChanged.connect (mem_fun (*this, &GainMeter::parameter_changed));
gain_changed (0);
update_gain_sensitive ();
@ -350,17 +350,24 @@ GainMeter::update_meters ()
}
void
GainMeter::meter_hold_changed()
GainMeter::parameter_changed(const char* parameter_name)
{
ENSURE_GUI_THREAD(mem_fun(*this, &GainMeter::meter_hold_changed));
#define PARAM_IS(x) (!strcmp (parameter_name, (x)))
ENSURE_GUI_THREAD (bind (mem_fun(*this, &GainMeter::parameter_changed), parameter_name));
if (PARAM_IS ("meter-hold")) {
vector<MeterInfo>::iterator i;
uint32_t n;
for (n = 0, i = meters.begin(); i != meters.end(); ++i, ++n) {
vector<MeterInfo>::iterator i;
uint32_t n;
(*i).meter->set_hold_count ((uint32_t) floor(_session.meter_hold()));
for (n = 0, i = meters.begin(); i != meters.end(); ++i, ++n) {
(*i).meter->set_hold_count ((uint32_t) floor(Config->get_meter_hold()));
}
}
#undef PARAM_IS
}
void
@ -428,7 +435,7 @@ GainMeter::setup_meters ()
for (uint32_t n = 0; n < nmeters; ++n) {
if (meters[n].width != width) {
delete meters[n].meter;
meters[n].meter = new FastMeter ((uint32_t) floor (_session.meter_hold()), width, FastMeter::Vertical);
meters[n].meter = new FastMeter ((uint32_t) floor (Config->get_meter_hold()), width, FastMeter::Vertical);
meters[n].width = width;
meters[n].meter->add_events (Gdk::BUTTON_RELEASE_MASK);

View File

@ -172,7 +172,7 @@ class GainMeter : public Gtk::VBox
bool wait_for_release;
ARDOUR::MeterPoint old_meter_point;
void meter_hold_changed();
void parameter_changed (const char*);
void reset_peak_display ();
void reset_group_peak_display (ARDOUR::RouteGroup*);

Binary file not shown.

After

Width:  |  Height:  |  Size: 263 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 252 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 314 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 417 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 B

View File

@ -0,0 +1,54 @@
/* XPM */
static char * tool_object_xpm[] = {
"16 12 39 1",
" c None",
". c #000000",
"+ c #0C0C0C",
"@ c #151515",
"# c #D1D1D1",
"$ c #121212",
"% c #161616",
"& c #DADADA",
"* c #131313",
"= c #D6D6D6",
"- c #0F0F0F",
"; c #050505",
"> c #D3D3D3",
", c #0A0A0A",
"' c #070707",
") c #E5E5E5",
"! c #292929",
"~ c #B0B0B0",
"{ c #262626",
"] c #5C5C5C",
"^ c #333333",
"/ c #0E0E0E",
"( c #111111",
"_ c #3D3D3D",
": c #F4F4F4",
"< c #FFFFFF",
"[ c #EBEBEB",
"} c #D0D0D0",
"| c #030303",
"1 c #F1F1F1",
"2 c #FDFDFD",
"3 c #C3C3C3",
"4 c #101010",
"5 c #141414",
"6 c #F2F2F2",
"7 c #4E4E4E",
"8 c #686868",
"9 c #0B0B0B",
"0 c #020202",
" .+. ",
" @#$ ",
" %&* ",
" +=-.. ",
" ;>.,,-.. ",
" .')!~{]^/ ",
" (_:<<<[}| ",
" '12<<<<<| ",
" -~<<<<<34 ",
" .56<<<<7| ",
" /8<<<),. ",
" .9|||0- "};

Binary file not shown.

After

Width:  |  Height:  |  Size: 284 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 331 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 681 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 294 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 370 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 365 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 354 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 346 B

View File

@ -538,7 +538,7 @@ ImageFrameSocketHandler::send_imageframe_time_axis_group_renamed(const string &
* @param item the time axis item whos position has changed
*/
void
ImageFrameSocketHandler::send_imageframe_view_position_change(jack_nframes_t pos, void* src, ImageFrameView* item)
ImageFrameSocketHandler::send_imageframe_view_position_change(nframes_t pos, void* src, ImageFrameView* item)
{
// ENSURE_GUI_THREAD(bind (mem_fun(*this, &ImageFrameSocketHandler::send_imageframe_view_position_change), pos, src, item));
@ -574,7 +574,7 @@ ImageFrameSocketHandler::send_imageframe_view_position_change(jack_nframes_t pos
* @param item the item which has had a duration change
*/
void
ImageFrameSocketHandler::send_imageframe_view_duration_change(jack_nframes_t dur, void* src, ImageFrameView* item)
ImageFrameSocketHandler::send_imageframe_view_duration_change(nframes_t dur, void* src, ImageFrameView* item)
{
// ENSURE_GUI_THREAD(bind (mem_fun(*this, &ImageFrameSocketHandler::send_imageframe_view_duration_change), dur, src, item));
@ -688,7 +688,7 @@ ImageFrameSocketHandler::send_imageframe_view_removed(const string & item_id, vo
* @param item the time axis item whos position has changed
*/
void
ImageFrameSocketHandler::send_marker_view_position_change(jack_nframes_t pos, void* src, MarkerView* item)
ImageFrameSocketHandler::send_marker_view_position_change(nframes_t pos, void* src, MarkerView* item)
{
if(this == src || src == 0)
{
@ -722,7 +722,7 @@ ImageFrameSocketHandler::send_marker_view_position_change(jack_nframes_t pos, vo
* @param item the time axis item whos position has changed
*/
void
ImageFrameSocketHandler::send_marker_view_duration_change(jack_nframes_t dur, void* src, MarkerView* item)
ImageFrameSocketHandler::send_marker_view_duration_change(nframes_t dur, void* src, MarkerView* item)
{
if(this == src || src == 0)
{
@ -1337,11 +1337,11 @@ ImageFrameSocketHandler::handle_insert_imageframe_view(const char* msg)
position += image_id_size ;
// get the start frame value
jack_nframes_t start = strtoul((get_message_part(position,10,msg).c_str()),0,10) ;
nframes_t start = strtoul((get_message_part(position,10,msg).c_str()),0,10) ;
position += 10 ;
// get the duration value
jack_nframes_t duration = strtoul((get_message_part(position,10,msg).c_str()),0,10) ;
nframes_t duration = strtoul((get_message_part(position,10,msg).c_str()),0,10) ;
position += 10 ;
//get the named time axis view we about to add an image to
@ -1673,7 +1673,7 @@ ImageFrameSocketHandler::handle_imageframe_view_position_update(const char* msg)
this->decompose_imageframe_item_desc(msg, position, track_id, track_id_size, scene_id, scene_id_size, item_id, item_id_size) ;
jack_nframes_t start_frame = strtoul(get_message_part(position, ardourvis::TIME_VALUE_CHARS, msg).c_str(), 0, 10) ;
nframes_t start_frame = strtoul(get_message_part(position, ardourvis::TIME_VALUE_CHARS, msg).c_str(), 0, 10) ;
position += ardourvis::TIME_VALUE_CHARS ;
// get the named time axis
@ -1725,7 +1725,7 @@ ImageFrameSocketHandler::handle_imageframe_view_duration_update(const char* msg)
this->decompose_imageframe_item_desc(msg, position, track_id, track_id_size, scene_id, scene_id_size, item_id, item_id_size) ;
jack_nframes_t duration = strtoul(get_message_part(position,ardourvis::TIME_VALUE_CHARS,msg).c_str(),0,10) ;
nframes_t duration = strtoul(get_message_part(position,ardourvis::TIME_VALUE_CHARS,msg).c_str(),0,10) ;
position += ardourvis::TIME_VALUE_CHARS ;
// get the named time axis
@ -1828,7 +1828,7 @@ ImageFrameSocketHandler::handle_imageframe_view_max_duration_update(const char*
this->decompose_imageframe_item_desc(msg, position, track_id, track_id_size, group_id, group_id_size, item_id, item_id_size) ;
jack_nframes_t max_duration = strtoul(get_message_part(position,ardourvis::TIME_VALUE_CHARS,msg).c_str(),0,10) ;
nframes_t max_duration = strtoul(get_message_part(position,ardourvis::TIME_VALUE_CHARS,msg).c_str(),0,10) ;
position += ardourvis::TIME_VALUE_CHARS ;
int errcode ;
@ -1916,7 +1916,7 @@ ImageFrameSocketHandler::handle_imageframe_view_min_duration_update(const char*
this->decompose_imageframe_item_desc(msg, position, track_id, track_id_size, group_id, group_id_size, item_id, item_id_size) ;
jack_nframes_t min_duration = strtoul(get_message_part(position,ardourvis::TIME_VALUE_CHARS,msg).c_str(),0,10) ;
nframes_t min_duration = strtoul(get_message_part(position,ardourvis::TIME_VALUE_CHARS,msg).c_str(),0,10) ;
position += ardourvis::TIME_VALUE_CHARS ;
int errcode ;

View File

@ -195,7 +195,7 @@ class ImageFrameSocketHandler : public sigc::trackable
* @param src the identity of the object that initiated the change
* @param item the time axis item whos position has changed
*/
void send_imageframe_view_position_change(jack_nframes_t pos, void* src, ImageFrameView* item) ;
void send_imageframe_view_position_change(nframes_t pos, void* src, ImageFrameView* item) ;
/**
* Send a Image Frame View item duration changed message
@ -204,7 +204,7 @@ class ImageFrameSocketHandler : public sigc::trackable
* @param src the identity of the object that initiated the change
* @param item the item which has had a duration change
*/
void send_imageframe_view_duration_change(jack_nframes_t dur, void* src, ImageFrameView* item) ;
void send_imageframe_view_duration_change(nframes_t dur, void* src, ImageFrameView* item) ;
/**
* Send a message indicating that an ImageFrameView has been renamed
@ -234,7 +234,7 @@ class ImageFrameSocketHandler : public sigc::trackable
* @param src the identity of the object that initiated the change
* @param item the time axis item whos position has changed
*/
void send_marker_view_position_change(jack_nframes_t pos, void* src, MarkerView* item) ;
void send_marker_view_position_change(nframes_t pos, void* src, MarkerView* item) ;
/**
* Send a Marker View item duration changed message
@ -243,7 +243,7 @@ class ImageFrameSocketHandler : public sigc::trackable
* @param src the identity of the object that initiated the change
* @param item the time axis item whos position has changed
*/
void send_marker_view_duration_change(jack_nframes_t dur, void* src, MarkerView* item) ;
void send_marker_view_duration_change(nframes_t dur, void* src, MarkerView* item) ;
/**
* Send a message indicating that a MarkerView has been renamed

View File

@ -195,7 +195,7 @@ ImageFrameTimeAxisGroup::apply_item_color(Gdk::Color& color)
* @param src the identity of the object that initiated the change
*/
ImageFrameView*
ImageFrameTimeAxisGroup::add_imageframe_item(const string & frame_id, jack_nframes_t start, jack_nframes_t duration, unsigned char* rgb_data, uint32_t width, uint32_t height, uint32_t num_channels, void* src)
ImageFrameTimeAxisGroup::add_imageframe_item(const string & frame_id, nframes_t start, nframes_t duration, unsigned char* rgb_data, uint32_t width, uint32_t height, uint32_t num_channels, void* src)
{
ImageFrameView* ifv = 0 ;

View File

@ -139,7 +139,7 @@ class ImageFrameTimeAxisGroup : public sigc::trackable
* @param num_channels the number of channles within the rgb_data
* @param src the identity of the object that initiated the change
*/
ImageFrameView* add_imageframe_item(const string & item_id, jack_nframes_t start, jack_nframes_t duration, unsigned char* rgb_data, uint32_t width, uint32_t height, uint32_t num_channels, void* src) ;
ImageFrameView* add_imageframe_item(const string & item_id, nframes_t start, nframes_t duration, unsigned char* rgb_data, uint32_t width, uint32_t height, uint32_t num_channels, void* src) ;
/**
* Returns the named ImageFrameView or 0 if the named view does not exist on this view helper

View File

@ -410,7 +410,7 @@ ImageFrameTimeAxisView::set_imageframe_duration_sec(double sec)
{
if(selected_imageframe_group && selected_imageframe_view)
{
selected_imageframe_view->set_duration((jack_nframes_t) (sec * _trackview.editor.current_session()->frame_rate()), this) ;
selected_imageframe_view->set_duration((nframes_t) (sec * _trackview.editor.current_session()->frame_rate()), this) ;
}
}

View File

@ -62,8 +62,8 @@ ImageFrameView::ImageFrameView(const string & item_id,
ImageFrameTimeAxisGroup* item_group,
double spu,
Gdk::Color& basic_color,
jack_nframes_t start,
jack_nframes_t duration,
nframes_t start,
nframes_t duration,
unsigned char* rgb_data,
uint32_t width,
uint32_t height,
@ -172,9 +172,9 @@ delete imageframe;
* @return true if the position change was a success, false otherwise
*/
bool
ImageFrameView::set_position(jack_nframes_t pos, void* src, double* delta)
ImageFrameView::set_position(nframes_t pos, void* src, double* delta)
{
jack_nframes_t old_pos = frame_position ;
nframes_t old_pos = frame_position ;
// do the standard stuff
bool ret = TimeAxisViewItem::set_position(pos, src, delta) ;
@ -186,7 +186,7 @@ ImageFrameView::set_position(jack_nframes_t pos, void* src, double* delta)
{
// calculate the offset of the marker
MarkerView* mv = (MarkerView*)*i ;
jack_nframes_t marker_old_pos = mv->get_position() ;
nframes_t marker_old_pos = mv->get_position() ;
mv->set_position(pos + (marker_old_pos - old_pos), src) ;
}
@ -203,7 +203,7 @@ ImageFrameView::set_position(jack_nframes_t pos, void* src, double* delta)
* @return true if the duration change was succesful, false otherwise
*/
bool
ImageFrameView::set_duration(jack_nframes_t dur, void* src)
ImageFrameView::set_duration(nframes_t dur, void* src)
{
/* do the standard stuff */
bool ret = TimeAxisViewItem::set_duration(dur, src) ;

View File

@ -66,8 +66,8 @@ class ImageFrameView : public TimeAxisViewItem
ImageFrameTimeAxisGroup* group,
double spu,
Gdk::Color& base_color,
jack_nframes_t start,
jack_nframes_t duration,
nframes_t start,
nframes_t duration,
unsigned char* rgb_data,
uint32_t width,
uint32_t height,
@ -91,7 +91,7 @@ class ImageFrameView : public TimeAxisViewItem
* @param src the identity of the object that initiated the change
* @return true if the position change was a success, false otherwise
*/
virtual bool set_position(jack_nframes_t pos, void* src, double* delta = 0) ;
virtual bool set_position(nframes_t pos, void* src, double* delta = 0) ;
/**
* Sets the duration of this item
@ -100,7 +100,7 @@ class ImageFrameView : public TimeAxisViewItem
* @param src the identity of the object that initiated the change
* @return true if the duration change was succesful, false otherwise
*/
virtual bool set_duration(jack_nframes_t dur, void* src) ;
virtual bool set_duration(nframes_t dur, void* src) ;
//---------------------------------------------------------------------------------------//
// Parent Component Methods

View File

@ -771,7 +771,7 @@ void
LocationUI::add_new_location()
{
if (session) {
jack_nframes_t where = session->audible_frame();
nframes_t where = session->audible_frame();
Location *location = new Location (where, where, "mark", Location::IsMark);
session->begin_reversible_command (_("add marker"));
XMLNode &before = session->locations()->get_state();
@ -787,7 +787,7 @@ void
LocationUI::add_new_range()
{
if (session) {
jack_nframes_t where = session->audible_frame();
nframes_t where = session->audible_frame();
Location *location = new Location (where, where, "unnamed",
Location::IsRangeMarker);
session->begin_reversible_command (_("add range marker"));

View File

@ -383,13 +383,7 @@ int main (int argc, char *argv[])
cout << _("Ardour/GTK ")
<< VERSIONSTRING
<< _("\n (built using ")
<< gtk_ardour_major_version << '.'
<< gtk_ardour_minor_version << '.'
<< gtk_ardour_micro_version
<< _(" with libardour ")
<< libardour_major_version << '.'
<< libardour_minor_version << '.'
<< libardour_micro_version
<< ARDOUR::get_ardour_revision ()
#ifdef __GNUC__
<< _(" and GCC version ") << __VERSION__
#endif
@ -441,6 +435,7 @@ int main (int argc, char *argv[])
try {
ARDOUR::init (*engine, use_vst, try_hw_optimization);
Config->set_current_owner (ConfigVariableBase::Interface);
ui->set_engine (*engine);
} catch (failed_constructor& err) {
error << _("could not initialize Ardour.") << endmsg;

View File

@ -29,7 +29,7 @@
#include "i18n.h"
Marker::Marker (PublicEditor& ed, ArdourCanvas::Group& parent, guint32 rgba, const string& annotation,
Type type, jack_nframes_t frame, bool handle_events)
Type type, nframes_t frame, bool handle_events)
: editor (ed), _type(type)
{
@ -289,7 +289,7 @@ Marker::set_name (const string& name)
}
void
Marker::set_position (jack_nframes_t frame)
Marker::set_position (nframes_t frame)
{
double new_unit_position = editor.frame_to_unit (frame);
new_unit_position -= shift;

View File

@ -52,13 +52,13 @@ class Marker : public sigc::trackable
Marker (PublicEditor& editor, ArdourCanvas::Group& parent, guint32 rgba, const string& text, Type,
jack_nframes_t frame = 0, bool handle_events = true);
nframes_t frame = 0, bool handle_events = true);
virtual ~Marker ();
ArdourCanvas::Item& the_item() const;
void set_position (jack_nframes_t);
void set_position (nframes_t);
void set_name (const string&);
void set_color_rgba (uint32_t rgba);
@ -76,7 +76,7 @@ class Marker : public sigc::trackable
ArdourCanvas::Points *points;
double unit_position;
jack_nframes_t frame_position;
nframes_t frame_position;
unsigned char shift; /* should be double, but its always small and integral */
Type _type;

View File

@ -199,7 +199,7 @@ MarkerTimeAxisView::apply_color(Gdk::Color& color)
* @param src the identity of the object that initiated the change
*/
MarkerView*
MarkerTimeAxisView::add_marker_view(ImageFrameView* ifv, std::string mark_type, std::string mark_id, jack_nframes_t start, jack_nframes_t dur, void* src)
MarkerTimeAxisView::add_marker_view(ImageFrameView* ifv, std::string mark_type, std::string mark_id, nframes_t start, nframes_t dur, void* src)
{
if(ifv->has_marker_view_item(mark_id))
{
@ -345,7 +345,7 @@ MarkerTimeAxisView::set_marker_duration_sec(double sec)
{
if(get_selected_time_axis_item() != 0)
{
get_selected_time_axis_item()->set_duration((jack_nframes_t) (sec * _trackview.editor.current_session()->frame_rate()), this) ;
get_selected_time_axis_item()->set_duration((nframes_t) (sec * _trackview.editor.current_session()->frame_rate()), this) ;
}
}

View File

@ -131,7 +131,7 @@ class MarkerTimeAxisView : public sigc::trackable
* @param duration the duration the new item should be placed upon the timeline
* @param src the identity of the object that initiated the change
*/
MarkerView* add_marker_view(ImageFrameView* ifv, std::string mark_type, std::string mark_id, jack_nframes_t start, jack_nframes_t dur, void* src) ;
MarkerView* add_marker_view(ImageFrameView* ifv, std::string mark_type, std::string mark_id, nframes_t start, nframes_t dur, void* src) ;
/**
* Returns the named MarkerView or 0 if the named marker does not exist

View File

@ -54,8 +54,8 @@ MarkerView::MarkerView(ArdourCanvas::Group *parent,
Gdk::Color& basic_color,
std::string mark_type,
std::string mark_id,
jack_nframes_t start,
jack_nframes_t duration)
nframes_t start,
nframes_t duration)
: TimeAxisViewItem(mark_id, *parent,*tv,spu,basic_color,start,duration)
{
mark_type_text = mark_type ;

View File

@ -65,8 +65,8 @@ class MarkerView : public TimeAxisViewItem
Gdk::Color& base_color,
std::string mark_type,
std::string mark_id,
jack_nframes_t start,
jack_nframes_t duration) ;
nframes_t start,
nframes_t duration) ;
/**
* Destructor

View File

@ -48,9 +48,9 @@ MeterBridgeStrip::MeterBridgeStrip (AudioEngine &eng,
Session& s,
Route& r,
string name,
jack_nframes_t long_over,
jack_nframes_t short_over,
jack_nframes_t meter_hold)
nframes_t long_over,
nframes_t short_over,
nframes_t meter_hold)
: engine (eng),
session (s),
_route (r),

View File

@ -50,9 +50,9 @@ class MeterBridgeStrip : public sigc::trackable
ARDOUR::Session&,
ARDOUR::Route&,
string label,
jack_nframes_t long_over,
jack_nframes_t short_over,
jack_nframes_t meter_hold);
nframes_t long_over,
nframes_t short_over,
nframes_t meter_hold);
void update (); /* called by meter timeout handler from ARDOUR_UI */

View File

@ -36,17 +36,41 @@
#include "opts.h"
NewSessionDialog::NewSessionDialog()
: ArdourDialog ("New Session Dialog")
: ArdourDialog ("session control")
{
session_name_label = Gtk::manage(new class Gtk::Label(_("New Session Name :")));
session_name_label = Gtk::manage(new class Gtk::Label(_("Name :")));
m_name = Gtk::manage(new class Gtk::Entry());
m_name->set_text(GTK_ARDOUR::session_name);
session_location_label = Gtk::manage(new class Gtk::Label(_("Create Session Directory In :")));
chan_count_label_1 = Gtk::manage(new class Gtk::Label(_("channels")));
chan_count_label_2 = Gtk::manage(new class Gtk::Label(_("channels")));
chan_count_label_3 = Gtk::manage(new class Gtk::Label(_("channels")));
chan_count_label_4 = Gtk::manage(new class Gtk::Label(_("channels")));
chan_count_label_1->set_alignment(0,0.5);
chan_count_label_1->set_padding(0,0);
chan_count_label_1->set_line_wrap(false);
chan_count_label_2->set_alignment(0,0.5);
chan_count_label_2->set_padding(0,0);
chan_count_label_2->set_line_wrap(false);
chan_count_label_3->set_alignment(0,0.5);
chan_count_label_3->set_padding(0,0);
chan_count_label_3->set_line_wrap(false);
chan_count_label_4->set_alignment(0,0.5);
chan_count_label_4->set_padding(0,0);
chan_count_label_4->set_line_wrap(false);
bus_label = Gtk::manage(new class Gtk::Label(_("<b>Busses</b>")));
input_label = Gtk::manage(new class Gtk::Label(_("<b>Inputs</b>")));
output_label = Gtk::manage(new class Gtk::Label(_("<b>Outputs</b>")));
session_location_label = Gtk::manage(new class Gtk::Label(_("Create Folder In :")));
m_folder = Gtk::manage(new class Gtk::FileChooserButton(Gtk::FILE_CHOOSER_ACTION_SELECT_FOLDER));
session_template_label = Gtk::manage(new class Gtk::Label(_("Use Session Template :")));
session_template_label = Gtk::manage(new class Gtk::Label(_("Template :")));
m_template = Gtk::manage(new class Gtk::FileChooserButton());
chan_count_label = Gtk::manage(new class Gtk::Label(_("Channel Count")));
m_create_control_bus = Gtk::manage(new class Gtk::CheckButton(_("Create Monitor Bus")));
Gtk::Adjustment *m_control_bus_channel_count_adj = Gtk::manage(new class Gtk::Adjustment(2, 0, 100, 1, 10, 10));
@ -56,8 +80,8 @@ NewSessionDialog::NewSessionDialog()
m_master_bus_channel_count = Gtk::manage(new class Gtk::SpinButton(*m_master_bus_channel_count_adj, 1, 0));
m_create_master_bus = Gtk::manage(new class Gtk::CheckButton(_("Create Master Bus")));
advanced_table = Gtk::manage(new class Gtk::Table(2, 2, true));
m_connect_inputs = Gtk::manage(new class Gtk::CheckButton(_("Automatically Connect Inputs")));
m_limit_input_ports = Gtk::manage(new class Gtk::CheckButton(_("Port Limit")));
m_connect_inputs = Gtk::manage(new class Gtk::CheckButton(_("Automatically Connect to Physical Inputs")));
m_limit_input_ports = Gtk::manage(new class Gtk::CheckButton(_("Use only")));
Gtk::Adjustment *m_input_limit_count_adj = Gtk::manage(new class Gtk::Adjustment(1, 0, 100, 1, 10, 10));
m_input_limit_count = Gtk::manage(new class Gtk::SpinButton(*m_input_limit_count_adj, 1, 0));
@ -65,10 +89,12 @@ NewSessionDialog::NewSessionDialog()
input_port_vbox = Gtk::manage(new class Gtk::VBox(false, 0));
input_table = Gtk::manage(new class Gtk::Table(2, 2, false));
input_label = Gtk::manage(new class Gtk::Label(_("<b>Track/Bus Inputs</b>")));
bus_frame = Gtk::manage(new class Gtk::Frame());
bus_table = Gtk::manage (new Gtk::Table (2, 3, false));
input_frame = Gtk::manage(new class Gtk::Frame());
m_connect_outputs = Gtk::manage(new class Gtk::CheckButton(_("Automatically Connect Outputs")));
m_limit_output_ports = Gtk::manage(new class Gtk::CheckButton(_("Port Limit")));
m_limit_output_ports = Gtk::manage(new class Gtk::CheckButton(_("Use only")));
Gtk::Adjustment *m_output_limit_count_adj = Gtk::manage(new class Gtk::Adjustment(1, 0, 100, 1, 10, 10));
m_output_limit_count = Gtk::manage(new class Gtk::SpinButton(*m_output_limit_count_adj, 1, 0));
@ -76,12 +102,11 @@ NewSessionDialog::NewSessionDialog()
output_port_vbox = Gtk::manage(new class Gtk::VBox(false, 0));
Gtk::RadioButton::Group _RadioBGroup_m_connect_outputs_to_master;
m_connect_outputs_to_master = Gtk::manage(new class Gtk::RadioButton(_RadioBGroup_m_connect_outputs_to_master, _("Connect to Master Bus")));
m_connect_outputs_to_physical = Gtk::manage(new class Gtk::RadioButton(_RadioBGroup_m_connect_outputs_to_master, _("Connect to Physical Outputs")));
m_connect_outputs_to_master = Gtk::manage(new class Gtk::RadioButton(_RadioBGroup_m_connect_outputs_to_master, _("... to Master Bus")));
m_connect_outputs_to_physical = Gtk::manage(new class Gtk::RadioButton(_RadioBGroup_m_connect_outputs_to_master, _("... to Physical Outputs")));
output_conn_vbox = Gtk::manage(new class Gtk::VBox(false, 0));
output_vbox = Gtk::manage(new class Gtk::VBox(false, 0));
output_label = Gtk::manage(new class Gtk::Label(_("<b>Track/Bus Outputs</b>")));
output_frame = Gtk::manage(new class Gtk::Frame());
advanced_vbox = Gtk::manage(new class Gtk::VBox(false, 0));
advanced_label = Gtk::manage(new class Gtk::Label(_("Advanced Options")));
@ -92,24 +117,25 @@ NewSessionDialog::NewSessionDialog()
m_treeview = Gtk::manage(new class Gtk::TreeView());
recent_scrolledwindow = Gtk::manage(new class Gtk::ScrolledWindow());
recent_sesion_label = Gtk::manage(new class Gtk::Label(_("Open Recent Session")));
recent_sesion_label = Gtk::manage(new class Gtk::Label(_("Recent:")));
recent_frame = Gtk::manage(new class Gtk::Frame());
open_session_vbox = Gtk::manage(new class Gtk::VBox(false, 0));
m_notebook = Gtk::manage(new class Gtk::Notebook());
session_name_label->set_alignment(0, 0.5);
session_name_label->set_padding(0,0);
session_name_label->set_padding(6,0);
session_name_label->set_line_wrap(false);
session_name_label->set_selectable(false);
m_name->set_editable(true);
m_name->set_max_length(0);
m_name->set_has_frame(true);
m_name->set_activates_default(true);
m_name->set_width_chars (40);
session_location_label->set_alignment(0,0.5);
session_location_label->set_padding(0,0);
session_location_label->set_padding(6,0);
session_location_label->set_line_wrap(false);
session_location_label->set_selectable(false);
session_template_label->set_alignment(0,0.5);
session_template_label->set_padding(0,0);
session_template_label->set_padding(6,0);
session_template_label->set_line_wrap(false);
session_template_label->set_selectable(false);
m_create_control_bus->set_flags(Gtk::CAN_FOCUS);
@ -128,7 +154,7 @@ NewSessionDialog::NewSessionDialog()
m_master_bus_channel_count->set_numeric(true);
m_master_bus_channel_count->set_digits(0);
m_master_bus_channel_count->set_wrap(false);
open_session_file_label = Gtk::manage(new class Gtk::Label(_("Open Session File :")));
open_session_file_label = Gtk::manage(new class Gtk::Label(_("Browse:")));
open_session_file_label->set_alignment(0, 0.5);
m_create_master_bus->set_flags(Gtk::CAN_FOCUS);
m_create_master_bus->set_relief(Gtk::RELIEF_NORMAL);
@ -137,11 +163,6 @@ NewSessionDialog::NewSessionDialog()
m_create_master_bus->set_border_width(0);
advanced_table->set_row_spacings(0);
advanced_table->set_col_spacings(0);
advanced_table->attach(*chan_count_label, 1, 2, 0, 1, Gtk::AttachOptions(), Gtk::AttachOptions(), 0, 0);
advanced_table->attach(*m_create_control_bus, 0, 1, 2, 3, Gtk::FILL, Gtk::AttachOptions(), 0, 0);
advanced_table->attach(*m_control_bus_channel_count, 1, 2, 2, 3, Gtk::AttachOptions(), Gtk::AttachOptions(), 0, 0);
advanced_table->attach(*m_master_bus_channel_count, 1, 2, 1, 2, Gtk::AttachOptions(), Gtk::AttachOptions(), 0, 0);
advanced_table->attach(*m_create_master_bus, 0, 1, 1, 2, Gtk::FILL, Gtk::AttachOptions(), 0, 0);
m_connect_inputs->set_flags(Gtk::CAN_FOCUS);
m_connect_inputs->set_relief(Gtk::RELIEF_NORMAL);
@ -161,14 +182,40 @@ NewSessionDialog::NewSessionDialog()
m_input_limit_count->set_wrap(false);
m_input_limit_count->set_sensitive(false);
bus_hbox = Gtk::manage (new Gtk::HBox (false, 0));
bus_hbox->pack_start (*bus_table, Gtk::PACK_SHRINK, 18);
bus_label->set_alignment(0, 0.5);
bus_label->set_padding(0,0);
bus_label->set_line_wrap(false);
bus_label->set_selectable(false);
bus_label->set_use_markup(true);
bus_frame->set_shadow_type(Gtk::SHADOW_NONE);
bus_frame->set_label_align(0,0.5);
bus_frame->add(*bus_hbox);
bus_frame->set_label_widget(*bus_label);
bus_table->set_row_spacings (0);
bus_table->set_col_spacings (0);
bus_table->attach (*m_create_master_bus, 0, 1, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
bus_table->attach (*m_master_bus_channel_count, 1, 2, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
bus_table->attach (*chan_count_label_1, 2, 3, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 6, 0);
bus_table->attach (*m_create_control_bus, 0, 1, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
bus_table->attach (*m_control_bus_channel_count, 1, 2, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 0);
bus_table->attach (*chan_count_label_2, 2, 3, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 6, 0);
input_port_limit_hbox->pack_start(*m_limit_input_ports, Gtk::PACK_SHRINK, 6);
input_port_limit_hbox->pack_start(*m_input_limit_count, Gtk::PACK_EXPAND_PADDING, 0);
input_port_limit_hbox->pack_start(*m_input_limit_count, Gtk::PACK_SHRINK, 0);
input_port_limit_hbox->pack_start(*chan_count_label_3, Gtk::PACK_SHRINK, 6);
input_port_vbox->pack_start(*m_connect_inputs, Gtk::PACK_SHRINK, 0);
input_port_vbox->pack_start(*input_port_limit_hbox, Gtk::PACK_EXPAND_PADDING, 0);
input_table->set_row_spacings(0);
input_table->set_col_spacings(0);
input_table->attach(*input_port_vbox, 0, 1, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 6, 6);
input_hbox = Gtk::manage (new Gtk::HBox (false, 0));
input_hbox->pack_start (*input_table, Gtk::PACK_SHRINK, 18);
input_label->set_alignment(0, 0.5);
input_label->set_padding(0,0);
input_label->set_line_wrap(false);
@ -176,8 +223,9 @@ NewSessionDialog::NewSessionDialog()
input_label->set_use_markup(true);
input_frame->set_shadow_type(Gtk::SHADOW_NONE);
input_frame->set_label_align(0,0.5);
input_frame->add(*input_table);
input_frame->add(*input_hbox);
input_frame->set_label_widget(*input_label);
m_connect_outputs->set_flags(Gtk::CAN_FOCUS);
m_connect_outputs->set_relief(Gtk::RELIEF_NORMAL);
m_connect_outputs->set_mode(true);
@ -195,9 +243,8 @@ NewSessionDialog::NewSessionDialog()
m_output_limit_count->set_wrap(false);
m_output_limit_count->set_sensitive(false);
output_port_limit_hbox->pack_start(*m_limit_output_ports, Gtk::PACK_SHRINK, 6);
output_port_limit_hbox->pack_start(*m_output_limit_count, Gtk::PACK_EXPAND_PADDING, 0);
output_port_vbox->pack_start(*m_connect_outputs, Gtk::PACK_SHRINK, 0);
output_port_vbox->pack_start(*output_port_limit_hbox, Gtk::PACK_EXPAND_PADDING, 0);
output_port_limit_hbox->pack_start(*m_output_limit_count, Gtk::PACK_SHRINK, 0);
output_port_limit_hbox->pack_start(*chan_count_label_4, Gtk::PACK_SHRINK, 6);
m_connect_outputs_to_master->set_flags(Gtk::CAN_FOCUS);
m_connect_outputs_to_master->set_relief(Gtk::RELIEF_NORMAL);
m_connect_outputs_to_master->set_mode(true);
@ -208,11 +255,15 @@ NewSessionDialog::NewSessionDialog()
m_connect_outputs_to_physical->set_mode(true);
m_connect_outputs_to_physical->set_active(false);
m_connect_outputs_to_physical->set_border_width(0);
output_conn_vbox->pack_start(*m_connect_outputs, Gtk::PACK_SHRINK, 0);
output_conn_vbox->pack_start(*m_connect_outputs_to_master, Gtk::PACK_SHRINK, 0);
output_conn_vbox->pack_start(*m_connect_outputs_to_physical, Gtk::PACK_SHRINK, 0);
output_vbox->set_border_width(6);
output_vbox->pack_start(*output_port_vbox);
output_port_vbox->pack_start(*output_port_limit_hbox, Gtk::PACK_SHRINK, 0);
output_vbox->pack_start(*output_conn_vbox);
output_vbox->pack_start(*output_port_vbox);
output_label->set_alignment(0, 0.5);
output_label->set_padding(0,0);
@ -221,10 +272,16 @@ NewSessionDialog::NewSessionDialog()
output_label->set_use_markup(true);
output_frame->set_shadow_type(Gtk::SHADOW_NONE);
output_frame->set_label_align(0,0.5);
output_frame->add(*output_vbox);
output_hbox = Gtk::manage (new Gtk::HBox (false, 0));
output_hbox->pack_start (*output_vbox, Gtk::PACK_SHRINK, 18);
output_frame->add(*output_hbox);
output_frame->set_label_widget(*output_label);
advanced_vbox->pack_start(*advanced_table, Gtk::PACK_SHRINK, 0);
advanced_vbox->pack_start(*input_frame, Gtk::PACK_SHRINK, 12);
advanced_vbox->pack_start(*bus_frame, Gtk::PACK_SHRINK, 6);
advanced_vbox->pack_start(*input_frame, Gtk::PACK_SHRINK, 6);
advanced_vbox->pack_start(*output_frame, Gtk::PACK_SHRINK, 0);
advanced_label->set_padding(0,0);
advanced_label->set_line_wrap(false);
@ -237,7 +294,7 @@ NewSessionDialog::NewSessionDialog()
advanced_expander->add(*advanced_vbox);
advanced_expander->set_label_widget(*advanced_label);
new_session_table->set_border_width(12);
new_session_table->set_row_spacings(0);
new_session_table->set_row_spacings(6);
new_session_table->set_col_spacings(0);
new_session_table->attach(*session_name_label, 0, 1, 0, 1, Gtk::FILL, Gtk::FILL, 0, 0);
new_session_table->attach(*m_name, 1, 2, 0, 1, Gtk::EXPAND|Gtk::FILL, Gtk::FILL, 0, 0);
@ -245,11 +302,9 @@ NewSessionDialog::NewSessionDialog()
new_session_table->attach(*m_folder, 1, 2, 1, 2, Gtk::EXPAND|Gtk::FILL, Gtk::FILL, 0, 0);
new_session_table->attach(*session_template_label, 0, 1, 2, 3, Gtk::FILL, Gtk::FILL, 0, 0);
new_session_table->attach(*m_template, 1, 2, 2, 3, Gtk::EXPAND|Gtk::FILL, Gtk::FILL, 0, 0);
new_session_table->attach(*advanced_expander, 0, 2, 3, 4, Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 12);
chan_count_label->set_padding(0,0);
chan_count_label->set_line_wrap(false);
chan_count_label->set_selectable(false);
open_session_hbox->pack_start(*open_session_file_label, true, true, 12);
new_session_table->attach(*advanced_expander, 0, 2, 3, 4, Gtk::FILL, Gtk::EXPAND|Gtk::FILL, 0, 6);
open_session_hbox->pack_start(*open_session_file_label, false, false, 12);
open_session_hbox->pack_start(*m_open_filechooser, true, true, 12);
m_treeview->set_flags(Gtk::CAN_FOCUS);
m_treeview->set_headers_visible(true);
@ -271,11 +326,11 @@ NewSessionDialog::NewSessionDialog()
recent_sesion_label->set_line_wrap(false);
recent_sesion_label->set_selectable(false);
recent_frame->set_border_width(12);
recent_frame->set_shadow_type(Gtk::SHADOW_IN);
recent_frame->set_shadow_type(Gtk::SHADOW_NONE);
recent_frame->add(*recent_scrolledwindow);
recent_frame->set_label_widget(*recent_sesion_label);
open_session_vbox->pack_start(*open_session_hbox, Gtk::PACK_SHRINK, 12);
open_session_vbox->pack_start(*recent_frame, Gtk::PACK_EXPAND_WIDGET, 0);
open_session_vbox->pack_start(*open_session_hbox, Gtk::PACK_SHRINK, 12);
m_notebook->set_flags(Gtk::CAN_FOCUS);
m_notebook->set_scrollable(true);
m_notebook->append_page(*new_session_table, _("New Session"));

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