@@ -69,11 +69,11 @@ int Loopidity::Main(int argc , char** argv)
6969{
7070 // sanity checks
7171#if INIT_JACK_BEFORE_SCENES
72- if (IsInitialized ) return false ;
72+ if (IsInitialized ) { LoopiditySdl::Alert (LOOPIDITY_REINIT_MSG) ; return EXIT_FAILURE ; }
7373#else // INIT_JACK_BEFORE_SCENES
74- if (IsInitialized () ) return false ;
74+ if (IsInitialized () ) { LoopiditySdl::Alert (LOOPIDITY_REINIT_MSG) ; return EXIT_FAILURE ; }
7575#endif // INIT_JACK_BEFORE_SCENES
76- if (N_SCENES + 2 < N_SCENES) return false ;
76+ if (N_SCENES + 2 < N_SCENES) { LoopiditySdl::Alert (N_SCENES_ERR_MSG ) ; return EXIT_FAILURE ; }
7777
7878 // parse command line arguments
7979 bool shouldMonitorInputs = true ;
@@ -92,7 +92,7 @@ int Loopidity::Main(int argc , char** argv)
9292 // initialize Loopidity (controller), JackIO (controller), and LoopiditySdl (main view)
9393 // and instantiate Scenes (models) and SdlScenes (views)
9494 if (!Init (shouldMonitorInputs , shouldAutoSceneChange , recordBufferSize))
95- return Cleanup (EXIT_FAILURE ) ;
95+ { Cleanup (LOOPIDITY_INIT_FAIL_MSG ) ; return EXIT_FAILURE ; }
9696
9797DEBUG_TRACE_LOOPIDITY_MAIN_MID
9898
@@ -154,7 +154,7 @@ if (guiLongCount == GUI_UPDATE_LOW_PRIORITY_NICE)
154154
155155DEBUG_TRACE_LOOPIDITY_MAIN_OUT
156156
157- return Cleanup (EXIT_SUCCESS) ;
157+ Cleanup () ; return EXIT_SUCCESS ;
158158}
159159
160160
@@ -196,6 +196,13 @@ bool Loopidity::IsInitialized() { return !!Scenes[0] ; }
196196bool Loopidity::Init (bool shouldMonitorInputs , bool shouldAutoSceneChange ,
197197 Uint32 recordBufferSize )
198198{
199+ // sanity checks
200+ #if INIT_JACK_BEFORE_SCENES
201+ if (IsInitialized) { LoopiditySdl::Alert (LOOPIDITY_REINIT_MSG) ; return EXIT_FAILURE ; }
202+ #else // INIT_JACK_BEFORE_SCENES
203+ if (IsInitialized ()) { LoopiditySdl::Alert (LOOPIDITY_REINIT_MSG) ; return EXIT_FAILURE ; }
204+ #endif // INIT_JACK_BEFORE_SCENES
205+
199206 // disable AutoSceneChange if SCENE_CHANGE_ARG given
200207 if (!shouldAutoSceneChange) ToggleAutoSceneChange () ;
201208
@@ -211,9 +218,9 @@ bool Loopidity::Init(bool shouldMonitorInputs , bool shouldAutoSceneChange ,
211218 }
212219
213220# if WAIT_FOR_JACK_INIT
214- // wait for JACK metadata
221+ // wait for JACK metadata via SetMetadata()
215222 while (!IsJackReady && (InitJackTimeout -= 100 ) > 0 ) usleep (100000 ) ;
216- if (!IsJackReady) return false ; // via SetMetadata()
223+ if (!IsJackReady) { LoopiditySdl::Alert (JACK_INIT_FAIL_MSG) ; return false ; }
217224# endif // WAIT_FOR_JACK_INIT
218225#endif // INIT_JACK_BEFORE_SCENES
219226
@@ -252,25 +259,17 @@ bool Loopidity::Init(bool shouldMonitorInputs , bool shouldAutoSceneChange ,
252259 default : break ;
253260 }
254261# if WAIT_FOR_JACK_INIT
255- // wait for JACK metadata
262+ // wait for JACK metadata via SetMetadata()
256263 while (!IsJackReady && (InitJackTimeout -= 100 ) > 0 ) usleep (100000 ) ;
257- if (!IsJackReady) return false ; // via SetMetadata()
264+ if (!IsJackReady) { LoopiditySdl::Alert (JACK_INIT_FAIL_MSG) ; return false ; }
258265# endif // WAIT_FOR_JACK_INIT
259266#endif // INIT_JACK_BEFORE_SCENES
260267
261268 // initialize LoopiditySdl (view)
262269#if INIT_JACK_BEFORE_SCENES
263- IsInitialized = LoopiditySdl::Init (SdlScenes , peaksIn , peaksOut , peaksVuIn , peaksVuOut) ;
264-
265- if (!IsInitialized) Cleanup (EXIT_FAILURE) ;
266-
267- return IsInitialized ;
270+ return (IsInitialized = LoopiditySdl::Init (SdlScenes , peaksIn , peaksOut , peaksVuIn , peaksVuOut)) ;
268271#else // INIT_JACK_BEFORE_SCENES
269- bool is_initialized = LoopiditySdl::Init (SdlScenes , peaksIn , peaksOut , peaksVuIn , peaksVuOut) ;
270-
271- if (!is_initialized) Cleanup (EXIT_FAILURE) ;
272-
273- return is_initialized ;
272+ return LoopiditySdl::Init (SdlScenes , peaksIn , peaksOut , peaksVuIn , peaksVuOut) ;
274273#endif // INIT_JACK_BEFORE_SCENES
275274}
276275
@@ -306,15 +305,15 @@ void Loopidity::SetMetadata(Uint32 sampleRate , Uint32 nFramesPerPeriod)
306305# endif // #if SCENE_NFRAMES_EDITABLE
307306#endif // #if INIT_JACK_BEFORE_SCENES
308307
309- int Loopidity::Cleanup (int exit_status )
308+ void Loopidity::Cleanup (std::string status_msg )
310309{
311- DEBUG_TRACE_LOOPIDITY_CLEANUP
310+ DEBUG_TRACE_LOOPIDITY_CLEANUP
311+
312+ if (!status_msg.empty ()) LoopiditySdl::Alert (status_msg) ;
312313
313314 for (Uint32 sceneN = 0 ; sceneN < N_SCENES ; ++sceneN)
314315 if (!!SdlScenes[sceneN]) SdlScenes[sceneN]->cleanup () ;
315316 LoopiditySdl::Cleanup () ;
316-
317- return exit_status ;
318317}
319318
320319
@@ -497,11 +496,11 @@ DEBUG_TRACE_LOOPIDITY_RESETSCENE_IN
497496 Scenes[sceneN]->reset () ; SdlScenes[sceneN]->reset () ; UpdateView (sceneN) ;
498497
499498 bool doesAnyPulseExist = false ;
500- for (sceneN = 0 ; sceneN < N_SCENES ; ++sceneN )
499+ for (int scene_n = 0 ; scene_n < N_SCENES ; ++scene_n )
501500{
502- doesAnyPulseExist |= Scenes[sceneN ]->getDoesPulseExist () ;
501+ doesAnyPulseExist |= Scenes[scene_n ]->getDoesPulseExist () ;
503502// TODO: extract this into doesAnyPulseExist()
504- // DBG("Loopidity::ResetScene() Scenes[%d]->getDoesPulseExist()=%d doesAnyPulseExist=%d\n" , sceneN , Scenes[sceneN ]->getDoesPulseExist() , doesAnyPulseExist) ;
503+ // DBG("Loopidity::ResetScene() Scenes[%d]->getDoesPulseExist()=%d doesAnyPulseExist=%d\n" , scene_n , Scenes[scene_n ]->getDoesPulseExist() , doesAnyPulseExist) ;
505504}
506505 IsRolling = doesAnyPulseExist ;
507506
0 commit comments