#include <lrdf.h>
#include <pbd/error.h>
+#include <pbd/id.h>
#include <pbd/strsplit.h>
#include <midi++/port.h>
using namespace ARDOUR;
using namespace std;
+using namespace PBD;
MIDI::Port *default_mmc_port = 0;
MIDI::Port *default_mtc_port = 0;
}
int
-ARDOUR::init (AudioEngine& engine, bool use_vst, bool try_optimization, void (*sighandler)(int,siginfo_t*,void*))
+ARDOUR::init (bool use_vst, bool try_optimization)
{
bool generic_mix_functions = true;
(void) bindtextdomain(PACKAGE, LOCALEDIR);
+ PBD::ID::init ();
+
+ lrdf_init();
+ Library = new AudioLibrary;
+
Config = new Configuration;
if (Config->load_state ()) {
#endif
#ifdef VST_SUPPORT
- if (Config->get_use_vst() && fst_init (sighandler)) {
+ if (Config->get_use_vst() && fst_init ()) {
return -1;
}
#endif
info << "No H/W specific optimizations in use" << endmsg;
}
-
- lrdf_init();
- Library = new AudioLibrary;
/* singleton - first object is "it" */
- new PluginManager (engine);
+ new PluginManager ();
/* singleton - first object is "it" */
new ControlProtocolManager ();
return 0;
}
-ARDOUR::id_t
-ARDOUR::new_id ()
+
+microseconds_t
+ARDOUR::get_microseconds ()
{
- return get_uid();
+ /* XXX need JACK to export its functionality */
+
+ struct timeval now;
+ gettimeofday (&now, 0);
+ return now.tv_sec * 1000000ULL + now.tv_usec;
}
ARDOUR::Change
/* create it if necessary */
- mkdir (path.c_str (), 0755);
+ if (g_mkdir_with_parents (path.c_str (), 0755)) {
+ throw exception ();
+ }
return path;
}
}
ARDOUR::OverlapType
-ARDOUR::coverage (jack_nframes_t sa, jack_nframes_t ea,
- jack_nframes_t sb, jack_nframes_t eb)
+ARDOUR::coverage (nframes_t sa, nframes_t ea,
+ nframes_t sb, nframes_t eb)
{
/* OverlapType returned reflects how the second (B)
range overlaps the first (A).
/* not sure where to put these */
-std::istream& operator>>(std::istream& o, HeaderFormat& hf) {
+template<class T>
+std::istream& int_to_type (std::istream& o, T& hf) {
int val;
o >> val;
- hf = (HeaderFormat) val;
+ hf = (T) val;
return o;
}
-std::istream& operator>>(std::istream& o, SampleFormat& sf) {
- int val;
- o >> val;
- sf = (SampleFormat) val;
- return o;
-}
+std::istream& operator>>(std::istream& o, HeaderFormat& var) { return int_to_type<HeaderFormat> (o, var); }
+std::istream& operator>>(std::istream& o, SampleFormat& var) { return int_to_type<SampleFormat> (o, var); }
+std::istream& operator>>(std::istream& o, AutoConnectOption& var) { return int_to_type<AutoConnectOption> (o, var); }
+std::istream& operator>>(std::istream& o, MonitorModel& var) { return int_to_type<MonitorModel> (o, var); }
+std::istream& operator>>(std::istream& o, EditMode& var) { return int_to_type<EditMode> (o, var); }
+std::istream& operator>>(std::istream& o, SoloModel& var) { return int_to_type<SoloModel> (o, var); }
+std::istream& operator>>(std::istream& o, LayerModel& var) { return int_to_type<LayerModel> (o, var); }
+std::istream& operator>>(std::istream& o, CrossfadeModel& var) { return int_to_type<CrossfadeModel> (o, var); }
+std::istream& operator>>(std::istream& o, SlaveSource& var) { return int_to_type<SlaveSource> (o, var); }
+std::istream& operator>>(std::istream& o, ShuttleBehaviour& var) { return int_to_type<ShuttleBehaviour> (o, var); }
+std::istream& operator>>(std::istream& o, ShuttleUnits& var) { return int_to_type<ShuttleUnits> (o, var); }
+