assert(frames <= buffer_size);
if (ports.size() == 1) {
- data = (*ports.begin())->get_audio_buffer(frames).data();
+ boost::shared_ptr<AudioPort> p = ports.begin()->lock ();
+ data = p->get_audio_buffer(frames).data();
return;
}
-
+
memset (buffer.get(), 0, frames * sizeof (Sample));
for (PortSet::const_iterator it = ports.begin(); it != ports.end(); ++it) {
- if (*it != 0) {
- Sample* port_buffer = (*it)->get_audio_buffer(frames).data();
+ boost::shared_ptr<AudioPort> p = it->lock ();
+ if (p) {
+ Sample* port_buffer = p->get_audio_buffer(frames).data();
for (uint32_t i = 0; i < frames; ++i) {
buffer[i] += (float) port_buffer[i];
{
XMLNode * port_node;
for (PortSet::const_iterator it = ports.begin(); it != ports.end(); ++it) {
- if ((port_node = node->add_child ("Port"))) {
- port_node->add_property ("name", (*it)->name());
+ boost::shared_ptr<Port> p = it->lock ();
+ if (p && (port_node = node->add_child ("Port"))) {
+ port_node->add_property ("name", p->name());
}
}
}
for (XMLNodeList::iterator it = xml_ports.begin(); it != xml_ports.end(); ++it) {
if ((prop = (*it)->property ("name"))) {
std::string const & name = prop->value();
- AudioPort * port = dynamic_cast<AudioPort *> (session.engine().get_port_by_name (name));
+ boost::shared_ptr<AudioPort> port = boost::dynamic_pointer_cast<AudioPort> (session.engine().get_port_by_name (name));
if (port) {
ports.insert (port);
} else {
}
void
-RouteExportChannel::get_state (XMLNode * node) const
+RouteExportChannel::get_state (XMLNode *) const
{
// TODO
}
void
-RouteExportChannel::set_state (XMLNode * node, Session & session)
+RouteExportChannel::set_state (XMLNode *, Session &)
{
// TODO
}