45 class CircularSampleBuffer;
46 class CircularEventBuffer;
72 memset (chn_active, 0,
sizeof (
float) * 17);
75 if (chn < 0 || chn > 16) {
78 return chn_active[chn] > 0.1;
85 bool operator() (std::string
const& a, std::string
const& b)
const {
91 typedef std::list<std::shared_ptr<Port> >
PortList;
144 int connect (
const std::string& source,
const std::string& destination);
145 int disconnect (
const std::string& source,
const std::string& destination);
153 int get_connections (
const std::string&, std::vector<std::string>&,
bool process_context_safe =
true);
199 return _port_deletions_pending;
218 const char*
what ()
const throw ()
220 return reason.c_str ();
235 return _port_remove_in_progress;
274 return _monitor_port;
348 if (input != o.
input) {
351 return (uint32_t) data_type < (uint32_t) o.
data_type;
364 if (input != o.
input) {
PortRegistrationFailure(std::string const &why="")
~PortRegistrationFailure()
const char * what() const
int disconnect(const std::string &source, const std::string &destination)
void request_input_monitoring(const std::string &, bool) const
std::string get_pretty_name_by_name(const std::string &portname) const
static bool port_is_control_only(std::string const &)
std::list< std::shared_ptr< Port > > PortList
PBD::Signal< void()> PortRegisteredOrUnregistered
void connect_callback(const std::string &, const std::string &, bool connection)
void set_port_pretty_name(std::string const &, std::string const &)
void silence_outputs(pframes_t nframes)
static void falloff_cache_calc(pframes_t, samplecnt_t)
PBD::Signal< void(std::string)> PortPrettyNameChanged
AudioInputPorts audio_input_ports() const
std::map< PortID, PortMetaData > PortInfo
static bool port_is_physical_input_monitor_enable(std::string const &)
void cycle_end(pframes_t nframes, Session *s=0)
void run_input_meters(pframes_t, samplecnt_t)
std::string my_name() const
bool connected(const std::string &)
std::shared_ptr< CircularSampleBuffer > AudioPortScope
PBD::Signal< void(DataType, std::vector< std::string >, bool)> PhysInputChanged
int get_connections(const std::string &, std::vector< std::string > &, bool process_context_safe=true)
std::string make_port_name_non_relative(const std::string &name) const
void update_input_ports(bool)
std::shared_ptr< Port > get_port_by_name(const std::string &)
bool port_remove_in_progress() const
void remove_session_ports()
PBD::Signal< void()> MidiPortInfoChanged
static std::string port_info_file()
PBD::RingBuffer< Port * > & port_deletions_pending()
void set_pretty_names(std::vector< std::string > const &, DataType, bool)
std::string get_hardware_port_name_by_name(const std::string &portname) const
std::shared_ptr< AudioBackend > _backend
std::shared_ptr< Port > register_input_port(DataType, const std::string &portname, bool async=false, PortFlags extra_flags=PortFlags(0))
MonitorPort _monitor_port
size_t total_port_count() const
void ensure_input_monitoring(const std::string &, bool) const
void add_midi_port_flags(std::string const &, MidiPortFlags)
PBD::Signal< void(std::weak_ptr< Port >, std::string, std::weak_ptr< Port >, std::string, bool)> PortConnectedOrDisconnected
void get_physical_inputs(DataType type, std::vector< std::string > &, MidiPortFlags include=MidiPortFlags(0), MidiPortFlags exclude=MidiPortFlags(0))
bool _port_remove_in_progress
MidiPortFlags midi_port_metadata(std::string const &)
void list_cycle_ports() const
void fill_midi_port_info_locked()
void cycle_start(pframes_t nframes, Session *s=0)
int disconnect(std::string const &)
void registration_callback()
void filter_midi_ports(std::vector< std::string > &, MidiPortFlags, MidiPortFlags)
std::shared_ptr< Port > register_port(DataType type, const std::string &portname, bool input, bool async=false, PortFlags extra_flags=PortFlags(0))
bool physically_connected(const std::string &)
virtual void add_pending_port_deletion(Port *)=0
ChanCount n_physical_inputs() const
int graph_order_callback()
std::shared_ptr< CircularEventBuffer > MIDIPortMonitor
SerializedRCUManager< MIDIInputPorts > _midi_input_ports
std::map< std::string, AudioInputPort, SortByPortName > AudioInputPorts
SerializedRCUManager< AudioInputPorts > _audio_input_ports
bool check_for_ambiguous_latency(bool log=false) const
PBD::Signal< void()> MidiSelectionPortsChanged
void get_midi_selection_ports(std::vector< std::string > &)
int get_ports(const std::string &port_name_pattern, DataType type, PortFlags flags, std::vector< std::string > &)
bool port_is_mine(const std::string &fullname) const
Glib::Threads::Mutex _port_info_mutex
int get_ports(DataType, PortList &)
void set_port_buffer_sizes(pframes_t)
SerializedRCUManager< Ports > _ports
void get_configurable_midi_ports(std::vector< std::string > &, bool for_input)
MonitorPort & monitor_port()
std::map< std::string, MIDIInputPort, SortByPortName > MIDIInputPorts
std::shared_ptr< Port > register_output_port(DataType, const std::string &portname, bool async=false, PortFlags extra_flags=PortFlags(0))
void clear_pending_port_deletions()
std::string short_port_name_from_port_name(std::string const &full_name) const
PortEngine & port_engine()
MIDIInputPorts midi_input_ports() const
ChanCount n_physical_outputs() const
bool port_is_physical(const std::string &) const
std::shared_ptr< Ports const > _cycle_ports
void remove_midi_port_flags(std::string const &, MidiPortFlags)
std::map< std::string, std::shared_ptr< Port >, SortByPortName > Ports
bool can_request_input_monitoring() const
int disconnect(std::shared_ptr< Port >)
void port_renamed(const std::string &, const std::string &)
static std::string midi_port_info_file()
std::shared_ptr< DPM > AudioPortMeter
uint32_t port_name_size() const
int unregister_port(std::shared_ptr< Port >)
void reset_input_meters()
void cycle_end_fade_out(gain_t, gain_t, pframes_t, Session *s=0)
static bool port_is_virtual_piano(std::string const &)
void get_physical_outputs(DataType type, std::vector< std::string > &, MidiPortFlags include=MidiPortFlags(0), MidiPortFlags exclude=MidiPortFlags(0))
void silence(pframes_t nframes, Session *s=0)
void list_all_ports() const
void reinit(bool with_ratio=false)
std::atomic< int > _reset_meters
std::shared_ptr< MPM > MIDIPortMeter
int connect(const std::string &source, const std::string &destination)
PBD::Signal< void()> GraphReordered
size_t session_port_count() const
void port_registration_failure(const std::string &portname)
std::string make_port_name_relative(const std::string &name) const
PBD::RingBuffer< Port * > _port_deletions_pending
GtkImageIconNameData name
void memset(float *data, const float val, const uint32_t n_samples)
Temporal::samplecnt_t samplecnt_t
bool naturally_less(const char *a, const char *b)
bool operator==(const ProcessorSelection &a, const ProcessorSelection &b)
bool active(int chn) const
PortID(std::shared_ptr< AudioBackend >, DataType, bool, std::string const &)
PortID(XMLNode const &, bool old_midi_format=false)
link region and track false waveform clip level