diff --git a/SConstruct b/SConstruct index 575c530300..f2a2d069b5 100644 --- a/SConstruct +++ b/SConstruct @@ -33,7 +33,7 @@ opts.AddOptions( BoolOption('NATIVE_OSX_KEYS', 'Build key bindings file that matches OS X conventions', 0), BoolOption('DEBUG', 'Set to build with debugging information and no optimizations', 0), PathOption('DESTDIR', 'Set the intermediate install "prefix"', '/'), - EnumOption('DIST_TARGET', 'Build target for cross compiling packagers', 'auto', allowed_values=('auto', 'i386', 'i686', 'x86_64', 'powerpc', 'tiger', 'panther', 'none' ), ignorecase=2), + EnumOption('DIST_TARGET', 'Build target for cross compiling packagers', 'auto', allowed_values=('auto', 'i386', 'i686', 'x86_64', 'powerpc', 'tiger', 'panther', 'leopard', 'none' ), ignorecase=2), BoolOption('DMALLOC', 'Compile and link using the dmalloc library', 0), BoolOption('EXTRA_WARN', 'Compile with -Wextra, -ansi, and -pedantic. Might break compilation. For pedants', 0), BoolOption('FFT_ANALYSIS', 'Include FFT analysis window', 0), @@ -531,15 +531,19 @@ if env['FFT_ANALYSIS']: if env['LV2']: conf = env.Configure(custom_tests = { 'CheckPKGExists' : CheckPKGExists }) - if conf.CheckPKGExists ('\"slv2 >= 0.4.4\"'): + if conf.CheckPKGExists ('\"slv2 >= 0.6.0\"'): libraries['slv2'] = LibraryInfo() libraries['slv2'].ParseConfig('pkg-config --cflags --libs slv2') else: - print 'Building Ardour with LV2 support requires SLV2 >= 0.4.4' + print 'Building Ardour with LV2 support requires SLV2 >= 0.6.0' print 'WARNING: SLV2 not found, or too old. Ardour will be built without LV2 support.' + print 'Until the 2.3 release, Ardour requires SLV2 out of SVN.' + print 'Testing would be very much appreciated! svn co http://svn.drobilla.net/lad/slv2' env['LV2'] = 0 conf.Finish() - +else: + print 'LV2 support is not enabled. Build with \'scons LV2=1\' to enable.' + libraries['jack'] = LibraryInfo() libraries['jack'].ParseConfig('pkg-config --cflags --libs jack') @@ -621,8 +625,10 @@ if env['DIST_TARGET'] == 'auto': # The [.] matches to the dot after the major version, "." would match any character if re.search ("darwin[0-7][.]", config[config_kernel]) != None: env['DIST_TARGET'] = 'panther' - else: + if re.search ("darwin8[.]", config[config_kernel]) != None: env['DIST_TARGET'] = 'tiger' + else: + env['DIST_TARGET'] = 'leopard' else: if re.search ("x86_64", config[config_cpu]) != None: env['DIST_TARGET'] = 'x86_64' @@ -688,9 +694,9 @@ elif ((re.search ("i[0-9]86", config[config_cpu]) != None) or (re.search ("x86_6 # optimization section if env['FPU_OPTIMIZATION']: - if env['DIST_TARGET'] == 'tiger': - opt_flags.append ("-DBUILD_VECLIB_OPTIMIZATIONS") - debug_flags.append ("-DBUILD_VECLIB_OPTIMIZATIONS") + if env['DIST_TARGET'] == 'tiger' or env['DIST_TARGET'] == 'leopard': + opt_flags.append ("-DBUILD_VECLIB_OPTIMIZATIONS"); + debug_flags.append ("-DBUILD_VECLIB_OPTIMIZATIONS"); libraries['core'].Append(LINKFLAGS= '-framework Accelerate') elif env['DIST_TARGET'] == 'i686' or env['DIST_TARGET'] == 'x86_64': opt_flags.append ("-DBUILD_SSE_OPTIMIZATIONS") @@ -709,6 +715,18 @@ if env['DIST_TARGET'] == 'x86_64': else: env['LIBDIR']='lib' +# +# a single way to test if we're on OS X +# + +if env['DIST_TARGET'] in ['panther', 'tiger', 'leopard' ]: + env['IS_OSX'] = 1 + # force tiger or later, to avoid issues on PPC which defaults + # back to 10.1 if we don't tell it otherwise. + env.Append (CCFLAGS="-DMAC_OS_X_VERSION_MIN_REQUIRED=1040") +else: + env['IS_OSX'] = 0 + # # save off guessed arch element in an env # @@ -767,7 +785,7 @@ if env['LIBLO']: def prep_libcheck(topenv, libinfo): - if topenv['DIST_TARGET'] == 'panther' or topenv['DIST_TARGET'] == 'tiger': + if topenv['IS_OSX']: # # rationale: GTK-Quartz uses jhbuild and installs to /opt/gtk by default. # All libraries needed should be built against this location @@ -780,9 +798,16 @@ def prep_libcheck(topenv, libinfo): prep_libcheck(env, env) +# +# these are part of the Ardour source tree because they are C++ +# + libraries['vamp'] = LibraryInfo (LIBS='vampsdk', LIBPATH='#libs/vamp-sdk', - CPPPATH='#libs/vamp-sdk/vamp') + CPPPATH='#libs/vamp-sdk') +libraries['vamphost'] = LibraryInfo (LIBS='vamphostsdk', + LIBPATH='#libs/vamp-sdk', + CPPPATH='#libs/vamp-sdk') env['RUBBERBAND'] = False @@ -1007,6 +1032,7 @@ if env['SYSLIBS']: 'libs/midi++2', 'libs/ardour', 'libs/vamp-sdk', + 'libs/vamp-plugins/', # these are unconditionally included but have # tests internally to avoid compilation etc # if VST is not set @@ -1081,6 +1107,7 @@ else: 'libs/midi++2', 'libs/ardour', 'libs/vamp-sdk', + 'libs/vamp-plugins/', # these are unconditionally included but have # tests internally to avoid compilation etc # if VST is not set diff --git a/gtk2_ardour/SConscript b/gtk2_ardour/SConscript index 22ef8bdd66..6adf0ee8ae 100644 --- a/gtk2_ardour/SConscript +++ b/gtk2_ardour/SConscript @@ -24,7 +24,7 @@ gtkardour.Append(CPPPATH="#/") # for top level svn_revision.h gtkardour.Append(PACKAGE=domain) gtkardour.Append(POTFILE=domain + '.pot') -if gtkardour['DIST_TARGET'] == 'panther' or gtkardour['DIST_TARGET'] == 'tiger': +if gtkardour['IS_OSX']: gtkardour.Append (LINKFLAGS="-Xlinker -headerpad -Xlinker 2048") gtkardour.Merge ([ @@ -50,6 +50,10 @@ gtkardour.Merge ([ libraries['xml'], libraries['xslt'], libraries['samplerate'], + libraries['vamp'], + libraries['vamphost'], + libraries['fftw3f'], + libraries['fftw3'], libraries['jack'], libraries['cairomm'], libraries['asound'] @@ -77,7 +81,7 @@ if gtkardour['FFT_ANALYSIS']: gtkardour.Append(CCFLAGS='-DFFT_ANALYSIS') if gtkardour['RUBBERBAND']: - gtkardour.Merge ([ libraries['rubberband'], libraries['vamp'], libraries['fftw3f'], libraries['fftw3'] ]) + gtkardour.Merge ([ libraries['rubberband'] ]) else: gtkardour.Merge ([ libraries['soundtouch'] ]) @@ -101,50 +105,44 @@ x11.cc gtkardour_files=Split(""" about.cc actions.cc -add_route_dialog.cc add_midi_cc_track_dialog.cc +add_route_dialog.cc ardour_dialog.cc -ardour_ui.cc ardour_ui2.cc +ardour_ui.cc ardour_ui_dependents.cc ardour_ui_dialogs.cc ardour_ui_ed.cc ardour_ui_mixer.cc ardour_ui_options.cc audio_clock.cc -audio_time_axis.cc audio_region_editor.cc -control_point.cc -automation_line.cc -automation_time_axis.cc -automation_streamview.cc +audio_region_view.cc +audio_streamview.cc +audio_time_axis.cc automation_controller.cc +automation_line.cc automation_region_view.cc -bundle_manager.cc -midi_port_dialog.cc -midi_time_axis.cc -midi_scroomer.cc -midi_streamview.cc +automation_streamview.cc +automation_time_axis.cc axis_view.cc -canvas-simpleline.c -simpleline.cc -canvas-simplerect.c -simplerect.cc -lineset.cc -canvas-waveview.c -diamond.cc +bundle_manager.cc canvas-midi-event.cc +canvas-simpleline.c +canvas-simplerect.c +canvas-waveview.c +control_point.cc crossfade_edit.cc crossfade_view.cc curvetest.cc -enums.cc +diamond.cc editing.cc -editor.cc editor_actions.cc editor_audio_import.cc editor_audiotrack.cc editor_canvas.cc editor_canvas_events.cc +editor.cc editor_cursors.cc editor_edit_groups.cc editor_export_audio.cc @@ -165,66 +163,72 @@ editor_selection_list.cc editor_tempodisplay.cc editor_timefx.cc engine_dialog.cc +enums.cc export_dialog.cc -export_session_dialog.cc -export_region_dialog.cc export_range_markers_dialog.cc +export_region_dialog.cc +export_session_dialog.cc gain_meter.cc generic_pluginui.cc ghostregion.cc gtk-custom-hruler.c gtk-custom-ruler.c io_selector.cc -port_matrix.cc keyboard.cc keyeditor.cc latency_gui.cc level_meter.cc +lineset.cc location_ui.cc main.cc marker.cc +midi_port_dialog.cc +midi_region_view.cc +midi_scroomer.cc +midi_streamview.cc +midi_time_axis.cc mixer_strip.cc mixer_ui.cc new_session_dialog.cc option_editor.cc opts.cc - -panner.cc panner2d.cc +panner.cc panner_ui.cc piano_roll_header.cc playlist_selector.cc plugin_selector.cc plugin_ui.cc +port_matrix.cc +processor_box.cc prompter.cc public_editor.cc -processor_box.cc region_gain_line.cc region_selection.cc region_view.cc -audio_region_view.cc -midi_region_view.cc -tape_region_view.cc +rhythm_ferret.cc route_params_ui.cc route_processor_selection.cc +route_time_axis.cc route_ui.cc selection.cc -sfdb_ui.cc send_ui.cc +sfdb_ui.cc +simpleline.cc +simplerect.cc splash.cc streamview.cc -audio_streamview.cc +tape_region_view.cc tempo_dialog.cc +tempo_lines.cc theme_manager.cc time_axis_view.cc time_axis_view_item.cc -route_time_axis.cc time_selection.cc ui_config.cc utils.cc version.cc waveview.cc -tempo_lines.cc """) fft_analysis_files=Split(""" @@ -315,7 +319,7 @@ tt = gtkmmtests.Program(target = 'tt', source = tt_files) my_font_dict = { } -if gtkardour['DIST_TARGET'] == 'panther' or gtkardour['DIST_TARGET'] == 'tiger': +if gtkardour['IS_OSX']: # # OS X font rendering is different even with X11 # diff --git a/gtk2_ardour/ardev_common.sh.in b/gtk2_ardour/ardev_common.sh.in index d93f108143..b259eb3087 100644 --- a/gtk2_ardour/ardev_common.sh.in +++ b/gtk2_ardour/ardev_common.sh.in @@ -4,7 +4,7 @@ cd `dirname "$0"`/.. export ARDOUR_PATH=gtk2_ardour/icons:gtk2_ardour/pixmaps:gtk2_ardour:. export GTK_PATH=libs/clearlooks - +export VAMP_PATH=libs/vamp-plugins:$VAMP_PATH export LD_LIBRARY_PATH=libs/vamp-sdk:libs/surfaces/control_protocol:libs/ardour:libs/midi++2:libs/pbd:libs/rubberband: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:libs/cairomm:$LD_LIBRARY_PATH diff --git a/gtk2_ardour/ardour-sae-de.bindings.in b/gtk2_ardour/ardour-sae-de.bindings.in index 7feaed247b..68f9b13b0b 100644 --- a/gtk2_ardour/ardour-sae-de.bindings.in +++ b/gtk2_ardour/ardour-sae-de.bindings.in @@ -335,6 +335,8 @@ (gtk_accel_path "/Editor/goto-mark-9" "KP_9") (gtk_accel_path "/Transport/ToggleClick" "5") (gtk_accel_path "/Transport/ToggleAutoReturn" "4") +(gtk_accel_path "/Editor/set-tempo-from-region" "9") +(gtk_accel_path "/Editor/set-tempo-from-edit-range" "0") (gtk_accel_path "/Transport/focus-on-clock" "KP_Divide") (gtk_accel_path "/Editor/set-loop-from-edit-range" "bracketright") (gtk_accel_path "/Editor/set-punch-from-edit-range" "bracketleft") diff --git a/gtk2_ardour/ardour-sae.menus b/gtk2_ardour/ardour-sae.menus index e3efc7a849..d9c4f1798f 100644 --- a/gtk2_ardour/ardour-sae.menus +++ b/gtk2_ardour/ardour-sae.menus @@ -133,6 +133,9 @@ + + + @@ -164,6 +167,8 @@ + + diff --git a/gtk2_ardour/ardour.bindings.in b/gtk2_ardour/ardour.bindings.in index 1efdb1cdd4..3d488c1ec4 100644 --- a/gtk2_ardour/ardour.bindings.in +++ b/gtk2_ardour/ardour.bindings.in @@ -10,6 +10,7 @@ (gtk_accel_path "/Editor/edit-cursor-to-previous-region-sync" "apostrophe") (gtk_accel_path "/Editor/edit-cursor-to-next-region-sync" "semicolon") (gtk_accel_path "/Editor/cycle-edit-point" "grave") +(gtk_accel_path "/Editor/cycle-edit-point-with-marker" "<%PRIMARY%>asciicircum") (gtk_accel_path "/Editor/playhead-to-next-region-boundary" "period") (gtk_accel_path "/Editor/playhead-to-next-region-sync" "<%PRIMARY%>period") @@ -38,6 +39,9 @@ (gtk_accel_path "/Editor/set-punch-from-edit-range" "bracketleft") (gtk_accel_path "/Editor/set-punch-from-region" "<%SECONDARY%>bracketleft") +(gtk_accel_path "/Editor/boost-region-gain" "asciicircum") +(gtk_accel_path "/Editor/cut-region-gain" "ampersand") + ;; letters ;; TOP ROW @@ -50,6 +54,7 @@ (gtk_accel_path "/Editor/select-all-before-edit-cursor" "<%PRIMARY%>e") (gtk_accel_path "/Editor/show-editor-mixer" "<%TERTIARY%>e") (gtk_accel_path "/Common/goto-editor" "<%WINDOW%>e") +(gtk_accel_path "/Editor/select-all-after-edit-cursor" "<%TERTIARY%><%PRIMARY%>e") (gtk_accel_path "/MouseMode/set-mouse-mode-range" "r") (gtk_accel_path "/Editor/redo" "<%PRIMARY%>r") (gtk_accel_path "/Transport/Record" "<%TERTIARY%>r") @@ -62,22 +67,19 @@ (gtk_accel_path "/Common/ToggleOptionsEditor" "<%WINDOW%>o") (gtk_accel_path "/Editor/set-playhead" "p") (gtk_accel_path "/Editor/select-all-before-playhead" "<%PRIMARY%>p") +(gtk_accel_path "/Editor/select-all-after-playhead" "<%TERTIARY%><%PRIMARY%>p") ;; MIDDLE ROW (gtk_accel_path "/Editor/align-regions-sync-relative" "a") -(gtk_accel_path "/Editor/align-regions-start-relative" "<%PRIMARY%>a") +(gtk_accel_path "/Editor/select-all" "<%PRIMARY%>a") (gtk_accel_path "/Editor/align-regions-end" "<%SECONDARY%>a") (gtk_accel_path "/Editor/align-regions-sync" "<%TERTIARY%>a") +(gtk_accel_path "/Editor/align-regions-start-relative" "<%LEVEL4%>a") (gtk_accel_path "/Editor/split-region" "s") (gtk_accel_path "/Common/Save" "<%PRIMARY%>s") (gtk_accel_path "/Editor/duplicate-region" "d") (gtk_accel_path "/Editor/select-all-in-punch-range" "<%PRIMARY%>d") - -(gtk_accel_path "/Editor/select-all" "<%PRIMARY%>a") -(gtk_accel_path "/Editor/select-all-after-playhead" "<%TERTIARY%><%PRIMARY%>p") -(gtk_accel_path "/Editor/select-all-after-edit-cursor" "<%TERTIARY%><%PRIMARY%>e") - (gtk_accel_path "/Editor/toggle-follow-playhead" "f") (gtk_accel_path "/MouseMode/set-mouse-mode-gain" "g") (gtk_accel_path "/Editor/play-selected-regions" "h") @@ -180,6 +182,8 @@ (gtk_accel_path "/Editor/cycle-snap-choice" "3") (gtk_accel_path "/Transport/ToggleAutoReturn" "4") (gtk_accel_path "/Transport/ToggleClick" "5") +(gtk_accel_path "/Editor/set-tempo-from-region" "9") +(gtk_accel_path "/Editor/set-tempo-from-edit-range" "0") ;; ;; unbound actions diff --git a/gtk2_ardour/ardour.menus b/gtk2_ardour/ardour.menus index 40432d5381..4c5439b68c 100644 --- a/gtk2_ardour/ardour.menus +++ b/gtk2_ardour/ardour.menus @@ -44,6 +44,9 @@ + + + @@ -161,6 +164,7 @@ + @@ -194,6 +198,8 @@ + + @@ -302,6 +308,7 @@ + diff --git a/gtk2_ardour/ardour3_ui_default.conf b/gtk2_ardour/ardour3_ui_default.conf index bfcb616a93..b64296ae02 100644 --- a/gtk2_ardour/ardour3_ui_default.conf +++ b/gtk2_ardour/ardour3_ui_default.conf @@ -4,11 +4,11 @@