From aae7b39a41cb010c373d167991cb6f3a3ff01724 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 22 Jul 2011 19:59:10 +0000 Subject: fix botched argument prototype and return signature for IO::ensure_(input|output) and cousins git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@9913 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/ardour/io.h | 4 ++-- libs/ardour/io.cc | 36 +++++++++++++++++++++++------------- 2 files changed, 25 insertions(+), 15 deletions(-) diff --git a/libs/ardour/ardour/io.h b/libs/ardour/ardour/io.h index 7c0c0e1e78..8f74abc00c 100644 --- a/libs/ardour/ardour/io.h +++ b/libs/ardour/ardour/io.h @@ -411,8 +411,8 @@ class IO : public PBD::StatefulDestructible void setup_peak_meters (); void meter (); - bool ensure_inputs_locked (uint32_t, bool clear, void *src); - bool ensure_outputs_locked (uint32_t, bool clear, void *src); + int ensure_inputs_locked (uint32_t, bool clear, void *src, bool& changed); + int ensure_outputs_locked (uint32_t, bool clear, void *src, bool& changed); std::string build_legal_port_name (bool for_input); int32_t find_input_port_hole (const char* base); diff --git a/libs/ardour/io.cc b/libs/ardour/io.cc index be03df7926..c90e9017e1 100644 --- a/libs/ardour/io.cc +++ b/libs/ardour/io.cc @@ -1063,13 +1063,14 @@ IO::disconnect_outputs (void* src) return 0; } -bool -IO::ensure_inputs_locked (uint32_t n, bool clear, void* src) +int +IO::ensure_inputs_locked (uint32_t n, bool clear, void* src, bool& changed) { Port* input_port; - bool changed = false; bool reduced = false; + changed = false; + /* remove unused ports */ while (_ninputs > n) { @@ -1125,7 +1126,7 @@ IO::ensure_inputs_locked (uint32_t n, bool clear, void* src) } } - return changed; + return 0; } int @@ -1286,9 +1287,13 @@ IO::ensure_inputs (uint32_t n, bool clear, bool lockit, void* src) if (lockit) { BLOCK_PROCESS_CALLBACK (); Glib::Mutex::Lock im (io_lock); - changed = ensure_inputs_locked (n, clear, src); + if (ensure_inputs_locked (n, clear, src, changed)) { + return -1; + } } else { - changed = ensure_inputs_locked (n, clear, src); + if (ensure_inputs_locked (n, clear, src, changed)) { + return -1; + } } if (changed) { @@ -1299,14 +1304,15 @@ IO::ensure_inputs (uint32_t n, bool clear, bool lockit, void* src) return 0; } -bool -IO::ensure_outputs_locked (uint32_t n, bool clear, void* src) +int +IO::ensure_outputs_locked (uint32_t n, bool clear, void* src, bool& changed) { Port* output_port; - bool changed = false; bool reduced = false; bool need_pan_reset; + changed = false; + if (_noutputs == n) { need_pan_reset = false; } else { @@ -1362,7 +1368,7 @@ IO::ensure_outputs_locked (uint32_t n, bool clear, void* src) } } - return changed; + return 0; } int @@ -1373,7 +1379,7 @@ IO::ensure_outputs (uint32_t n, bool clear, bool lockit, void* src) if (_output_maximum >= 0) { n = min (_output_maximum, (int) n); if (n == _noutputs && !clear) { - return 0; + return -1; } } @@ -1382,9 +1388,13 @@ IO::ensure_outputs (uint32_t n, bool clear, bool lockit, void* src) if (lockit) { BLOCK_PROCESS_CALLBACK (); Glib::Mutex::Lock im (io_lock); - changed = ensure_outputs_locked (n, clear, src); + if (ensure_outputs_locked (n, clear, src, changed)) { + return -1; + } } else { - changed = ensure_outputs_locked (n, clear, src); + if (ensure_outputs_locked (n, clear, src, changed)) { + return -1; + } } if (changed) { -- cgit v1.2.3