ChanCount in() const;
ChanCount out() const;
+ void set_position (double);
+ void set_width (double);
+
std::set<Evoral::Parameter> what_can_be_automated() const;
static Panner* factory (boost::shared_ptr<Pannable>, boost::shared_ptr<Speakers>);
private:
struct Signal {
PBD::AngularVector direction;
- double gains[3];
- double desired_gains[3];
- int outputs[3];
- int desired_outputs[3];
+ std::vector<double> gains; /* most recently used gain for all speakers */
+
+ int outputs[3]; /* most recent set of outputs used (2 or 3, depending on dimension) */
+ int desired_outputs[3]; /* outputs to use the next time we distribute */
+ double desired_gains[3]; /* target gains for desired_outputs */
- Signal (Session&, VBAPanner&, uint32_t which);
+ Signal (Session&, VBAPanner&, uint32_t which, uint32_t n_speakers);
+ void resize_gains (uint32_t n_speakers);
};
std::vector<Signal*> _signals;