From edc7a146f5f3c9facd97b3e8951e1607b5e9ec31 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Tue, 13 Jun 2006 02:43:40 +0000 Subject: [PATCH] Merged with trunk git-svn-id: svn://localhost/ardour2/branches/midi@580 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/SConscript | 6 +++++- libs/ardour/ardour/audioengine.h | 8 +++---- libs/ardour/ardour/auditioner.h | 4 ++-- libs/ardour/ardour/diskstream.h | 2 +- libs/ardour/ardour/playlist.h | 6 +++--- libs/ardour/ardour/session.h | 36 +++++++++++++++++++++++--------- libs/pbd3/pbd/ringbuffer.h | 4 ++-- libs/pbd3/pbd/ringbufferNPT.h | 4 ++-- 8 files changed, 45 insertions(+), 25 deletions(-) diff --git a/libs/ardour/SConscript b/libs/ardour/SConscript index a9d5daab1d..4f3fff3945 100644 --- a/libs/ardour/SConscript +++ b/libs/ardour/SConscript @@ -176,10 +176,13 @@ if conf.CheckCHeader('/System/Library/Frameworks/CoreMIDI.framework/Headers/Core if conf.CheckCHeader('/System/Library/Frameworks/AudioToolbox.framework/Headers/ExtendedAudioFile.h'): ardour.Append(CXXFLAGS="-DHAVE_COREAUDIO") ardour.Append(LINKFLAGS="-framework AudioToolbox") - # + + +if env['CONFIG_ARCH'] == 'apple': # this next line avoids issues with circular dependencies between libardour and libardour_cp. # it is based on the (entirely reasonable) assumption that a system with CoreAudio is OS X # + print 'APPLE CONFIG' ardour.Append(LINKFLAGS='-undefined suppress -flat_namespace') extra_sources += coreaudio_files @@ -189,6 +192,7 @@ ardour.Merge ([ libraries['core'], libraries['xml'], libraries['sndfile'], + libraries['raptor'], libraries['lrdf'], libraries['samplerate'], libraries['sigc2'], diff --git a/libs/ardour/ardour/audioengine.h b/libs/ardour/ardour/audioengine.h index 36dbbd1dbe..788ac679dd 100644 --- a/libs/ardour/ardour/audioengine.h +++ b/libs/ardour/ardour/audioengine.h @@ -237,10 +237,10 @@ class AudioEngine : public sigc::trackable int connect_to_jack (std::string client_name); - static void* _meter_thread (void* arg); - void* meter_thread (); - pthread_t meter_thread_id; - void maybe_start_metering_thread (); + void meter_thread (); + void start_metering_thread (); + Glib::Thread* m_meter_thread; + mutable gint m_meter_exit; }; }; /* namespace ARDOUR */ diff --git a/libs/ardour/ardour/auditioner.h b/libs/ardour/ardour/auditioner.h index b79620eaa2..a21ba94ac6 100644 --- a/libs/ardour/ardour/auditioner.h +++ b/libs/ardour/ardour/auditioner.h @@ -58,8 +58,8 @@ class Auditioner : public AudioTrack private: AudioRegion *the_region; jack_nframes_t current_frame; - atomic_t _active; - PBD::Lock lock; + mutable gint _active; + Glib::Mutex lock; jack_nframes_t length; void drop_ports (); diff --git a/libs/ardour/ardour/diskstream.h b/libs/ardour/ardour/diskstream.h index 8838177f14..9d2d336b02 100644 --- a/libs/ardour/ardour/diskstream.h +++ b/libs/ardour/ardour/diskstream.h @@ -320,7 +320,7 @@ class DiskStream : public Stateful, public sigc::trackable uint32_t _n_channels; id_t _id; - atomic_t _record_enabled; + mutable gint _record_enabled; AudioPlaylist* _playlist; double _visible_speed; double _actual_speed; diff --git a/libs/ardour/ardour/playlist.h b/libs/ardour/ardour/playlist.h index c6cb65efc5..78e3353084 100644 --- a/libs/ardour/ardour/playlist.h +++ b/libs/ardour/ardour/playlist.h @@ -169,9 +169,9 @@ class Playlist : public Stateful, public StateManager { RegionList regions; string _name; Session& _session; - atomic_t block_notifications; - atomic_t ignore_state_changes; - mutable PBD::NonBlockingLock region_lock; + mutable gint block_notifications; + mutable gint ignore_state_changes; + mutable Glib::Mutex region_lock; RegionList pending_removals; RegionList pending_adds; RegionList pending_bounds; diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h index 189cf77ac9..923a5101fb 100644 --- a/libs/ardour/ardour/session.h +++ b/libs/ardour/ardour/session.h @@ -993,12 +993,12 @@ class Session : public sigc::trackable, public Stateful typedef void (Session::*process_function_type)(jack_nframes_t); AudioEngine &_engine; - atomic_t processing_prohibited; + mutable gint processing_prohibited; process_function_type process_function; process_function_type last_process_function; jack_nframes_t _current_frame_rate; int transport_sub_state; - atomic_t _record_status; + mutable gint _record_status; jack_nframes_t _transport_frame; Location* end_location; Location* start_location; @@ -1155,14 +1155,14 @@ class Session : public sigc::trackable, public Stateful bool pending_abort; bool pending_auto_loop; - Sample* butler_mixdown_buffer; - float* butler_gain_buffer; - pthread_t butler_thread; - PBD::NonBlockingLock butler_request_lock; - pthread_cond_t butler_paused; - bool butler_should_run; - atomic_t butler_should_do_transport_work; - int butler_request_pipe[2]; + Sample* butler_mixdown_buffer; + float* butler_gain_buffer; + pthread_t butler_thread; + Glib::Mutex butler_request_lock; + Glib::Cond butler_paused; + bool butler_should_run; + mutable gint butler_should_do_transport_work; + int butler_request_pipe[2]; struct ButlerRequest { enum Type { @@ -1402,12 +1402,21 @@ class Session : public sigc::trackable, public Stateful static MultiAllocSingleReleasePool pool; }; +<<<<<<< .working //PBD::Lock midi_lock; //pthread_t midi_thread; //int midi_request_pipe[2]; atomic_t butler_active; //RingBuffer midi_requests; /* +======= + Glib::Mutex midi_lock; + pthread_t midi_thread; + int midi_request_pipe[2]; + mutable gint butler_active; + RingBuffer midi_requests; + +>>>>>>> .merge-right.r579 int start_midi_thread (); void terminate_midi_thread (); void poke_midi_thread (); @@ -1603,10 +1612,17 @@ class Session : public sigc::trackable, public Stateful int ensure_sound_dir (string, string&); void refresh_disk_space (); +<<<<<<< .working atomic_t _playback_load; atomic_t _capture_load; atomic_t _playback_load_min; atomic_t _capture_load_min; +======= + mutable gint _playback_load; + mutable gint _capture_load; + mutable gint _playback_load_min; + mutable gint _capture_load_min; +>>>>>>> .merge-right.r579 /* I/O Connections */ diff --git a/libs/pbd3/pbd/ringbuffer.h b/libs/pbd3/pbd/ringbuffer.h index cca9cbfc01..d276d19086 100644 --- a/libs/pbd3/pbd/ringbuffer.h +++ b/libs/pbd3/pbd/ringbuffer.h @@ -116,8 +116,8 @@ class RingBuffer protected: T *buf; size_t size; - atomic_t write_ptr; - atomic_t read_ptr; + mutable gint write_ptr; + mutable gint read_ptr; size_t size_mask; }; diff --git a/libs/pbd3/pbd/ringbufferNPT.h b/libs/pbd3/pbd/ringbufferNPT.h index 2ff469dc12..ccfcae42a5 100644 --- a/libs/pbd3/pbd/ringbufferNPT.h +++ b/libs/pbd3/pbd/ringbufferNPT.h @@ -113,8 +113,8 @@ class RingBufferNPT protected: T *buf; size_t size; - atomic_t write_ptr; - atomic_t read_ptr; + mutable gint write_ptr; + mutable gint read_ptr; }; template size_t