summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-08-01 18:49:40 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-08-01 18:49:40 -0400
commitdf59a000b79f891f17ec8a05b390982dac67e5ff (patch)
tree79d0fd947618c2bf0192d10865ed477afc6da64b /libs/ardour/ardour
parent682ebad62bdc85df151ad0b81dc27cc9f3e71cec (diff)
start code reorganization needed to deal with backend choices. compiles, links and runs as far as the startup screen now
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r--libs/ardour/ardour/audio_backend.h2
-rw-r--r--libs/ardour/ardour/audioengine.h24
-rw-r--r--libs/ardour/ardour/jack_audiobackend.h1
-rw-r--r--libs/ardour/ardour/jack_portengine.h2
-rw-r--r--libs/ardour/ardour/port_engine.h2
-rw-r--r--libs/ardour/ardour/port_manager.h8
6 files changed, 23 insertions, 16 deletions
diff --git a/libs/ardour/ardour/audio_backend.h b/libs/ardour/ardour/audio_backend.h
index 3b68432b6f..6aee33a507 100644
--- a/libs/ardour/ardour/audio_backend.h
+++ b/libs/ardour/ardour/audio_backend.h
@@ -284,7 +284,7 @@ class AudioBackend {
virtual int set_time_master (bool /*yn*/) { return 0; }
virtual int usecs_per_cycle () const { return 1000000 * (buffer_size() / sample_rate()); }
- virtual size_t raw_buffer_size (DataType t);
+ virtual size_t raw_buffer_size (DataType t) = 0;
/* Process time */
diff --git a/libs/ardour/ardour/audioengine.h b/libs/ardour/ardour/audioengine.h
index 0bbbe90ef4..cf22925565 100644
--- a/libs/ardour/ardour/audioengine.h
+++ b/libs/ardour/ardour/audioengine.h
@@ -67,19 +67,17 @@ class AudioEngine : public SessionHandlePtr, public PortManager
{
public:
- static AudioEngine* create (const std::string& client_name, const std::string& session_uuid);
+ static AudioEngine* create ();
virtual ~AudioEngine ();
int discover_backends();
std::vector<std::string> available_backends() const;
std::string current_backend_name () const;
- int set_backend (const std::string&);
+ int set_backend (const std::string&, const std::string& arg1, const std::string& arg2);
ProcessThread* main_thread() const { return _main_thread; }
- std::string client_name() const { return backend_client_name; }
-
/* START BACKEND PROXY API
*
* See audio_backend.h for full documentation and semantics. These wrappers
@@ -144,7 +142,6 @@ public:
int reset_timebase ();
void update_latencies ();
-
/* this signal is sent for every process() cycle while freewheeling.
(the regular process() call to session->process() is not made)
@@ -154,10 +151,7 @@ public:
PBD::Signal0<void> Xrun;
- /* this signal is if the backend notifies us of a graph order event */
-
- PBD::Signal0<void> GraphReordered;
-
+
#ifdef HAVE_JACK_SESSION
PBD::Signal1<void,jack_session_event_t *> JackSessionEvent;
#endif
@@ -176,6 +170,13 @@ public:
PBD::Signal0<void> Running;
PBD::Signal0<void> Stopped;
+
+ /* these two are emitted as we create backends that
+ can actually be used to do stuff (e.g. register ports)
+ */
+
+ PBD::Signal0<void> BackendAvailable;
+ PBD::Signal0<void> BackendRemoved;
static AudioEngine* instance() { return _instance; }
static void destroy();
@@ -197,7 +198,7 @@ public:
static void thread_init_callback (void *);
private:
- AudioEngine (const std::string& client_name, const std::string& session_uuid);
+ AudioEngine ();
static AudioEngine* _instance;
@@ -227,9 +228,6 @@ public:
Glib::Threads::Thread* m_meter_thread;
ProcessThread* _main_thread;
- std::string backend_client_name;
- std::string backend_session_uuid;
-
void meter_thread ();
void start_metering_thread ();
void stop_metering_thread ();
diff --git a/libs/ardour/ardour/jack_audiobackend.h b/libs/ardour/ardour/jack_audiobackend.h
index 7104b814c2..05638f6c73 100644
--- a/libs/ardour/ardour/jack_audiobackend.h
+++ b/libs/ardour/ardour/jack_audiobackend.h
@@ -144,7 +144,6 @@ class JACKAudioBackend : public AudioBackend {
static void* _start_process_thread (void*);
ChanCount n_physical (unsigned long) const;
- void get_physical (DataType, unsigned long, std::vector<std::string> &);
/* pffooo */
diff --git a/libs/ardour/ardour/jack_portengine.h b/libs/ardour/ardour/jack_portengine.h
index bee87532d3..638d3382ad 100644
--- a/libs/ardour/ardour/jack_portengine.h
+++ b/libs/ardour/ardour/jack_portengine.h
@@ -44,6 +44,8 @@ class JACKPortEngine : public PortEngine
const std::string& my_name() const;
+ uint32_t port_name_size() const;
+
int set_port_name (PortHandle, const std::string&);
std::string get_port_name (PortHandle) const;
PortHandle* get_port_by_name (const std::string&) const;
diff --git a/libs/ardour/ardour/port_engine.h b/libs/ardour/ardour/port_engine.h
index e63c52630d..f03a8e263f 100644
--- a/libs/ardour/ardour/port_engine.h
+++ b/libs/ardour/ardour/port_engine.h
@@ -93,6 +93,8 @@ class PortEngine {
virtual const std::string& my_name() const = 0;
+ virtual uint32_t port_name_size() const = 0;
+
virtual int set_port_name (PortHandle, const std::string&) = 0;
virtual std::string get_port_name (PortHandle) const = 0;
virtual PortHandle* get_port_by_name (const std::string&) const = 0;
diff --git a/libs/ardour/ardour/port_manager.h b/libs/ardour/ardour/port_manager.h
index d88143d110..06e4939101 100644
--- a/libs/ardour/ardour/port_manager.h
+++ b/libs/ardour/ardour/port_manager.h
@@ -47,7 +47,10 @@ class PortManager
void set_port_engine (PortEngine& pe);
PortEngine& port_engine() { return *_impl; }
-
+
+ uint32_t port_name_size() const;
+ std::string my_name() const;
+
/* Port registration */
boost::shared_ptr<Port> register_input_port (DataType, const std::string& portname);
@@ -114,6 +117,9 @@ class PortManager
bool port_remove_in_progress() const { return _port_remove_in_progress; }
+ /** Emitted if the backend notifies us of a graph order event */
+ PBD::Signal0<void> GraphReordered;
+
/** Emitted if a Port is registered or unregistered */
PBD::Signal0<void> PortRegisteredOrUnregistered;