Remove frame conversion for MidiRegionView::note_in_region_range(), speed up tempo...
[ardour.git] / libs / ardour / ardour / audio_unit.h
index 20bf2c849a6cb59dab15d16fd39bcbade1e48fda..cabc78842e35abee666cfc3e0b5b82256783df95 100644 (file)
@@ -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);
+                       framepos_t start, framepos_t end, double speed,
+                       ChanMapping in, ChanMapping out,
+                       pframes_t nframes, framecnt_t offset);
        std::set<Evoral::Parameter> automatable() const;
        std::string describe_parameter (Evoral::Parameter);
        IOPortDescription describe_io_port (DataType dt, bool input, uint32_t id) const;
@@ -171,6 +172,8 @@ class LIBARDOUR_API AUPlugin : public ARDOUR::Plugin
        std::vector<std::pair<int,int> > io_configs;
        pframes_t _current_block_size;
        framecnt_t _last_nframes;
+       framepos_t _transport_frame;
+       framepos_t _transport_speed;
        bool _requires_fixed_size_buffers;
        AudioBufferList* buffers;
        bool _has_midi_input;
@@ -213,7 +216,7 @@ class LIBARDOUR_API AUPlugin : public ARDOUR::Plugin
        ParameterMap parameter_map;
        uint32_t   input_maxbuf;
        framecnt_t input_offset;
-       framecnt_t cb_offset;
+       framecnt_t *cb_offsets;
        BufferSet* input_buffers;
        ChanMapping * input_map;
        framecnt_t frames_processed;
@@ -226,8 +229,9 @@ class LIBARDOUR_API AUPlugin : public ARDOUR::Plugin
 
        void discover_factory_presets ();
 
-       bool      last_transport_rolling;
-       float     last_transport_speed;
+       framepos_t transport_frame;
+       float      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);
@@ -258,6 +262,7 @@ class LIBARDOUR_API AUPluginInfo : public PluginInfo {
 
        bool reconfigurable_io() const { return true; }
 
+       static void clear_cache ();
        static PluginInfoList* discover (bool scan_only);
        static bool au_get_crashlog (std::string &msg);
        static std::string stringify_descriptor (const CAComponentDescription&);