return val;
}
-StreamPanner::StreamPanner (Panner& p, ParamID param)
+StreamPanner::StreamPanner (Panner& p, Parameter param)
: parent (p)
, _control (new PanControllable(p.session(), X_("panner"), *this, param))
{
/*---------------------------------------------------------------------- */
-BaseStereoPanner::BaseStereoPanner (Panner& p, ParamID param)
+BaseStereoPanner::BaseStereoPanner (Panner& p, Parameter param)
: StreamPanner (p, param)
{
}
pan = left * gain_coeff;
- mix_buffers_with_gain(dst+n,src+n,nframes-n,pan);
+ mix_buffers_with_gain (dst+n,src+n,nframes-n,pan);
} else {
/*---------------------------------------------------------------------- */
-EqualPowerStereoPanner::EqualPowerStereoPanner (Panner& p, ParamID param)
+EqualPowerStereoPanner::EqualPowerStereoPanner (Panner& p, Parameter param)
: BaseStereoPanner (p, param)
{
update ();
}
StreamPanner*
-EqualPowerStereoPanner::factory (Panner& parent, ParamID param)
+EqualPowerStereoPanner::factory (Panner& parent, Parameter param)
{
return new EqualPowerStereoPanner (parent, param);
}
/*----------------------------------------------------------------------*/
-Multi2dPanner::Multi2dPanner (Panner& p, ParamID param)
+Multi2dPanner::Multi2dPanner (Panner& p, Parameter param)
: StreamPanner (p, param)
{
update ();
}
StreamPanner*
-Multi2dPanner::factory (Panner& p, ParamID param)
+Multi2dPanner::factory (Panner& p, Parameter param)
{
return new Multi2dPanner (p, param);
}
outputs.push_back (Output (1.0, 0));
for (n = 0; n < npans; ++n) {
- push_back (new EqualPowerStereoPanner (*this, ParamID(PanAutomation, n)));
+ push_back (new EqualPowerStereoPanner (*this, Parameter(PanAutomation, n)));
}
break;
outputs.push_back (Output (1.0, 1.0));
for (n = 0; n < npans; ++n) {
- push_back (new Multi2dPanner (*this, ParamID(PanAutomation, n)));
+ push_back (new Multi2dPanner (*this, Parameter(PanAutomation, n)));
}
break;
outputs.push_back (Output (0, 1.0));
for (n = 0; n < npans; ++n) {
- push_back (new Multi2dPanner (*this, ParamID(PanAutomation, n)));
+ push_back (new Multi2dPanner (*this, Parameter(PanAutomation, n)));
}
break;
outputs.push_back (Output (0.5, 0.75));
for (n = 0; n < npans; ++n) {
- push_back (new Multi2dPanner (*this, ParamID(PanAutomation, n)));
+ push_back (new Multi2dPanner (*this, Parameter(PanAutomation, n)));
}
break;
}
for (n = 0; n < npans; ++n) {
- push_back (new Multi2dPanner (*this, ParamID(PanAutomation, n)));
+ push_back (new Multi2dPanner (*this, Parameter(PanAutomation, n)));
}
break;
struct PanPlugins {
string name;
uint32_t nouts;
- StreamPanner* (*factory)(Panner&, ParamID);
+ StreamPanner* (*factory)(Panner&, Parameter);
};
PanPlugins pan_plugins[] = {
assumption, but its still an assumption.
*/
- sp = pan_plugins[i].factory (*this, ParamID(PanAutomation, 0));
+ sp = pan_plugins[i].factory (*this, Parameter(PanAutomation, 0));
if (sp->set_state (**niter) == 0) {
push_back (sp);
/* automation path is relative */
- automation_path = _session.automation_dir();
- automation_path += prop->value ();
+ automation_path = Glib::build_filename(_session.automation_dir(), prop->value ());
}
return 0;
dst.read_from(inbufs.get_audio(0), nframes, offset);
// accumulate starting with the second
- BufferSet::audio_iterator i = inbufs.audio_begin();
- for (++i; i != inbufs.audio_end(); ++i) {
- dst.accumulate_from(*i, nframes, offset);
- }
+ if (inbufs.count().n_audio() > 0) {
+ BufferSet::audio_iterator i = inbufs.audio_begin();
+ for (++i; i != inbufs.audio_end(); ++i) {
+ dst.accumulate_from(*i, nframes, offset);
+ }
+ }
} else {
dst.read_from(inbufs.get_audio(0), nframes, offset);
// accumulate (with gain) starting with the second
- BufferSet::audio_iterator i = inbufs.audio_begin();
- for (++i; i != inbufs.audio_end(); ++i) {
- dst.accumulate_with_gain_from(*i, nframes, offset, gain_coeff);
- }
+ if (inbufs.count().n_audio() > 0) {
+ BufferSet::audio_iterator i = inbufs.audio_begin();
+ for (++i; i != inbufs.audio_end(); ++i) {
+ dst.accumulate_with_gain_from(*i, nframes, offset, gain_coeff);
+ }
+ }
}
void
Panner::set_name (string str)
{
- automation_path = _session.automation_dir();
- automation_path += _session.snap_name();
- automation_path += "-pan-";
- automation_path += legalize_for_path (str);
- automation_path += ".automation";
+ automation_path = Glib::build_filename(_session.automation_dir(),
+ _session.snap_name() + "-pan-" + legalize_for_path (str) + ".automation");
}
int