13
0

check for _port_handle == null throughout Port:: methods

This commit is contained in:
Paul Davis 2014-09-06 12:36:57 -04:00
parent 4a1b6b2e78
commit a686374b9d

View File

@ -97,19 +97,25 @@ Port::drop ()
bool bool
Port::connected () const Port::connected () const
{ {
return (port_engine.connected (_port_handle) != 0); if (_port_handle) {
return (port_engine.connected (_port_handle) != 0);
}
return false;
} }
int int
Port::disconnect_all () Port::disconnect_all ()
{ {
port_engine.disconnect_all (_port_handle); if (_port_handle) {
_connections.clear ();
port_engine.disconnect_all (_port_handle);
/* a cheaper, less hacky way to do boost::shared_from_this() ... _connections.clear ();
*/
boost::shared_ptr<Port> pself = port_manager->get_port_by_name (name()); /* a cheaper, less hacky way to do boost::shared_from_this() ...
PostDisconnect (pself, boost::shared_ptr<Port>()); // emit signal */
boost::shared_ptr<Port> pself = port_manager->get_port_by_name (name());
PostDisconnect (pself, boost::shared_ptr<Port>()); // emit signal
}
return 0; return 0;
} }
@ -120,6 +126,10 @@ Port::disconnect_all ()
bool bool
Port::connected_to (std::string const & o) const Port::connected_to (std::string const & o) const
{ {
if (!_port_handle) {
return false;
}
if (!port_engine.available()) { if (!port_engine.available()) {
return false; return false;
} }
@ -221,20 +231,26 @@ Port::disconnect (Port* o)
void void
Port::request_input_monitoring (bool yn) Port::request_input_monitoring (bool yn)
{ {
port_engine.request_input_monitoring (_port_handle, yn); if (_port_handle) {
port_engine.request_input_monitoring (_port_handle, yn);
}
} }
void void
Port::ensure_input_monitoring (bool yn) Port::ensure_input_monitoring (bool yn)
{ {
port_engine.ensure_input_monitoring (_port_handle, yn); if (_port_handle) {
port_engine.ensure_input_monitoring (_port_handle, yn);
}
} }
bool bool
Port::monitoring_input () const Port::monitoring_input () const
{ {
if (_port_handle) {
return port_engine.monitoring_input (_port_handle); return port_engine.monitoring_input (_port_handle);
}
return false;
} }
void void
@ -268,7 +284,9 @@ Port::set_public_latency_range (LatencyRange& range, bool playback) const
name(), range.min, range.max, name(), range.min, range.max,
(playback ? "PLAYBACK" : "CAPTURE")));; (playback ? "PLAYBACK" : "CAPTURE")));;
port_engine.set_latency_range (_port_handle, playback, range); if (_port_handle) {
port_engine.set_latency_range (_port_handle, playback, range);
}
} }
void void
@ -320,12 +338,16 @@ Port::public_latency_range (bool /*playback*/) const
{ {
LatencyRange r; LatencyRange r;
r = port_engine.get_latency_range (_port_handle, sends_output() ? true : false);
DEBUG_TRACE (DEBUG::Latency, string_compose ( if (_port_handle) {
"GET PORT %1: %4 PUBLIC latency range %2 .. %3\n", r = port_engine.get_latency_range (_port_handle, sends_output() ? true : false);
name(), r.min, r.max,
sends_output() ? "PLAYBACK" : "CAPTURE")); DEBUG_TRACE (DEBUG::Latency, string_compose (
"GET PORT %1: %4 PUBLIC latency range %2 .. %3\n",
name(), r.min, r.max,
sends_output() ? "PLAYBACK" : "CAPTURE"));
}
return r; return r;
} }
@ -435,7 +457,7 @@ Port::reconnect ()
int int
Port::set_name (std::string const & n) Port::set_name (std::string const & n)
{ {
if (n == _name) { if (n == _name || !_port_handle) {
return 0; return 0;
} }
@ -453,6 +475,10 @@ Port::set_name (std::string const & n)
bool bool
Port::physically_connected () const Port::physically_connected () const
{ {
if (!_port_handle) {
return false;
}
return port_engine.physically_connected (_port_handle); return port_engine.physically_connected (_port_handle);
} }