From 632f5d523169e1d41e6aad2bb7d850efc369bbe5 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sun, 27 Oct 2013 20:32:33 -0400 Subject: [PATCH] add error checking and return from attempted NSM-based initialization --- gtk2_ardour/ardour_ui.cc | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc index 0261266566..5dbdc32961 100644 --- a/gtk2_ardour/ardour_ui.cc +++ b/gtk2_ardour/ardour_ui.cc @@ -742,19 +742,33 @@ ARDOUR_UI::starting () for ( i = 0; i < 5000; ++i) { nsm->check (); usleep (i); - if (nsm->is_active()) + if (nsm->is_active()) { break; + } + } + if (i == 5000) { + error << _("NSM server did not announce itself") << endmsg; + return -1; } // wait for open command from nsm server for ( i = 0; i < 5000; ++i) { nsm->check (); usleep (1000); - if (nsm->client_id ()) + if (nsm->client_id ()) { break; + } + } + + if (i == 5000) { + error << _("NSM: no client ID provided") << endmsg; + return -1; } if (_session && nsm) { _session->set_nsm_state( nsm->is_active() ); + } else { + error << _("NSM: no session created") << endmsg; + return -1; } // nsm requires these actions disabled @@ -773,10 +787,11 @@ ARDOUR_UI::starting () } } - } - else { + } else { delete nsm; nsm = 0; + error << _("NSM: initialization failed") << endmsg; + return -1; } } else {