mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-12 01:26:31 +01:00
make i18n build work ; add mackie dir back to build ; token work on amp for MIDI; don't try to subgroup route groups with MIDI (for now)
git-svn-id: svn://localhost/ardour2/branches/3.0@5412 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
272c1a40db
commit
3b7230552d
14 changed files with 488 additions and 354 deletions
|
|
@ -2,6 +2,7 @@
|
||||||
import autowaf
|
import autowaf
|
||||||
import os
|
import os
|
||||||
import glob
|
import glob
|
||||||
|
from w18n import build_i18n
|
||||||
|
|
||||||
# Version of this package (even if built as a child)
|
# Version of this package (even if built as a child)
|
||||||
MAJOR = '1'
|
MAJOR = '1'
|
||||||
|
|
@ -19,8 +20,181 @@ blddir = 'build'
|
||||||
|
|
||||||
path_prefix = 'gtk2_ardour/'
|
path_prefix = 'gtk2_ardour/'
|
||||||
|
|
||||||
|
gtk2_ardour_sources = [
|
||||||
|
'about.cc',
|
||||||
|
'actions.cc',
|
||||||
|
'add_midi_cc_track_dialog.cc',
|
||||||
|
'add_route_dialog.cc',
|
||||||
|
'analysis_window.cc',
|
||||||
|
'ardour_dialog.cc',
|
||||||
|
'ardour_ui.cc',
|
||||||
|
'ardour_ui2.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_region_editor.cc',
|
||||||
|
'audio_region_view.cc',
|
||||||
|
'audio_streamview.cc',
|
||||||
|
'audio_time_axis.cc',
|
||||||
|
'automation_controller.cc',
|
||||||
|
'automation_line.cc',
|
||||||
|
'automation_region_view.cc',
|
||||||
|
'automation_streamview.cc',
|
||||||
|
'automation_time_axis.cc',
|
||||||
|
'axis_view.cc',
|
||||||
|
'bundle_manager.cc',
|
||||||
|
'cairo_widget.cc',
|
||||||
|
'canvas-flag.cc',
|
||||||
|
'canvas-note-event.cc',
|
||||||
|
'canvas-note.cc',
|
||||||
|
'canvas-program-change.cc',
|
||||||
|
'canvas-simpleline.c',
|
||||||
|
'canvas-simplerect.c',
|
||||||
|
'canvas-sysex.cc',
|
||||||
|
'canvas-waveview.c',
|
||||||
|
'control_point.cc',
|
||||||
|
'control_point_dialog.cc',
|
||||||
|
'crossfade_edit.cc',
|
||||||
|
'crossfade_view.cc',
|
||||||
|
'curvetest.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_component.cc',
|
||||||
|
'editor_cursors.cc',
|
||||||
|
'editor_drag.cc',
|
||||||
|
'editor_route_groups.cc',
|
||||||
|
'editor_export_audio.cc',
|
||||||
|
'editor_group_tabs.cc',
|
||||||
|
'editor_hscroller.cc',
|
||||||
|
'editor_keyboard.cc',
|
||||||
|
'editor_keys.cc',
|
||||||
|
'editor_markers.cc',
|
||||||
|
'editor_mixer.cc',
|
||||||
|
'editor_mouse.cc',
|
||||||
|
'editor_nudge.cc',
|
||||||
|
'editor_ops.cc',
|
||||||
|
'editor_regions.cc',
|
||||||
|
'editor_routes.cc',
|
||||||
|
'editor_rulers.cc',
|
||||||
|
'editor_scrub.cc',
|
||||||
|
'editor_selection.cc',
|
||||||
|
'editor_selection_list.cc',
|
||||||
|
'editor_snapshots.cc',
|
||||||
|
'editor_summary.cc',
|
||||||
|
'editor_tempodisplay.cc',
|
||||||
|
'editor_timefx.cc',
|
||||||
|
'engine_dialog.cc',
|
||||||
|
'enums.cc',
|
||||||
|
'export_channel_selector.cc',
|
||||||
|
'export_dialog.cc',
|
||||||
|
'export_file_notebook.cc',
|
||||||
|
'export_filename_selector.cc',
|
||||||
|
'export_format_dialog.cc',
|
||||||
|
'export_format_selector.cc',
|
||||||
|
'export_preset_selector.cc',
|
||||||
|
'export_timespan_selector.cc',
|
||||||
|
'fft.cc',
|
||||||
|
'fft_graph.cc',
|
||||||
|
'fft_result.cc',
|
||||||
|
'gain_meter.cc',
|
||||||
|
'generic_pluginui.cc',
|
||||||
|
'ghostregion.cc',
|
||||||
|
'global_port_matrix.cc',
|
||||||
|
'group_tabs.cc',
|
||||||
|
'gtk-custom-hruler.c',
|
||||||
|
'gtk-custom-ruler.c',
|
||||||
|
'io_selector.cc',
|
||||||
|
'keyboard.cc',
|
||||||
|
'keyeditor.cc',
|
||||||
|
'latency_gui.cc',
|
||||||
|
'level_meter.cc',
|
||||||
|
'lineset.cc',
|
||||||
|
'location_ui.cc',
|
||||||
|
'main.cc',
|
||||||
|
'marker.cc',
|
||||||
|
'midi_channel_selector.cc',
|
||||||
|
'midi_port_dialog.cc',
|
||||||
|
'midi_region_view.cc',
|
||||||
|
'midi_scroomer.cc',
|
||||||
|
'midi_streamview.cc',
|
||||||
|
'midi_time_axis.cc',
|
||||||
|
'mixer_group_tabs.cc',
|
||||||
|
'mixer_strip.cc',
|
||||||
|
'mixer_ui.cc',
|
||||||
|
'nag.cc',
|
||||||
|
'option_editor.cc',
|
||||||
|
'opts.cc',
|
||||||
|
'panner.cc',
|
||||||
|
'panner2d.cc',
|
||||||
|
'panner_ui.cc',
|
||||||
|
'piano_roll_header.cc',
|
||||||
|
'playlist_selector.cc',
|
||||||
|
'plugin_eq_gui.cc',
|
||||||
|
'plugin_selector.cc',
|
||||||
|
'plugin_ui.cc',
|
||||||
|
'port_group.cc',
|
||||||
|
'port_matrix.cc',
|
||||||
|
'port_matrix_body.cc',
|
||||||
|
'port_matrix_column_labels.cc',
|
||||||
|
'port_matrix_component.cc',
|
||||||
|
'port_matrix_grid.cc',
|
||||||
|
'port_matrix_labels.cc',
|
||||||
|
'port_matrix_row_labels.cc',
|
||||||
|
'processor_box.cc',
|
||||||
|
'prompter.cc',
|
||||||
|
'public_editor.cc',
|
||||||
|
'rc_option_editor.cc',
|
||||||
|
'region_gain_line.cc',
|
||||||
|
'region_selection.cc',
|
||||||
|
'region_view.cc',
|
||||||
|
'return_ui.cc',
|
||||||
|
'rhythm_ferret.cc',
|
||||||
|
'route_group_dialog.cc',
|
||||||
|
'route_group_menu.cc',
|
||||||
|
'route_params_ui.cc',
|
||||||
|
'route_processor_selection.cc',
|
||||||
|
'route_time_axis.cc',
|
||||||
|
'route_ui.cc',
|
||||||
|
'selection.cc',
|
||||||
|
'send_ui.cc',
|
||||||
|
'session_import_dialog.cc',
|
||||||
|
'session_metadata_dialog.cc',
|
||||||
|
'session_option_editor.cc',
|
||||||
|
'sfdb_ui.cc',
|
||||||
|
'simpleline.cc',
|
||||||
|
'simplerect.cc',
|
||||||
|
'splash.cc',
|
||||||
|
'startup.cc',
|
||||||
|
'streamview.cc',
|
||||||
|
'strip_silence_dialog.cc',
|
||||||
|
'tape_region_view.cc',
|
||||||
|
'tempo_dialog.cc',
|
||||||
|
'tempo_lines.cc',
|
||||||
|
'theme_manager.cc',
|
||||||
|
'time_axis_view.cc',
|
||||||
|
'time_axis_view_item.cc',
|
||||||
|
'time_fx_dialog.cc',
|
||||||
|
'time_selection.cc',
|
||||||
|
'track_selection.cc',
|
||||||
|
'ui_config.cc',
|
||||||
|
'utils.cc',
|
||||||
|
'version.cc',
|
||||||
|
'waveview.cc',
|
||||||
|
]
|
||||||
|
|
||||||
def set_options(opt):
|
def set_options(opt):
|
||||||
autowaf.set_options(opt)
|
autowaf.set_options(opt)
|
||||||
|
opt.add_option('--potupdate', action='store_true', dest='potupdate',
|
||||||
|
help='Rebuild pot file for translators')
|
||||||
|
|
||||||
def configure(conf):
|
def configure(conf):
|
||||||
autowaf.build_version_files(path_prefix+'version.h', path_prefix+'version.cc',
|
autowaf.build_version_files(path_prefix+'version.h', path_prefix+'version.cc',
|
||||||
|
|
@ -51,177 +225,8 @@ def configure(conf):
|
||||||
def build(bld):
|
def build(bld):
|
||||||
# Program
|
# Program
|
||||||
obj = bld.new_task_gen(features = 'cxx cc cprogram')
|
obj = bld.new_task_gen(features = 'cxx cc cprogram')
|
||||||
obj.source = '''
|
|
||||||
about.cc
|
|
||||||
actions.cc
|
|
||||||
add_midi_cc_track_dialog.cc
|
|
||||||
add_route_dialog.cc
|
|
||||||
analysis_window.cc
|
|
||||||
ardour_dialog.cc
|
|
||||||
ardour_ui.cc
|
|
||||||
ardour_ui2.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_region_editor.cc
|
|
||||||
audio_region_view.cc
|
|
||||||
audio_streamview.cc
|
|
||||||
audio_time_axis.cc
|
|
||||||
automation_controller.cc
|
|
||||||
automation_line.cc
|
|
||||||
automation_region_view.cc
|
|
||||||
automation_streamview.cc
|
|
||||||
automation_time_axis.cc
|
|
||||||
axis_view.cc
|
|
||||||
bundle_manager.cc
|
|
||||||
cairo_widget.cc
|
|
||||||
canvas-flag.cc
|
|
||||||
canvas-note-event.cc
|
|
||||||
canvas-note.cc
|
|
||||||
canvas-program-change.cc
|
|
||||||
canvas-simpleline.c
|
|
||||||
canvas-simplerect.c
|
|
||||||
canvas-sysex.cc
|
|
||||||
canvas-waveview.c
|
|
||||||
control_point.cc
|
|
||||||
control_point_dialog.cc
|
|
||||||
crossfade_edit.cc
|
|
||||||
crossfade_view.cc
|
|
||||||
curvetest.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_component.cc
|
|
||||||
editor_cursors.cc
|
|
||||||
editor_drag.cc
|
|
||||||
editor_route_groups.cc
|
|
||||||
editor_export_audio.cc
|
|
||||||
editor_group_tabs.cc
|
|
||||||
editor_hscroller.cc
|
|
||||||
editor_keyboard.cc
|
|
||||||
editor_keys.cc
|
|
||||||
editor_markers.cc
|
|
||||||
editor_mixer.cc
|
|
||||||
editor_mouse.cc
|
|
||||||
editor_nudge.cc
|
|
||||||
editor_ops.cc
|
|
||||||
editor_regions.cc
|
|
||||||
editor_routes.cc
|
|
||||||
editor_rulers.cc
|
|
||||||
editor_scrub.cc
|
|
||||||
editor_selection.cc
|
|
||||||
editor_selection_list.cc
|
|
||||||
editor_snapshots.cc
|
|
||||||
editor_summary.cc
|
|
||||||
editor_tempodisplay.cc
|
|
||||||
editor_timefx.cc
|
|
||||||
engine_dialog.cc
|
|
||||||
enums.cc
|
|
||||||
export_channel_selector.cc
|
|
||||||
export_dialog.cc
|
|
||||||
export_file_notebook.cc
|
|
||||||
export_filename_selector.cc
|
|
||||||
export_format_dialog.cc
|
|
||||||
export_format_selector.cc
|
|
||||||
export_preset_selector.cc
|
|
||||||
export_timespan_selector.cc
|
|
||||||
fft.cc
|
|
||||||
fft_graph.cc
|
|
||||||
fft_result.cc
|
|
||||||
gain_meter.cc
|
|
||||||
generic_pluginui.cc
|
|
||||||
ghostregion.cc
|
|
||||||
global_port_matrix.cc
|
|
||||||
group_tabs.cc
|
|
||||||
gtk-custom-hruler.c
|
|
||||||
gtk-custom-ruler.c
|
|
||||||
io_selector.cc
|
|
||||||
keyboard.cc
|
|
||||||
keyeditor.cc
|
|
||||||
latency_gui.cc
|
|
||||||
level_meter.cc
|
|
||||||
lineset.cc
|
|
||||||
location_ui.cc
|
|
||||||
main.cc
|
|
||||||
marker.cc
|
|
||||||
midi_channel_selector.cc
|
|
||||||
midi_port_dialog.cc
|
|
||||||
midi_region_view.cc
|
|
||||||
midi_scroomer.cc
|
|
||||||
midi_streamview.cc
|
|
||||||
midi_time_axis.cc
|
|
||||||
mixer_group_tabs.cc
|
|
||||||
mixer_strip.cc
|
|
||||||
mixer_ui.cc
|
|
||||||
nag.cc
|
|
||||||
option_editor.cc
|
|
||||||
opts.cc
|
|
||||||
panner.cc
|
|
||||||
panner2d.cc
|
|
||||||
panner_ui.cc
|
|
||||||
piano_roll_header.cc
|
|
||||||
playlist_selector.cc
|
|
||||||
plugin_eq_gui.cc
|
|
||||||
plugin_selector.cc
|
|
||||||
plugin_ui.cc
|
|
||||||
port_group.cc
|
|
||||||
port_matrix.cc
|
|
||||||
port_matrix_body.cc
|
|
||||||
port_matrix_column_labels.cc
|
|
||||||
port_matrix_component.cc
|
|
||||||
port_matrix_grid.cc
|
|
||||||
port_matrix_labels.cc
|
|
||||||
port_matrix_row_labels.cc
|
|
||||||
processor_box.cc
|
|
||||||
prompter.cc
|
|
||||||
public_editor.cc
|
|
||||||
rc_option_editor.cc
|
|
||||||
region_gain_line.cc
|
|
||||||
region_selection.cc
|
|
||||||
region_view.cc
|
|
||||||
return_ui.cc
|
|
||||||
rhythm_ferret.cc
|
|
||||||
route_group_dialog.cc
|
|
||||||
route_group_menu.cc
|
|
||||||
route_params_ui.cc
|
|
||||||
route_processor_selection.cc
|
|
||||||
route_time_axis.cc
|
|
||||||
route_ui.cc
|
|
||||||
selection.cc
|
|
||||||
send_ui.cc
|
|
||||||
session_import_dialog.cc
|
|
||||||
session_metadata_dialog.cc
|
|
||||||
session_option_editor.cc
|
|
||||||
sfdb_ui.cc
|
|
||||||
simpleline.cc
|
|
||||||
simplerect.cc
|
|
||||||
splash.cc
|
|
||||||
startup.cc
|
|
||||||
streamview.cc
|
|
||||||
strip_silence_dialog.cc
|
|
||||||
tape_region_view.cc
|
|
||||||
tempo_dialog.cc
|
|
||||||
tempo_lines.cc
|
|
||||||
theme_manager.cc
|
|
||||||
time_axis_view.cc
|
|
||||||
time_axis_view_item.cc
|
|
||||||
time_fx_dialog.cc
|
|
||||||
time_selection.cc
|
|
||||||
track_selection.cc
|
|
||||||
ui_config.cc
|
|
||||||
utils.cc
|
|
||||||
version.cc
|
|
||||||
waveview.cc
|
|
||||||
'''
|
|
||||||
obj.includes = ['.']
|
obj.includes = ['.']
|
||||||
|
obj.source = gtk2_ardour_sources
|
||||||
obj.name = 'gtk2_ardour'
|
obj.name = 'gtk2_ardour'
|
||||||
obj.target = 'ardour-3.0'
|
obj.target = 'ardour-3.0'
|
||||||
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
|
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
|
||||||
|
|
@ -238,29 +243,29 @@ def build(bld):
|
||||||
obj.cxxflags += ['-DLOCALEDIR="' + os.path.join(
|
obj.cxxflags += ['-DLOCALEDIR="' + os.path.join(
|
||||||
os.path.normpath(bld.env['DATADIRNAME']), 'locale') + '"']
|
os.path.normpath(bld.env['DATADIRNAME']), 'locale') + '"']
|
||||||
if bld.env['HAVE_SLV2']:
|
if bld.env['HAVE_SLV2']:
|
||||||
obj.source += ' lv2_plugin_ui.cc '
|
obj.source += [ 'lv2_plugin_ui.cc' ]
|
||||||
obj.uselib += ' SLV2 '
|
obj.uselib += ' SLV2 '
|
||||||
|
|
||||||
if bld.env['FREESOUND']:
|
if bld.env['FREESOUND']:
|
||||||
obj.source += 'sfdb_freesound_mootcher.cc '
|
obj.source += [ 'sfdb_freesound_mootcher.cc' ]
|
||||||
|
|
||||||
if bld.env['VST']:
|
if bld.env['VST']:
|
||||||
obj.source += ' vst_pluginui.cc '
|
obj.source += [ 'vst_pluginui.cc' ]
|
||||||
obj.cxxflags += [ '-DVST_SUPPORT' ]
|
obj.cxxflags += [ '-DVST_SUPPORT' ]
|
||||||
|
|
||||||
if bld.env['GTKOSX']:
|
if bld.env['GTKOSX']:
|
||||||
obj.features += ' objc '
|
obj.features += ' objc '
|
||||||
obj.source += ' cocoacarbon.mm '
|
obj.source += [ 'cocoacarbon.mm' ]
|
||||||
obj.cxxflags += [ '-DTOP_MENUBAR', '-DGTKOSX' ]
|
obj.cxxflags += [ '-DTOP_MENUBAR', '-DGTKOSX' ]
|
||||||
obj.linkflags += [ '-framework', 'AppKit', '-framework', 'CoreAudioKit' ]
|
obj.linkflags += [ '-framework', 'AppKit', '-framework', 'CoreAudioKit' ]
|
||||||
|
|
||||||
if bld.env['AUDIOUNITS']:
|
if bld.env['AUDIOUNITS']:
|
||||||
obj.source += ' au_pluginui.mm '
|
obj.source += [ 'au_pluginui.mm' ]
|
||||||
obj.cxxflags += [ '-DHAVE_AUDIOUNITS' ]
|
obj.cxxflags += [ '-DHAVE_AUDIOUNITS' ]
|
||||||
obj.uselib_local += ' libappleutility '
|
obj.uselib_local += ' libappleutility '
|
||||||
|
|
||||||
else:
|
else:
|
||||||
obj.source += ' x11.cc '
|
obj.source += [ 'x11.cc' ]
|
||||||
|
|
||||||
# Wrappers
|
# Wrappers
|
||||||
|
|
||||||
|
|
@ -401,6 +406,12 @@ def build(bld):
|
||||||
bld.install_files('${DATADIR}/ardour3/pixmaps', 'pixmaps/*.xpm')
|
bld.install_files('${DATADIR}/ardour3/pixmaps', 'pixmaps/*.xpm')
|
||||||
bld.install_files('${DATADIR}/ardour3', 'splash.png')
|
bld.install_files('${DATADIR}/ardour3', 'splash.png')
|
||||||
|
|
||||||
def shutdown():
|
# i18n
|
||||||
autowaf.shutdown()
|
if bld.env['ENABLE_NLS']:
|
||||||
|
mo_files = glob.glob (os.path.join (bld.get_curdir(), 'po/*.mo'))
|
||||||
|
for mo in mo_files:
|
||||||
|
lang = os.path.basename (mo).replace ('.mo', '')
|
||||||
|
bld.install_as (os.path.join (bld.env['PREFIX'], 'share', 'locale', lang, 'LC_MESSAGES', APPNAME + '.mo'), mo)
|
||||||
|
|
||||||
|
def i18n(bld):
|
||||||
|
build_i18n (bld, 'gtk2_ardour', APPNAME, gtk2_ardour_sources)
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,7 @@
|
||||||
#include "ardour/buffer_set.h"
|
#include "ardour/buffer_set.h"
|
||||||
#include "ardour/configuration.h"
|
#include "ardour/configuration.h"
|
||||||
#include "ardour/io.h"
|
#include "ardour/io.h"
|
||||||
|
#include "ardour/midi_buffer.h"
|
||||||
#include "ardour/mute_master.h"
|
#include "ardour/mute_master.h"
|
||||||
#include "ardour/session.h"
|
#include "ardour/session.h"
|
||||||
|
|
||||||
|
|
@ -193,9 +194,26 @@ Amp::apply_gain (BufferSet& bufs, nframes_t nframes, gain_t initial, gain_t targ
|
||||||
delta = target - initial;
|
delta = target - initial;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* MIDI Gain */
|
||||||
|
|
||||||
|
for (BufferSet::midi_iterator i = bufs.midi_begin(); i != bufs.midi_end(); ++i) {
|
||||||
|
#if 0
|
||||||
|
MidiBuffer& mb (*i);
|
||||||
|
|
||||||
|
for (MidiBuffer::iterator m = mb.begin(); m != mb.end(); ++m) {
|
||||||
|
Evoral::MIDIEvent<MidiBuffer::TimeType> ev (*m);
|
||||||
|
if (ev.buffer()[0] == MIDI_CMD_NOTE_ON) {
|
||||||
|
ev.buffer()[2] = (uint8_t) rint (ev.buffer()[2] * 1.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Audio Gain */
|
||||||
|
|
||||||
for (BufferSet::audio_iterator i = bufs.audio_begin(); i != bufs.audio_end(); ++i) {
|
for (BufferSet::audio_iterator i = bufs.audio_begin(); i != bufs.audio_end(); ++i) {
|
||||||
Sample* const buffer = i->data();
|
Sample* const buffer = i->data();
|
||||||
|
|
||||||
fractional_pos = 1.0;
|
fractional_pos = 1.0;
|
||||||
|
|
||||||
for (nframes_t nx = 0; nx < declick; ++nx) {
|
for (nframes_t nx = 0; nx < declick; ++nx) {
|
||||||
|
|
|
||||||
|
|
@ -126,6 +126,25 @@ public:
|
||||||
audio_iterator audio_begin() { return audio_iterator(*this, 0); }
|
audio_iterator audio_begin() { return audio_iterator(*this, 0); }
|
||||||
audio_iterator audio_end() { return audio_iterator(*this, _count.n_audio()); }
|
audio_iterator audio_end() { return audio_iterator(*this, _count.n_audio()); }
|
||||||
|
|
||||||
|
class midi_iterator {
|
||||||
|
public:
|
||||||
|
MidiBuffer& operator*() { return _set.get_midi(_index); }
|
||||||
|
MidiBuffer* operator->() { return &_set.get_midi(_index); }
|
||||||
|
midi_iterator& operator++() { ++_index; return *this; } // yes, prefix only
|
||||||
|
bool operator==(const midi_iterator& other) { return (_index == other._index); }
|
||||||
|
bool operator!=(const midi_iterator& other) { return (_index != other._index); }
|
||||||
|
|
||||||
|
private:
|
||||||
|
friend class BufferSet;
|
||||||
|
|
||||||
|
midi_iterator(BufferSet& list, size_t index) : _set(list), _index(index) {}
|
||||||
|
|
||||||
|
BufferSet& _set;
|
||||||
|
size_t _index;
|
||||||
|
};
|
||||||
|
|
||||||
|
midi_iterator midi_begin() { return midi_iterator(*this, 0); }
|
||||||
|
midi_iterator midi_end() { return midi_iterator(*this, _count.n_midi()); }
|
||||||
|
|
||||||
class iterator {
|
class iterator {
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,15 @@ public:
|
||||||
*((TimeType*)(buffer._data + offset)),
|
*((TimeType*)(buffer._data + offset)),
|
||||||
event_size, ev_start);
|
event_size, ev_start);
|
||||||
}
|
}
|
||||||
|
inline EventType operator*() {
|
||||||
|
uint8_t* ev_start = buffer._data + offset + sizeof(TimeType);
|
||||||
|
int event_size = Evoral::midi_event_size(ev_start);
|
||||||
|
assert(event_size >= 0);
|
||||||
|
return EventType(EventTypeMap::instance().midi_event_type(*ev_start),
|
||||||
|
*((TimeType*)(buffer._data + offset)),
|
||||||
|
event_size, ev_start);
|
||||||
|
}
|
||||||
|
|
||||||
inline iterator_base<BufferType, EventType>& operator++() {
|
inline iterator_base<BufferType, EventType>& operator++() {
|
||||||
uint8_t* ev_start = buffer._data + offset + sizeof(TimeType);
|
uint8_t* ev_start = buffer._data + offset + sizeof(TimeType);
|
||||||
int event_size = Evoral::midi_event_size(ev_start);
|
int event_size = Evoral::midi_event_size(ev_start);
|
||||||
|
|
|
||||||
|
|
@ -328,8 +328,6 @@ Delivery::run (BufferSet& bufs, sframes_t start_frame, sframes_t end_frame, nfra
|
||||||
Amp::apply_simple_gain (bufs, nframes, tgain);
|
Amp::apply_simple_gain (bufs, nframes, tgain);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Attach output buffers to port buffers
|
|
||||||
|
|
||||||
if (_panner && _panner->npanners() && !_panner->bypassed()) {
|
if (_panner && _panner->npanners() && !_panner->bypassed()) {
|
||||||
|
|
||||||
// Use the panner to distribute audio to output port buffers
|
// Use the panner to distribute audio to output port buffers
|
||||||
|
|
|
||||||
|
|
@ -117,6 +117,8 @@ InternalSend::run (BufferSet& bufs, sframes_t start_frame, sframes_t end_frame,
|
||||||
|
|
||||||
_amp->run (sendbufs, start_frame, end_frame, nframes);
|
_amp->run (sendbufs, start_frame, end_frame, nframes);
|
||||||
|
|
||||||
|
/* XXX NEED TO PAN */
|
||||||
|
|
||||||
/* consider metering */
|
/* consider metering */
|
||||||
|
|
||||||
if (_metering) {
|
if (_metering) {
|
||||||
|
|
|
||||||
|
|
@ -760,10 +760,6 @@ Route::add_processor_from_xml (const XMLNode& node, ProcessorList::iterator iter
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (prop->value() == "listen" || prop->value() == "deliver") {
|
|
||||||
|
|
||||||
/* XXX need to generalize */
|
|
||||||
|
|
||||||
} else if (prop->value() == "intsend") {
|
} else if (prop->value() == "intsend") {
|
||||||
|
|
||||||
processor.reset (new InternalSend (_session, _mute_master, node));
|
processor.reset (new InternalSend (_session, _mute_master, node));
|
||||||
|
|
@ -795,6 +791,7 @@ Route::add_processor_from_xml (const XMLNode& node, ProcessorList::iterator iter
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
error << string_compose(_("unknown Processor type \"%1\"; ignored"), prop->value()) << endmsg;
|
error << string_compose(_("unknown Processor type \"%1\"; ignored"), prop->value()) << endmsg;
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (iter == _processors.end() && processor->visible() && !_processors.empty()) {
|
if (iter == _processors.end() && processor->visible() && !_processors.empty()) {
|
||||||
|
|
@ -2649,6 +2646,8 @@ Route::meter ()
|
||||||
{
|
{
|
||||||
Glib::RWLock::ReaderLock rm (_processor_lock, Glib::TRY_LOCK);
|
Glib::RWLock::ReaderLock rm (_processor_lock, Glib::TRY_LOCK);
|
||||||
|
|
||||||
|
assert (_meter);
|
||||||
|
|
||||||
_meter->meter ();
|
_meter->meter ();
|
||||||
|
|
||||||
for (ProcessorList::iterator i = _processors.begin(); i != _processors.end(); ++i) {
|
for (ProcessorList::iterator i = _processors.begin(); i != _processors.end(); ++i) {
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,8 @@
|
||||||
#include "ardour/configuration.h"
|
#include "ardour/configuration.h"
|
||||||
#include "ardour/session.h"
|
#include "ardour/session.h"
|
||||||
|
|
||||||
|
#include "i18n.h"
|
||||||
|
|
||||||
using namespace ARDOUR;
|
using namespace ARDOUR;
|
||||||
using namespace sigc;
|
using namespace sigc;
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
@ -224,6 +226,15 @@ RouteGroup::make_subgroup ()
|
||||||
RouteList rl;
|
RouteList rl;
|
||||||
uint32_t nin = 0;
|
uint32_t nin = 0;
|
||||||
|
|
||||||
|
/* since we don't do MIDI Busses yet, check quickly ... */
|
||||||
|
|
||||||
|
for (list<Route*>::iterator i = routes.begin(); i != routes.end(); ++i) {
|
||||||
|
if ((*i)->output()->n_ports().n_midi() != 0) {
|
||||||
|
PBD::info << _("You cannot subgroup MIDI tracks at this time") << endmsg;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for (list<Route*>::iterator i = routes.begin(); i != routes.end(); ++i) {
|
for (list<Route*>::iterator i = routes.begin(); i != routes.end(); ++i) {
|
||||||
nin = max (nin, (*i)->output()->n_ports().n_audio());
|
nin = max (nin, (*i)->output()->n_ports().n_audio());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -190,7 +190,13 @@ Send::configure_io (ChanCount in, ChanCount out)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Processor::configure_io (in, out);
|
if (!Processor::configure_io (in, out)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
reset_panner ();
|
||||||
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Set up the XML description of a send so that its name is unique.
|
/** Set up the XML description of a send so that its name is unique.
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import autowaf
|
||||||
import os
|
import os
|
||||||
import glob
|
import glob
|
||||||
import Options
|
import Options
|
||||||
|
from w18n import build_i18n
|
||||||
|
|
||||||
# Version of this package (even if built as a child)
|
# Version of this package (even if built as a child)
|
||||||
MAJOR = '3'
|
MAJOR = '3'
|
||||||
|
|
@ -26,6 +27,160 @@ blddir = 'build'
|
||||||
|
|
||||||
path_prefix = 'libs/ardour/'
|
path_prefix = 'libs/ardour/'
|
||||||
|
|
||||||
|
libardour_sources = [
|
||||||
|
'amp.cc',
|
||||||
|
'analyser.cc',
|
||||||
|
'audio_buffer.cc',
|
||||||
|
'audio_diskstream.cc',
|
||||||
|
'audio_library.cc',
|
||||||
|
'audio_playlist.cc',
|
||||||
|
'audio_playlist_importer.cc',
|
||||||
|
'audio_port.cc',
|
||||||
|
'audio_region_importer.cc',
|
||||||
|
'audio_track.cc',
|
||||||
|
'audio_track_importer.cc',
|
||||||
|
'audioanalyser.cc',
|
||||||
|
'audioengine.cc',
|
||||||
|
'audiofile_tagger.cc',
|
||||||
|
'audiofilesource.cc',
|
||||||
|
'audioregion.cc',
|
||||||
|
'audiosource.cc',
|
||||||
|
'auditioner.cc',
|
||||||
|
'automatable.cc',
|
||||||
|
'automation.cc',
|
||||||
|
'automation_control.cc',
|
||||||
|
'automation_list.cc',
|
||||||
|
'beats_frames_converter.cc',
|
||||||
|
'broadcast_info.cc',
|
||||||
|
'buffer.cc',
|
||||||
|
'buffer_set.cc',
|
||||||
|
'bundle.cc',
|
||||||
|
'chan_count.cc',
|
||||||
|
'chan_mapping.cc',
|
||||||
|
'configuration.cc',
|
||||||
|
'control_protocol_manager.cc',
|
||||||
|
'control_protocol_search_path.cc',
|
||||||
|
'crossfade.cc',
|
||||||
|
'cycle_timer.cc',
|
||||||
|
'default_click.cc',
|
||||||
|
'delivery.cc',
|
||||||
|
'directory_names.cc',
|
||||||
|
'diskstream.cc',
|
||||||
|
'element_import_handler.cc',
|
||||||
|
'element_importer.cc',
|
||||||
|
'enums.cc',
|
||||||
|
'event_type_map.cc',
|
||||||
|
'export_channel.cc',
|
||||||
|
'export_channel_configuration.cc',
|
||||||
|
'export_file_io.cc',
|
||||||
|
'export_filename.cc',
|
||||||
|
'export_format_base.cc',
|
||||||
|
'export_format_manager.cc',
|
||||||
|
'export_format_specification.cc',
|
||||||
|
'export_formats.cc',
|
||||||
|
'export_handler.cc',
|
||||||
|
'export_preset.cc',
|
||||||
|
'export_processor.cc',
|
||||||
|
'export_profile_manager.cc',
|
||||||
|
'export_status.cc',
|
||||||
|
'export_timespan.cc',
|
||||||
|
'export_utilities.cc',
|
||||||
|
'file_source.cc',
|
||||||
|
'filename_extensions.cc',
|
||||||
|
'filesystem_paths.cc',
|
||||||
|
'filter.cc',
|
||||||
|
'find_session.cc',
|
||||||
|
'gain.cc',
|
||||||
|
'gdither.cc',
|
||||||
|
'globals.cc',
|
||||||
|
'import.cc',
|
||||||
|
'internal_return.cc',
|
||||||
|
'internal_send.cc',
|
||||||
|
'interpolation.cc',
|
||||||
|
'io.cc',
|
||||||
|
'io_processor.cc',
|
||||||
|
'jack_slave.cc',
|
||||||
|
'ladspa_plugin.cc',
|
||||||
|
'location.cc',
|
||||||
|
'location_importer.cc',
|
||||||
|
'meter.cc',
|
||||||
|
'midi_buffer.cc',
|
||||||
|
'midi_clock_slave.cc',
|
||||||
|
'midi_diskstream.cc',
|
||||||
|
'midi_model.cc',
|
||||||
|
'midi_patch_manager.cc',
|
||||||
|
'midi_playlist.cc',
|
||||||
|
'midi_port.cc',
|
||||||
|
'midi_region.cc',
|
||||||
|
'midi_ring_buffer.cc',
|
||||||
|
'midi_source.cc',
|
||||||
|
'midi_state_tracker.cc',
|
||||||
|
'midi_stretch.cc',
|
||||||
|
'midi_track.cc',
|
||||||
|
'mix.cc',
|
||||||
|
'mtc_slave.cc',
|
||||||
|
'mute_master.cc',
|
||||||
|
'named_selection.cc',
|
||||||
|
'onset_detector.cc',
|
||||||
|
'panner.cc',
|
||||||
|
'pcm_utils.cc',
|
||||||
|
'playlist.cc',
|
||||||
|
'playlist_factory.cc',
|
||||||
|
'plugin.cc',
|
||||||
|
'plugin_insert.cc',
|
||||||
|
'plugin_manager.cc',
|
||||||
|
'port.cc',
|
||||||
|
'port_insert.cc',
|
||||||
|
'port_set.cc',
|
||||||
|
'processor.cc',
|
||||||
|
'quantize.cc',
|
||||||
|
'rc_configuration.cc',
|
||||||
|
'recent_sessions.cc',
|
||||||
|
'region.cc',
|
||||||
|
'region_factory.cc',
|
||||||
|
'resampled_source.cc',
|
||||||
|
'return.cc',
|
||||||
|
'reverse.cc',
|
||||||
|
'route.cc',
|
||||||
|
'route_group.cc',
|
||||||
|
'rb_effect.cc',
|
||||||
|
'send.cc',
|
||||||
|
'session.cc',
|
||||||
|
'session_butler.cc',
|
||||||
|
'session_click.cc',
|
||||||
|
'session_command.cc',
|
||||||
|
'session_configuration.cc',
|
||||||
|
'session_directory.cc',
|
||||||
|
'session_events.cc',
|
||||||
|
'session_export.cc',
|
||||||
|
'session_metadata.cc',
|
||||||
|
'session_midi.cc',
|
||||||
|
'session_process.cc',
|
||||||
|
'session_state.cc',
|
||||||
|
'session_state_utils.cc',
|
||||||
|
'session_time.cc',
|
||||||
|
'session_transport.cc',
|
||||||
|
'session_utils.cc',
|
||||||
|
'smf_source.cc',
|
||||||
|
'sndfile_helpers.cc',
|
||||||
|
'sndfileimportable.cc',
|
||||||
|
'sndfilesource.cc',
|
||||||
|
'source.cc',
|
||||||
|
'source_factory.cc',
|
||||||
|
'strip_silence.cc',
|
||||||
|
'svn_revision.cc',
|
||||||
|
'tape_file_matcher.cc',
|
||||||
|
'template_utils.cc',
|
||||||
|
'tempo.cc',
|
||||||
|
'tempo_map_importer.cc',
|
||||||
|
'ticker.cc',
|
||||||
|
'track.cc',
|
||||||
|
'transient_detector.cc',
|
||||||
|
'user_bundle.cc',
|
||||||
|
'utils.cc',
|
||||||
|
'version.cc'
|
||||||
|
]
|
||||||
|
|
||||||
def set_options(opt):
|
def set_options(opt):
|
||||||
autowaf.set_options(opt)
|
autowaf.set_options(opt)
|
||||||
|
|
||||||
|
|
@ -76,160 +231,8 @@ def configure(conf):
|
||||||
|
|
||||||
def build(bld):
|
def build(bld):
|
||||||
# Library
|
# Library
|
||||||
obj = bld.new_task_gen('cxx', 'shlib')
|
obj = bld.new_task_gen('cxx', 'shlib')
|
||||||
obj.source = '''
|
obj.source = libardour_sources
|
||||||
amp.cc
|
|
||||||
analyser.cc
|
|
||||||
audio_buffer.cc
|
|
||||||
audio_diskstream.cc
|
|
||||||
audio_library.cc
|
|
||||||
audio_playlist.cc
|
|
||||||
audio_playlist_importer.cc
|
|
||||||
audio_port.cc
|
|
||||||
audio_region_importer.cc
|
|
||||||
audio_track.cc
|
|
||||||
audio_track_importer.cc
|
|
||||||
audioanalyser.cc
|
|
||||||
audioengine.cc
|
|
||||||
audiofile_tagger.cc
|
|
||||||
audiofilesource.cc
|
|
||||||
audioregion.cc
|
|
||||||
audiosource.cc
|
|
||||||
auditioner.cc
|
|
||||||
automatable.cc
|
|
||||||
automation.cc
|
|
||||||
automation_control.cc
|
|
||||||
automation_list.cc
|
|
||||||
beats_frames_converter.cc
|
|
||||||
broadcast_info.cc
|
|
||||||
buffer.cc
|
|
||||||
buffer_set.cc
|
|
||||||
bundle.cc
|
|
||||||
chan_count.cc
|
|
||||||
chan_mapping.cc
|
|
||||||
configuration.cc
|
|
||||||
control_protocol_manager.cc
|
|
||||||
control_protocol_search_path.cc
|
|
||||||
crossfade.cc
|
|
||||||
cycle_timer.cc
|
|
||||||
default_click.cc
|
|
||||||
delivery.cc
|
|
||||||
directory_names.cc
|
|
||||||
diskstream.cc
|
|
||||||
element_import_handler.cc
|
|
||||||
element_importer.cc
|
|
||||||
enums.cc
|
|
||||||
event_type_map.cc
|
|
||||||
export_channel.cc
|
|
||||||
export_channel_configuration.cc
|
|
||||||
export_file_io.cc
|
|
||||||
export_filename.cc
|
|
||||||
export_format_base.cc
|
|
||||||
export_format_manager.cc
|
|
||||||
export_format_specification.cc
|
|
||||||
export_formats.cc
|
|
||||||
export_handler.cc
|
|
||||||
export_preset.cc
|
|
||||||
export_processor.cc
|
|
||||||
export_profile_manager.cc
|
|
||||||
export_status.cc
|
|
||||||
export_timespan.cc
|
|
||||||
export_utilities.cc
|
|
||||||
file_source.cc
|
|
||||||
filename_extensions.cc
|
|
||||||
filesystem_paths.cc
|
|
||||||
filter.cc
|
|
||||||
find_session.cc
|
|
||||||
gain.cc
|
|
||||||
gdither.cc
|
|
||||||
globals.cc
|
|
||||||
import.cc
|
|
||||||
internal_return.cc
|
|
||||||
internal_send.cc
|
|
||||||
interpolation.cc
|
|
||||||
io.cc
|
|
||||||
io_processor.cc
|
|
||||||
jack_slave.cc
|
|
||||||
ladspa_plugin.cc
|
|
||||||
location.cc
|
|
||||||
location_importer.cc
|
|
||||||
meter.cc
|
|
||||||
midi_buffer.cc
|
|
||||||
midi_clock_slave.cc
|
|
||||||
midi_diskstream.cc
|
|
||||||
midi_model.cc
|
|
||||||
midi_patch_manager.cc
|
|
||||||
midi_playlist.cc
|
|
||||||
midi_port.cc
|
|
||||||
midi_region.cc
|
|
||||||
midi_ring_buffer.cc
|
|
||||||
midi_source.cc
|
|
||||||
midi_state_tracker.cc
|
|
||||||
midi_stretch.cc
|
|
||||||
midi_track.cc
|
|
||||||
mix.cc
|
|
||||||
mtc_slave.cc
|
|
||||||
mute_master.cc
|
|
||||||
named_selection.cc
|
|
||||||
onset_detector.cc
|
|
||||||
panner.cc
|
|
||||||
pcm_utils.cc
|
|
||||||
playlist.cc
|
|
||||||
playlist_factory.cc
|
|
||||||
plugin.cc
|
|
||||||
plugin_insert.cc
|
|
||||||
plugin_manager.cc
|
|
||||||
port.cc
|
|
||||||
port_insert.cc
|
|
||||||
port_set.cc
|
|
||||||
processor.cc
|
|
||||||
quantize.cc
|
|
||||||
rc_configuration.cc
|
|
||||||
recent_sessions.cc
|
|
||||||
region.cc
|
|
||||||
region_factory.cc
|
|
||||||
resampled_source.cc
|
|
||||||
return.cc
|
|
||||||
reverse.cc
|
|
||||||
route.cc
|
|
||||||
route_group.cc
|
|
||||||
rb_effect.cc
|
|
||||||
send.cc
|
|
||||||
session.cc
|
|
||||||
session_butler.cc
|
|
||||||
session_click.cc
|
|
||||||
session_command.cc
|
|
||||||
session_configuration.cc
|
|
||||||
session_directory.cc
|
|
||||||
session_events.cc
|
|
||||||
session_export.cc
|
|
||||||
session_metadata.cc
|
|
||||||
session_midi.cc
|
|
||||||
session_process.cc
|
|
||||||
session_state.cc
|
|
||||||
session_state_utils.cc
|
|
||||||
session_time.cc
|
|
||||||
session_transport.cc
|
|
||||||
session_utils.cc
|
|
||||||
smf_source.cc
|
|
||||||
sndfile_helpers.cc
|
|
||||||
sndfileimportable.cc
|
|
||||||
sndfilesource.cc
|
|
||||||
source.cc
|
|
||||||
source_factory.cc
|
|
||||||
strip_silence.cc
|
|
||||||
svn_revision.cc
|
|
||||||
tape_file_matcher.cc
|
|
||||||
template_utils.cc
|
|
||||||
tempo.cc
|
|
||||||
tempo_map_importer.cc
|
|
||||||
ticker.cc
|
|
||||||
track.cc
|
|
||||||
transient_detector.cc
|
|
||||||
user_bundle.cc
|
|
||||||
utils.cc
|
|
||||||
version.cc
|
|
||||||
'''
|
|
||||||
obj.export_incdirs = ['.']
|
obj.export_incdirs = ['.']
|
||||||
obj.includes = ['.', '../surfaces/control_protocol']
|
obj.includes = ['.', '../surfaces/control_protocol']
|
||||||
obj.name = 'libardour'
|
obj.name = 'libardour'
|
||||||
|
|
@ -249,28 +252,35 @@ def build(bld):
|
||||||
#obj.source += ' st_stretch.cc st_pitch.cc '
|
#obj.source += ' st_stretch.cc st_pitch.cc '
|
||||||
#obj.uselib += ' SOUNDTOUCH '
|
#obj.uselib += ' SOUNDTOUCH '
|
||||||
if bld.env['HAVE_SLV2']:
|
if bld.env['HAVE_SLV2']:
|
||||||
obj.source += ' lv2_plugin.cc lv2_event_buffer.cc uri_map.cc '
|
obj.source += [ 'lv2_plugin.cc', 'lv2_event_buffer.cc', 'uri_map.cc' ]
|
||||||
obj.uselib += ' SLV2 '
|
obj.uselib += ' SLV2 '
|
||||||
|
|
||||||
if bld.env['VST']:
|
if bld.env['VST']:
|
||||||
obj.source += ' vst_plugin.cc session_vst.cc '
|
obj.source += [ 'vst_plugin.cc', 'session_vst.cc' ]
|
||||||
|
|
||||||
if bld.env['HAVE_COREAUDIO'] and bld.env['COREAUDIO']:
|
if bld.env['HAVE_COREAUDIO'] and bld.env['COREAUDIO']:
|
||||||
obj.sources += ' coreaudio.cc caimportable.cc '
|
obj.sources += [ 'coreaudio.cc', 'caimportable.cc' ]
|
||||||
|
|
||||||
if bld.env['HAVE_AUDIOUNITS'] and bld.env['AUDIOUNITS']:
|
if bld.env['HAVE_AUDIOUNITS'] and bld.env['AUDIOUNITS']:
|
||||||
obj.sources += ' audio_unit.cc '
|
obj.sources += [ 'audio_unit.cc' ]
|
||||||
|
|
||||||
if bld.env['IS_OSX']:
|
if bld.env['IS_OSX']:
|
||||||
# this avoids issues with circular dependencies between libardour and libardour_cp.
|
# this avoids issues with circular dependencies between libardour and libardour_cp.
|
||||||
obj.linkflags += '-undefined suppress -flat_namespace'
|
obj.linkflags += '-undefined suppress -flat_namespace'
|
||||||
|
|
||||||
if bld.env['FPU_OPTIMIZATION']:
|
if bld.env['FPU_OPTIMIZATION']:
|
||||||
obj.source += ' sse_functions_xmm.cc'
|
obj.source += [ 'sse_functions_xmm.cc' ]
|
||||||
if bld.env['build_target'] == 'i386' or bld.env['build_target'] == 'i686':
|
if bld.env['build_target'] == 'i386' or bld.env['build_target'] == 'i686':
|
||||||
obj.source += ' sse_functions.s'
|
obj.source += [ 'sse_functions.s' ]
|
||||||
elif bld.env['build_target'] == 'x86_64':
|
elif bld.env['build_target'] == 'x86_64':
|
||||||
obj.source += ' sse_functions_64bit.s'
|
obj.source += [ 'sse_functions_64bit.s' ]
|
||||||
|
|
||||||
|
# i18n
|
||||||
|
if bld.env['ENABLE_NLS']:
|
||||||
|
mo_files = glob.glob (os.path.join (bld.get_curdir(), 'po/*.mo'))
|
||||||
|
for mo in mo_files:
|
||||||
|
lang = os.path.basename (mo).replace ('.mo', '')
|
||||||
|
bld.install_as (os.path.join (bld.env['PREFIX'], 'share', 'locale', lang, 'LC_MESSAGES', APPNAME + '.mo'), mo)
|
||||||
|
|
||||||
if bld.env['HAVE_CPPUNIT']:
|
if bld.env['HAVE_CPPUNIT']:
|
||||||
# Unit tests
|
# Unit tests
|
||||||
|
|
@ -289,3 +299,5 @@ def build(bld):
|
||||||
def shutdown():
|
def shutdown():
|
||||||
autowaf.shutdown()
|
autowaf.shutdown()
|
||||||
|
|
||||||
|
def i18n(bld):
|
||||||
|
build_i18n (bld, 'libs/ardour', APPNAME, libardour_sources)
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@ import os
|
||||||
# major increment <=> incompatible changes
|
# major increment <=> incompatible changes
|
||||||
# minor increment <=> compatible changes (additions)
|
# minor increment <=> compatible changes (additions)
|
||||||
# micro increment <=> no interface changes
|
# micro increment <=> no interface changes
|
||||||
LIBSURFACES_LIB_VERSION = '4.1.0'
|
LIBARDOUR_MCP_LIB_VERSION = '4.1.0'
|
||||||
|
|
||||||
# Mandatory variables
|
# Mandatory variables
|
||||||
srcdir = '.'
|
srcdir = '.'
|
||||||
|
|
@ -43,10 +43,10 @@ def build(bld):
|
||||||
obj.export_incdirs = ['./mackie']
|
obj.export_incdirs = ['./mackie']
|
||||||
obj.cxxflags = '-DPACKAGE="ardour_mackie"'
|
obj.cxxflags = '-DPACKAGE="ardour_mackie"'
|
||||||
obj.includes = ['.', './mackie']
|
obj.includes = ['.', './mackie']
|
||||||
obj.name = 'libmackie'
|
obj.name = 'libardour_mcp'
|
||||||
obj.target = 'mackie'
|
obj.target = 'ardour_mcp'
|
||||||
obj.uselib_local = 'libardour libsurfaces'
|
obj.uselib_local = 'libardour libardour_cp'
|
||||||
obj.vnum = LIBSURFACES_LIB_VERSION
|
obj.vnum = LIBARDOUR_MCP_LIB_VERSION
|
||||||
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
|
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
|
||||||
|
|
||||||
def shutdown():
|
def shutdown():
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,7 @@ def configure(conf):
|
||||||
def build(bld):
|
def build(bld):
|
||||||
bld.add_subdirs('control_protocol')
|
bld.add_subdirs('control_protocol')
|
||||||
bld.add_subdirs('generic_midi')
|
bld.add_subdirs('generic_midi')
|
||||||
|
bld.add_subdirs('mackie')
|
||||||
if bld.env['BUILD_OSC']:
|
if bld.env['BUILD_OSC']:
|
||||||
bld.add_subdirs('osc')
|
bld.add_subdirs('osc')
|
||||||
if bld.env['BUILD_POWERMATE']:
|
if bld.env['BUILD_POWERMATE']:
|
||||||
|
|
|
||||||
41
w18n.py
Normal file
41
w18n.py
Normal file
|
|
@ -0,0 +1,41 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import autowaf
|
||||||
|
import os
|
||||||
|
import glob
|
||||||
|
|
||||||
|
def build_i18n(bld,dir,name,sources):
|
||||||
|
pwd = bld.get_curdir()
|
||||||
|
os.chdir(pwd)
|
||||||
|
|
||||||
|
pot_file = '%s.pot' % name
|
||||||
|
|
||||||
|
args = [ 'xgettext',
|
||||||
|
'--keyword=_',
|
||||||
|
'--keyword=N_',
|
||||||
|
'--from-code=UTF-8',
|
||||||
|
'-o', pot_file,
|
||||||
|
'--copyright-holder="Paul Davis"' ]
|
||||||
|
args += sources
|
||||||
|
print 'Updating ', pot_file
|
||||||
|
os.spawnvp (os.P_WAIT, 'xgettext', args)
|
||||||
|
|
||||||
|
po_files = glob.glob ('po/*.po')
|
||||||
|
|
||||||
|
for po_file in po_files:
|
||||||
|
args = [ 'msgmerge',
|
||||||
|
'--update',
|
||||||
|
po_file,
|
||||||
|
pot_file ]
|
||||||
|
print 'Updating ', po_file
|
||||||
|
os.spawnvp (os.P_WAIT, 'msgmerge', args)
|
||||||
|
|
||||||
|
for po_file in po_files:
|
||||||
|
mo_file = po_file.replace ('.po', '.mo')
|
||||||
|
args = [ 'msgfmt',
|
||||||
|
'-c',
|
||||||
|
'-o',
|
||||||
|
mo_file,
|
||||||
|
po_file ]
|
||||||
|
print 'Generating ', po_file
|
||||||
|
os.spawnvp (os.P_WAIT, 'msgfmt', args)
|
||||||
11
wscript
11
wscript
|
|
@ -29,6 +29,11 @@ children = [
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
i18n_children = [
|
||||||
|
'gtk2_ardour',
|
||||||
|
'libs/ardour'
|
||||||
|
]
|
||||||
|
|
||||||
# Version stuff
|
# Version stuff
|
||||||
|
|
||||||
def fetch_svn_revision (path):
|
def fetch_svn_revision (path):
|
||||||
|
|
@ -386,6 +391,8 @@ def configure(conf):
|
||||||
autowaf.display_msg(conf, 'Samplerate', bool(conf.env['HAVE_SAMPLERATE']))
|
autowaf.display_msg(conf, 'Samplerate', bool(conf.env['HAVE_SAMPLERATE']))
|
||||||
autowaf.display_msg(conf, 'Soundtouch', bool(conf.env['HAVE_SOUNDTOUCH']))
|
autowaf.display_msg(conf, 'Soundtouch', bool(conf.env['HAVE_SOUNDTOUCH']))
|
||||||
autowaf.display_msg(conf, 'Translation', opts.nls)
|
autowaf.display_msg(conf, 'Translation', opts.nls)
|
||||||
|
if opts.nls:
|
||||||
|
conf.define ('ENABLE_NLS', 1)
|
||||||
autowaf.display_msg(conf, 'System Libraries', opts.syslibs)
|
autowaf.display_msg(conf, 'System Libraries', opts.syslibs)
|
||||||
autowaf.display_msg(conf, 'Tranzport', opts.tranzport)
|
autowaf.display_msg(conf, 'Tranzport', opts.tranzport)
|
||||||
if opts.tranzport:
|
if opts.tranzport:
|
||||||
|
|
@ -411,6 +418,6 @@ def build(bld):
|
||||||
for i in children:
|
for i in children:
|
||||||
bld.add_subdirs(i)
|
bld.add_subdirs(i)
|
||||||
|
|
||||||
def shutdown():
|
def i18n(bld):
|
||||||
autowaf.shutdown()
|
bld.recurse (i18n_children)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue