#include "ardour/buffer_set.h"
#include "ardour/debug.h"
#include "ardour/pannable.h"
#include "ardour/panner.h"
#include "ardour/panner_manager.h"
#include "ardour/panner_shell.h"
#include "ardour/buffer_set.h"
#include "ardour/debug.h"
#include "ardour/pannable.h"
#include "ardour/panner.h"
#include "ardour/panner_manager.h"
#include "ardour/panner_shell.h"
PannerInfo* pi = PannerManager::instance().select_panner (in, out, _user_selected_panner_uri);
if (!pi) {
fatal << _("No panner found: check that panners are being discovered correctly during startup.") << endmsg;
PannerInfo* pi = PannerManager::instance().select_panner (in, out, _user_selected_panner_uri);
if (!pi) {
fatal << _("No panner found: check that panners are being discovered correctly during startup.") << endmsg;
}
DEBUG_TRACE (DEBUG::Panning, string_compose (_("select panner: %1\n"), pi->descriptor.name.c_str()));
}
DEBUG_TRACE (DEBUG::Panning, string_compose (_("select panner: %1\n"), pi->descriptor.name.c_str()));
- node->add_property (X_("bypassed"), _bypassed ? X_("yes") : X_("no"));
- node->add_property (X_("user-panner"), _user_selected_panner_uri);
- node->add_property (X_("linked-to-route"), _panlinked ? X_("yes") : X_("no"));
+ node->set_property (X_("bypassed"), _bypassed);
+ node->set_property (X_("user-panner"), _user_selected_panner_uri);
+ node->set_property (X_("linked-to-route"), _panlinked);
- if ((prop = node.property (X_("linked-to-route"))) != 0) {
- _panlinked = string_is_affirmative (prop->value ());
+ if (node.get_property (X_("linked-to-route"), yn)) {
+ if (!ARDOUR::Profile->get_mixbus()) {
+ _panlinked = yn;
+ }
-
- if ((prop = (*niter)->property (X_("uri")))) {
- PannerInfo* p = PannerManager::instance().get_by_uri(prop->value());
+ if ((*niter)->get_property (X_("uri"), str)) {
+ PannerInfo* p = PannerManager::instance().get_by_uri(str);
if (p) {
_panner.reset (p->descriptor.factory (
_is_send ? _pannable_internal : _pannable_route, _session.get_speakers ()));
if (p) {
_panner.reset (p->descriptor.factory (
_is_send ? _pannable_internal : _pannable_route, _session.get_speakers ()));
list<PannerInfo*>::iterator p;
PannerManager& pm (PannerManager::instance());
for (p = pm.panner_info.begin(); p != pm.panner_info.end(); ++p) {
list<PannerInfo*>::iterator p;
PannerManager& pm (PannerManager::instance());
for (p = pm.panner_info.begin(); p != pm.panner_info.end(); ++p) {
if (p == pm.panner_info.end()) {
error << string_compose (_("Unknown panner plugin \"%1\" found in pan state - ignored"),
if (p == pm.panner_info.end()) {
error << string_compose (_("Unknown panner plugin \"%1\" found in pan state - ignored"),
-PannerShell::run (BufferSet& inbufs, BufferSet& outbufs, framepos_t start_frame, framepos_t end_frame, pframes_t nframes)
+PannerShell::run (BufferSet& inbufs, BufferSet& outbufs, samplepos_t start_sample, samplepos_t end_sample, pframes_t nframes)
{
if (inbufs.count().n_audio() == 0) {
/* Input has no audio buffers (e.g. Aux Send in a MIDI track at a
{
if (inbufs.count().n_audio() == 0) {
/* Input has no audio buffers (e.g. Aux Send in a MIDI track at a
- // Speed quietning
- gain_t gain_coeff = 1.0;
-
- if (fabsf(_session.transport_speed()) > 1.5f && Config->get_quieten_at_speed ()) {
- gain_coeff = speed_quietning;
- }
-
- distribute_no_automation (inbufs, outbufs, nframes, gain_coeff);
+ distribute_no_automation (inbufs, outbufs, nframes, 1.0);
- _panner->distribute_automated (inbufs, outbufs, start_frame, end_frame, nframes, _session.pan_automation_buffer());
+ _panner->distribute_automated (inbufs, outbufs, start_sample, end_sample, nframes, _session.pan_automation_buffer());