-boost::shared_ptr<Processor>
-Processor::clone (boost::shared_ptr<const Processor> other)
-{
- boost::shared_ptr<const Send> send;
- boost::shared_ptr<const PortInsert> port_insert;
- boost::shared_ptr<const PluginInsert> plugin_insert;
-
- if ((send = boost::dynamic_pointer_cast<const Send>(other)) != 0) {
- return boost::shared_ptr<Processor> (new Send (*send));
- } else if ((port_insert = boost::dynamic_pointer_cast<const PortInsert>(other)) != 0) {
- return boost::shared_ptr<Processor> (new PortInsert (*port_insert));
- } else if ((plugin_insert = boost::dynamic_pointer_cast<const PluginInsert>(other)) != 0) {
- return boost::shared_ptr<Processor> (new PluginInsert (*plugin_insert));
- } else {
- fatal << _("programming error: unknown Processor type in Processor::Clone!\n")
- << endmsg;
- /*NOTREACHED*/
- }
- return boost::shared_ptr<Processor>();
-}
-
-void
-Processor::set_sort_key (uint32_t key)
-{
- _sort_key = key;
-}
-
-void
-Processor::set_placement (Placement p)
+Processor::Processor (const Processor& other)
+ : Evoral::ControlSet (other)
+ , SessionObject (other.session(), other.name())
+ , Automatable (other.session())
+ , Latent (other)
+ , _pending_active(other._pending_active)
+ , _active(other._active)
+ , _next_ab_is_active(false)
+ , _configured(false)
+ , _display_to_user (true)
+ , _pre_fader (false)
+ , _ui_pointer (0)
+ , _window_proxy (0)
+ , _pinmgr_proxy (0)
+ , _owner (0)
+ , _input_latency (0)
+ , _output_latency (0)
+ , _capture_offset (0)
+ , _playback_offset (0)
+ , _loop_location (other._loop_location)