+ .beginWSPtrClass <Port> ("Port")
+ .addCast<MidiPort> ("to_midiport")
+ .addCast<AudioPort> ("to_audioport")
+ .addFunction ("name", &Port::name)
+ .addFunction ("pretty_name", &Port::pretty_name)
+ .addFunction ("receives_input", &Port::receives_input)
+ .addFunction ("sends_output", &Port::sends_output)
+ .addFunction ("connected", &Port::connected)
+ .addFunction ("disconnect_all", &Port::disconnect_all)
+ .addFunction ("connected_to_name", (bool (Port::*)(std::string const &)const)&Port::connected_to)
+ .addFunction ("connect_by_name", (int (Port::*)(std::string const &))&Port::connect)
+ .addFunction ("disconnect_by_name", (int (Port::*)(std::string const &))&Port::disconnect)
+ .addFunction ("connected_to", (bool (Port::*)(Port*)const)&Port::connected_to)
+ .addFunction ("connect", (int (Port::*)(Port*))&Port::connect)
+ .addFunction ("disconnect", (int (Port::*)(Port*))&Port::disconnect)
+ //.addStaticFunction ("port_offset", &Port::port_offset) // static
+ .endClass ()
+
+ .deriveWSPtrClass <AudioPort, Port> ("AudioPort")
+ .endClass ()
+
+ .deriveWSPtrClass <MidiPort, Port> ("MidiPort")
+ .addFunction ("input_active", &MidiPort::input_active)
+ .addFunction ("set_input_active", &MidiPort::set_input_active)
+ .addFunction ("get_midi_buffer", &MidiPort::get_midi_buffer) // DSP only
+ .endClass ()
+
+ .beginWSPtrClass <PortSet> ("PortSet")
+ .addFunction ("num_ports", (size_t (PortSet::*)(DataType)const)&PortSet::num_ports)
+ .addFunction ("add", &PortSet::add)
+ .addFunction ("remove", &PortSet::remove)
+ .addFunction ("port", (boost::shared_ptr<Port> (PortSet::*)(DataType, size_t)const)&PortSet::port)
+ .addFunction ("contains", &PortSet::contains)
+ .addFunction ("clear", &PortSet::clear)
+ .addFunction ("empty", &PortSet::empty)
+ .endClass ()
+
+ .deriveWSPtrClass <IO, SessionObject> ("IO")
+ .addFunction ("active", &IO::active)
+ .addFunction ("add_port", &IO::add_port)
+ .addFunction ("remove_port", &IO::remove_port)
+ .addFunction ("connect", &IO::connect)
+ .addFunction ("disconnect", (int (IO::*)(boost::shared_ptr<Port>, std::string, void *))&IO::disconnect)
+ .addFunction ("physically_connected", &IO::physically_connected)
+ .addFunction ("has_port", &IO::has_port)
+ .addFunction ("nth", &IO::nth)
+ .addFunction ("audio", &IO::audio)
+ .addFunction ("midi", &IO::midi)
+ .addFunction ("port_by_name", &IO::nth)
+ .addFunction ("n_ports", &IO::n_ports)
+ .endClass ()
+
+ .beginClass <RouteGroup> ("RouteGroup")
+ // stub RouteGroup* is needed for new_audio_track()
+ .endClass ()
+
+ .deriveClass <PresentationInfo, PBD::Stateful> ("PresentationInfo")
+ .addFunction ("color", &PresentationInfo::color)
+ .addFunction ("set_color", &PresentationInfo::set_color)
+ .addFunction ("order", &PresentationInfo::order)
+ .endClass ()
+
+ .deriveWSPtrClass <Stripable, SessionObject> ("Stripable")
+ .addCast<Route> ("to_route")
+ .addFunction ("is_auditioner", &Stripable::is_auditioner)
+ .addFunction ("is_master", &Stripable::is_master)
+ .addFunction ("is_monitor", &Stripable::is_monitor)
+ .addFunction ("is_hidden", &Stripable::is_hidden)
+ .addFunction ("is_selected", &Stripable::is_selected)
+ .addFunction ("gain_control", &Stripable::gain_control)
+ .addFunction ("solo_control", &Stripable::solo_control)
+ .addFunction ("solo_isolate_control", &Stripable::solo_isolate_control)
+ .addFunction ("solo_safe_control", &Stripable::solo_safe_control)
+ .addFunction ("mute_control", &Stripable::mute_control)
+ .addFunction ("phase_control", &Stripable::phase_control)
+ .addFunction ("trim_control", &Stripable::trim_control)
+ .addFunction ("rec_enable_control", &Stripable::rec_enable_control)
+ .addFunction ("rec_safe_control", &Stripable::rec_safe_control)
+ .addFunction ("pan_azimuth_control", &Stripable::pan_azimuth_control)
+ .addFunction ("pan_elevation_control", &Stripable::pan_elevation_control)
+ .addFunction ("pan_width_control", &Stripable::pan_width_control)
+ .addFunction ("pan_frontback_control", &Stripable::pan_frontback_control)
+ .addFunction ("pan_lfe_control", &Stripable::pan_lfe_control)
+ .addFunction ("send_level_control", &Stripable::send_level_controllable)
+ .addFunction ("send_enable_control", &Stripable::send_level_controllable)
+ .addFunction ("send_name", &Stripable::send_name)
+ .addFunction ("monitor_control", &Stripable::monitor_control)
+ .addFunction ("master_send_enable_control ", &Stripable::master_send_enable_controllable )
+ .addFunction ("comp_enable_control ", &Stripable::comp_enable_controllable )
+ .addFunction ("comp_threshold_control ", &Stripable::comp_threshold_controllable )
+ .addFunction ("comp_speed_control ", &Stripable::comp_speed_controllable )
+ .addFunction ("comp_mode_control ", &Stripable::comp_mode_controllable )
+ .addFunction ("comp_makeup_control ", &Stripable::comp_makeup_controllable )
+ .addFunction ("comp_redux_control ", &Stripable::comp_redux_controllable )
+ .addFunction ("comp_mode_name", &Stripable::comp_mode_name)
+ .addFunction ("comp_speed_name", &Stripable::comp_speed_name)
+ .addFunction ("eq_band_cnt ", &Stripable::eq_band_cnt)
+ .addFunction ("eq_band_name", &Stripable::eq_band_name)
+ .addFunction ("eq_gain_control", &Stripable::eq_gain_controllable)
+ .addFunction ("eq_freq_control ", &Stripable::eq_freq_controllable )
+ .addFunction ("eq_q_control ", &Stripable::eq_q_controllable )
+ .addFunction ("eq_shape_control ", &Stripable::eq_shape_controllable )
+ .addFunction ("eq_enable_control ", &Stripable::eq_enable_controllable )
+ .addFunction ("eq_hpf_control ", &Stripable::eq_hpf_controllable )
+ .addFunction ("set_presentation_order", &Stripable::set_presentation_order)
+ .addFunction ("presentation_info_ptr", &Stripable::presentation_info_ptr)
+
+ .endClass ()
+
+ .deriveWSPtrClass <Route, Stripable> ("Route")
+ .addCast<Track> ("to_track")