diff options
author | David Robillard <d@drobilla.net> | 2009-10-24 00:39:28 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2009-10-24 00:39:28 +0000 |
commit | a532e7247cfccaf35edbb9b76868ead3cc9b1342 (patch) | |
tree | 3bd051d42f95dccf78d70ed0d389ab6c98c42ff9 /libs/ardour/ardour/butler.h | |
parent | d56817e7856040adf3db6bda812dfaef7d493c80 (diff) |
Move butler methods from Session to Butler.
Slay the dragon. A lil' bit.
git-svn-id: svn://localhost/ardour2/branches/3.0@5901 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/ardour/butler.h')
-rw-r--r-- | libs/ardour/ardour/butler.h | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/libs/ardour/ardour/butler.h b/libs/ardour/ardour/butler.h index 524651ba28..b88b820736 100644 --- a/libs/ardour/ardour/butler.h +++ b/libs/ardour/ardour/butler.h @@ -25,17 +25,48 @@ namespace ARDOUR { +class Session; + class Butler { public: - Butler(); + Butler(Session* session); ~Butler(); + int start_thread(); + void terminate_thread(); + void schedule_transport_work(); + void summon(); + void stop(); + void wait_until_finished(); + bool transport_work_requested() const; + + float read_data_rate() const; ///< in usec + float write_data_rate() const; + + uint32_t audio_diskstream_buffer_size() const { return audio_dstream_buffer_size; } + uint32_t midi_diskstream_buffer_size() const { return midi_dstream_buffer_size; } + + static void* _thread_work(void *arg); + void* thread_work(); + + struct Request { + enum Type { + Wake, + Run, + Pause, + Quit + }; + }; + + Session* session; pthread_t thread; Glib::Mutex request_lock; Glib::Cond paused; bool should_run; mutable gint should_do_transport_work; int request_pipe[2]; + uint32_t audio_dstream_buffer_size; + uint32_t midi_dstream_buffer_size; }; } // namespace ARDOUR |