more progress on speakers/vbap etc. etc (still a work in progress)
[ardour.git] / libs / panners / vbap / vbap.h
index 2b80b032cb7a54b082ae6a06f4cebaf2a824c2ad..937199194f873d95c4a12368774d3c2752b0ffa3 100644 (file)
@@ -37,7 +37,7 @@ class Pannable;
 class VBAPanner : public Panner 
 { 
 public:
-       VBAPanner (boost::shared_ptr<Pannable>, Speakers& s);
+       VBAPanner (boost::shared_ptr<Pannable>, boost::shared_ptr<Speakers>);
        ~VBAPanner ();
 
         void configure_io (ChanCount in, ChanCount /* ignored - we use Speakers */);
@@ -46,13 +46,14 @@ public:
 
         std::set<Evoral::Parameter> what_can_be_automated() const;
 
-       static Panner* factory (boost::shared_ptr<Pannable>, Speakers& s);
+       static Panner* factory (boost::shared_ptr<Pannable>, boost::shared_ptr<Speakers>);
 
        void distribute (BufferSet& ibufs, BufferSet& obufs, gain_t gain_coeff, pframes_t nframes);
 
        void set_azimuth_elevation (double azimuth, double elevation);
 
         std::string describe_parameter (Evoral::Parameter);
+        std::string value_as_string (boost::shared_ptr<AutomationControl>) const;
 
        XMLNode& state (bool full_state);
        XMLNode& get_state ();
@@ -71,7 +72,7 @@ private:
         };
 
         std::vector<Signal*> _signals;
-        VBAPSpeakers&       _speakers;
+        boost::shared_ptr<VBAPSpeakers>  _speakers;
         
        void compute_gains (double g[3], int ls[3], int azi, int ele);
         void update ();