X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Fardour%2Faudio_unit.h;h=407be7a6dc414d692ee03c7a3e2cb2dbe6b5ef12;hb=21102b45d0d22f2761697b1b9fdfa92aafc25834;hp=b02a0d3b806fa5455c60e63e7f38a9752ec82392;hpb=e9a8ccc7e2826d8fe91eff34ee8a0683a7f7aac6;p=ardour.git diff --git a/libs/ardour/ardour/audio_unit.h b/libs/ardour/ardour/audio_unit.h index b02a0d3b80..407be7a6dc 100644 --- a/libs/ardour/ardour/audio_unit.h +++ b/libs/ardour/ardour/audio_unit.h @@ -70,7 +70,7 @@ class LIBARDOUR_API AUPlugin : public ARDOUR::Plugin const char * maker () const { return _info->creator.c_str(); } uint32_t parameter_count () const; float default_value (uint32_t port); - framecnt_t signal_latency() const; + samplecnt_t signal_latency() const; void set_parameter (uint32_t which, float val); float get_parameter (uint32_t which) const; @@ -84,8 +84,9 @@ class LIBARDOUR_API AUPlugin : public ARDOUR::Plugin int set_block_size (pframes_t nframes); int connect_and_run (BufferSet& bufs, - ChanMapping in, ChanMapping out, - pframes_t nframes, framecnt_t offset); + samplepos_t start, samplepos_t end, double speed, + ChanMapping in, ChanMapping out, + pframes_t nframes, samplecnt_t offset); std::set automatable() const; std::string describe_parameter (Evoral::Parameter); IOPortDescription describe_io_port (DataType dt, bool input, uint32_t id) const; @@ -122,7 +123,7 @@ class LIBARDOUR_API AUPlugin : public ARDOUR::Plugin OSStatus render_callback(AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inBusNumber, - UInt32 inNumberFrames, + UInt32 inNumberSamples, AudioBufferList* ioData); /* "host" callbacks */ @@ -169,10 +170,8 @@ class LIBARDOUR_API AUPlugin : public ARDOUR::Plugin int32_t input_channels; int32_t output_channels; std::vector > io_configs; - pframes_t _current_block_size; - framecnt_t _last_nframes; - framepos_t _transport_frame; - framepos_t _transport_speed; + samplecnt_t _last_nframes; + mutable volatile guint _current_latency; bool _requires_fixed_size_buffers; AudioBufferList* buffers; bool _has_midi_input; @@ -214,11 +213,11 @@ class LIBARDOUR_API AUPlugin : public ARDOUR::Plugin typedef std::map ParameterMap; ParameterMap parameter_map; uint32_t input_maxbuf; - framecnt_t input_offset; - framecnt_t *cb_offsets; + samplecnt_t input_offset; + samplecnt_t *cb_offsets; BufferSet* input_buffers; ChanMapping * input_map; - framecnt_t frames_processed; + samplecnt_t samples_processed; uint32_t audio_input_cnt; std::vector descriptors; @@ -228,9 +227,9 @@ class LIBARDOUR_API AUPlugin : public ARDOUR::Plugin void discover_factory_presets (); - framepos_t transport_frame; + samplepos_t transport_sample; float transport_speed; - floa t last_transport_speed; + float last_transport_speed; static void _parameter_change_listener (void* /*arg*/, void* /*src*/, const AudioUnitEvent* event, UInt64 host_time, Float32 new_value); void parameter_change_listener (void* /*arg*/, void* /*src*/, const AudioUnitEvent* event, UInt64 host_time, Float32 new_value); @@ -252,10 +251,13 @@ class LIBARDOUR_API AUPluginInfo : public PluginInfo { std::vector get_presets (bool user_only) const; bool needs_midi_input () const; - bool is_effect () const; bool is_effect_without_midi_input () const; bool is_effect_with_midi_input () const; + + /* note: AU's have an explicit way to prompt for instrument/fx category */ + bool is_effect () const; bool is_instrument () const; + bool is_utility () const; AUPluginCachedInfo cache;