if (theCurrentPraatApplication -> batch) Melder_throw ("Cannot run experiments from the command line."); autoOrdered experiments = Ordered_create (); Collection_dontOwnItems (experiments.peek()); WHERE (SELECTED) { iam_LOOP (ExperimentMFC); Melder_assert (my classInfo == classExperimentMFC); Collection_addItem (experiments.peek(), me); // reference copy of me } Melder_assert (experiments-> size >= 1); Melder_assert (((Data) experiments -> item [1]) -> classInfo == classExperimentMFC); Melder_assert (((Data) experiments -> item [experiments -> size]) -> classInfo == classExperimentMFC); autoOrdered experimentsCopy = experiments.clone(); // we need a copy, because we do a transfer, then a peek Melder_assert (experimentsCopy -> size == experiments -> size); Melder_assert (experimentsCopy -> item [1] == experiments -> item [1]); Melder_assert (experimentsCopy -> item [experimentsCopy -> size] == experiments -> item [experiments -> size]); autoRunnerMFC runner = RunnerMFC_create (L"listening experiments", experimentsCopy.transfer()); praat_installEditorN (runner.transfer(), experiments.peek()); END DIRECT (ExperimentMFC_extractResults) WHERE (SELECTED) { iam_LOOP (ExperimentMFC); autoResultsMFC thee = ExperimentMFC_extractResults (me); praat_new (thee.transfer(), my name); } END /***** RESULTS_MFC *****/ DIRECT (ResultsMFC_getNumberOfTrials) iam_ONLY (ResultsMFC);
if (theCurrentPraatApplication -> batch) Melder_throw ("Cannot run experiments from the command line."); autoOrdered experiments = Ordered_create (); Collection_dontOwnItems (experiments.peek()); WHERE (SELECTED) { iam_LOOP (ExperimentMFC); Melder_assert (my classInfo == classExperimentMFC); Collection_addItem (experiments.peek(), me); // reference copy of me } Melder_assert (experiments-> size >= 1); Melder_assert (((Data) experiments -> item [1]) -> classInfo == classExperimentMFC); Melder_assert (((Data) experiments -> item [experiments -> size]) -> classInfo == classExperimentMFC); autoOrdered experimentsCopy = experiments.clone(); // we need a copy, because we do a transfer, then a peek Melder_assert (experimentsCopy -> size == experiments -> size); Melder_assert (experimentsCopy -> item [1] == experiments -> item [1]); Melder_assert (experimentsCopy -> item [experimentsCopy -> size] == experiments -> item [experiments -> size]); autoRunnerMFC runner = RunnerMFC_create (theCurrentPraatApplication -> topShell, L"listening experiments", experimentsCopy.transfer()); praat_installEditorN (runner.transfer(), experiments.peek()); END DIRECT (ExperimentMFC_extractResults) WHERE (SELECTED) { iam_LOOP (ExperimentMFC); autoResultsMFC thee = ExperimentMFC_extractResults (me); praat_new (thee.transfer(), my name); } END /***** RESULTS_MFC *****/ DIRECT (ResultsMFC_getNumberOfTrials) iam_ONLY (ResultsMFC);