../libs/fst/vstwin.c
../vst/winmain.c
'''
- obj.uselib = 'ALSA'
-- obj.use = [ 'libpbd',
-- 'libmidipp',
-- 'libtaglib',
-- 'libardour',
-- 'libardour_cp',
- 'libtimecode',
- 'libmidipp',
-- 'libgtk2_ardour',
-- 'libgtkmm2ext',
-- 'libtaglib']
obj.target = 'ardour-' + bld.env['VERSION'] + '-vst.exe.so'
obj.includes = [ '../libs/fst', '.' ]
obj.linkflags = ['-mwindows', '-Wl,--export-dynamic']
# continue with setup of obj, which could be a shared library
# or an executable.
- obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
++ obj.use = [ 'libpbd',
++ 'libardour',
++ 'libardour_cp',
++ 'libtimecode',
++ 'libmidipp',
++ 'libgtk2_ardour',
++ 'libgtkmm2ext',
++ ]
+
- obj.uselib = 'UUID FLAC FONTCONFIG GLIBMM GTHREAD GTK OGG ALSA CURL DL'
- obj.uselib += ' GTKMM GNOMECANVASMM GNOMECANVAS '
+ obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
+ obj.uselib = 'UUID FLAC FONTCONFIG GLIBMM GTHREAD GTK OGG CURL DL'
+ obj.uselib += ' GTKMM GNOMECANVASMM GNOMECANVAS FFTW3F'
obj.uselib += ' AUDIOUNITS OSX GTKOSX LO '
- obj.use = [ 'libpbd',
- 'libmidipp',
- 'libtaglib',
- 'ardour',
- 'libardour_cp',
- 'libgtkmm2ext',
- 'libtaglib',
- 'timecode_includes'
- ]
-
+ if bld.is_defined('USE_EXTERNAL_LIBS'):
+ obj.uselib += ' TAGLIB'
+ else:
+ obj.use.append('libtaglib')
if sys.platform == 'darwin':
obj.use += ' libappleutility'
- obj.defines = [
+ obj.defines += [
'PACKAGE="' + I18N_PACKAGE + '"',
'VERSIONSTRING="' + bld.env['VERSION'] + '"',
'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"',
virtual void update_latencies () = 0;
+ /** Set @param speed and @param position to the current speed and position
+ * indicated by some transport sync signal. Return whether the current
+ * transport state is pending, or finalized.
+ *
+ * Derived classes only need implement this if they provide some way to
+ * sync to a transport sync signal (e.g. Sony 9 Pin) that is not
+ * handled by Ardour itself (LTC and MTC are both handled by Ardour).
+ * The canonical example is JACK Transport.
+ */
+ virtual bool speed_and_position (double& speed, framepos_t& position) {
+ speed = 0.0;
+ position = 0;
+ return false;
+ }
+
protected:
AudioEngine& engine;
+
+ virtual int _start (bool for_latency_measurement) = 0;
};
-struct AudioBackendInfo {
+struct LIBARDOUR_API AudioBackendInfo {
const char* name;
/** Using arg1 and arg2, initialize this audiobackend.
#include <string>
- #include "taglib/tag.h"
- #include "taglib/taglib.h"
- #include "taglib/xiphcomment.h"
+ #include <taglib/tag.h>
+ #include <taglib/taglib.h>
+ #include <taglib/xiphcomment.h>
+#include "ardour/libardour_visibility.h"
+
namespace ARDOUR
{
#include <glibmm/threads.h>
-#include <ltc.h>
++#include <ltc/ltc.h>
+
#include "pbd/error.h"
#include "pbd/event_loop.h"
#include "pbd/rcu.h"
#include <glibmm/threads.h>
#include <jack/jack.h>
-#include <ltc.h>
++#include <ltc/ltc.h>
#include "pbd/signals.h"
#include "timecode/time.h"
- #include "ltc/ltc.h"
+#include "ardour/libardour_visibility.h"
#include "ardour/types.h"
#include "midi++/parser.h"
#include "midi++/types.h"
obj.uselib = ['GLIBMM','GTHREAD','AUBIO','SIGCPP','XML','UUID',
'SNDFILE','SAMPLERATE','LRDF','AUDIOUNITS',
'OSX','BOOST','CURL','DL']
- obj.use = ['libpbd','libmidipp','libevoral','libvamphost',
- 'libvampplugin','libtaglib','librubberband',
- 'libaudiographer', 'ltc', 'timecode_includes' ]
- obj.use = ['libpbd','libmidipp','libevoral','libvampplugin',
- 'libaudiographer','libltc','libtimecode']
++ obj.use = ['libpbd','libmidipp','libevoral', 'libvampplugin',
++ 'libaudiographer',
++ 'libltc_includes',
++ 'libltc',
++ 'libtimecode_includes',
++ ]
+ if bld.is_defined('USE_EXTERNAL_LIBS'):
- obj.uselib.extend(['RUBBERBAND', 'TAGLIB', 'LIBLTC', 'VAMPSDK',
++ obj.uselib.extend(['RUBBERBAND', 'TAGLIB', 'VAMPSDK',
+ 'VAMPHOSTSDK'])
+ else:
- obj.use.extend(['libltc', 'librubberband', 'libtaglib', 'libvamphost'])
++ obj.use.extend(['librubberband', 'libtaglib', 'libvamphost'])
+
obj.vnum = LIBARDOUR_LIB_VERSION
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
- obj.defines = [
+ obj.defines += [
'PACKAGE="' + I18N_PACKAGE + '"',
'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"',
'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"',
autowaf.set_options(opt)
def configure(conf):
- conf.load('compiler_c')
- autowaf.configure(conf)
+ if conf.is_defined('USE_EXTERNAL_LIBS'):
+ autowaf.check_pkg(conf, 'ltc', uselib_store='LIBLTC', atleast_version=LIBLTC_LIB_VERSION, mandatory=True)
+ else:
+ conf.load('compiler_c')
+ autowaf.configure(conf)
def build(bld):
- obj = bld(features = 'c cshlib')
- obj.source = '''
- ltc.c
- timecode.c
- encoder.c
- decoder.c
- '''
-
- obj.export_includes = ['./ltc']
- obj.includes = ['.']
- obj.name = 'libltc'
- obj.target = 'ltc'
- obj.vnum = LIBLTC_LIB_VERSION
- obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
- obj.defines = ['PACKAGE="' + I18N_PACKAGE + '"']
+ if bld.is_defined('USE_EXTERNAL_LIBS'):
+ return
- name = 'ltc_includes'
+ bld (export_includes = ['.'],
+ includes = ['.'],
- target = 'ltc',
- use = 'ltc_includes'
++ name = 'libltc_includes'
+ )
+
+ bld.stlib (source = ['ltc.c', 'timecode.c', 'encoder.c', 'decoder.c'],
+ cflags = [ '-fPIC' ],
++ target = 'libltc',
++ use = 'libltc_includes'
+ )
def shutdown():
autowaf.shutdown()
#ifndef __midi_types_h__
#define __midi_types_h__
- #include <jack/jack.h>
#include <inttypes.h>
+#include "midi++/libmidi_visibility.h"
+
namespace MIDI {
typedef char channel_t;
def configure(conf):
conf.load('compiler_cxx')
autowaf.build_version_files(path_prefix+'midi++/version.h', path_prefix+'version.cc',
- 'midipp', MAJOR, MINOR, MICRO)
+ 'midipp', MAJOR, MINOR, MICRO, 'LIBMIDIPP_API', 'midi++/libmidi_visibility.h')
autowaf.configure(conf)
autowaf.check_pkg(conf, 'cppunit', uselib_store='CPPUNIT', atleast_version='1.12.0', mandatory=False)
- autowaf.check_pkg(conf, 'jack', uselib_store='JACK', atleast_version='0.118.2')
autowaf.check_pkg(conf, 'libxml-2.0', uselib_store='XML')
autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0')
# Library
if bld.is_defined ('INTERNAL_SHARED_LIBS'):
obj = bld.shlib(features = 'cxx cxxshlib', source=libmidi_sources)
+ obj.defines = [ 'LIBMIDIPP_DLL_EXPORTS=1' ]
+ obj.cxxflags = [ '-fvisibility=hidden' ]
+ obj.cflags = [ '-fvisibility=hidden' ]
else:
obj = bld.stlib(features = 'cxx cxxstlib', source=libmidi_sources)
- obj.cxxflags = [ '-fPIC', '-DWITH_JACK_MIDI' ]
- obj.cxxflags = [ '-fPIC' ]
++ obj.cxxflags = [ '-fPIC' ]
+ obj.defines = []
+
# everybody loves JACK
obj.export_includes = ['.']
obj.includes = ['.', '../surfaces/control_protocol', '../ardour' ]
obj.name = 'libmidipp'
obj.target = 'midipp'
- obj.uselib = 'GLIBMM SIGCPP XML JACK OSX'
- obj.use = 'libpbd libevoral timecode'
+ obj.uselib = 'GLIBMM SIGCPP XML OSX'
- obj.use = 'libpbd libevoral libtimecode'
++ obj.use = 'libpbd libevoral libtimecode libtimecode_includes'
obj.vnum = LIBMIDIPP_LIB_VERSION
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
autowaf.configure(conf)
def build(bld):
- # Library
- obj = bld(features = 'cxx cxxshlib')
- obj.source = [ 'src/time.cc', 'src/bbt_time.cc' ]
- obj.export_includes = ['.']
- obj.includes = ['.', './src']
- obj.name = 'libtimecode'
- obj.target = 'timecode'
- obj.vnum = TIMECODE_LIB_VERSION
- obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
+ bld (export_includes = ['.'],
+ includes = ['.'],
- name = 'timecode_includes'
++ name = 'libtimecode_includes'
+ )
+
+ bld.stlib (cxxflags = [ '-fPIC' ],
+ source = [ 'src/time.cc', 'src/bbt_time.cc' ],
- target = 'timecode',
- use = 'timecode_includes'
++ target = 'libtimecode',
++ use = 'libtimecode_includes'
+ )
def shutdown():
autowaf.shutdown()