AudioSource (Session&, const XMLNode&);
virtual ~AudioSource ();
- /* one could argue that this should belong to Source, but other data types
- generally do not come with a model of "offset along an audio timeline"
- so its here in AudioSource for now.
- */
-
- virtual nframes_t natural_position() const { return 0; }
-
/* returns the number of items in this `audio_source' */
virtual nframes_t available_peaks (double zoom) const;
bool _peaks_built;
mutable Glib::Mutex _lock;
mutable Glib::Mutex _peaks_ready_lock;
- Glib::ustring peakpath;
- Glib::ustring _captured_for;
+ Glib::ustring peakpath;
+ Glib::ustring _captured_for;
mutable uint32_t _read_data_count; // modified in read()
mutable uint32_t _write_data_count; // modified in write()
*/
#include <cassert>
+#include <glib.h>
#include <ardour/base_audio_port.h>
#include <ardour/audioengine.h>
#include <ardour/data_type.h>
void
BaseAudioPort::set_mixdown_function (void (*func)(const set<Port*>&, AudioBuffer*, nframes_t, nframes_t, bool))
{
- /* caller should (but not must) hold process lock since this is an atomic operation on most platforms
- and even if its not, it doesn't really matter.
- */
-
- _mixdown = func;
+ g_atomic_pointer_set(&_mixdown, func);
}