/** * Record a show */ int RecordShow(const options &opts) { if (opts.universes.empty()) { OLA_FATAL << "No universes specified, use -u"; exit(ola::EXIT_USAGE); } vector<string> universe_strs; vector<unsigned int> universes; ola::StringSplit(opts.universes, universe_strs, ","); vector<string>::const_iterator iter = universe_strs.begin(); for (; iter != universe_strs.end(); ++iter) { unsigned int universe; if (!ola::StringToInt(*iter, &universe)) { OLA_FATAL << *iter << " isn't a valid universe number"; exit(ola::EXIT_USAGE); } universes.push_back(universe); } show_recorder.reset(new ShowRecorder(opts.file, universes)); int status = show_recorder->Init(); if (status) return status; cout << "Recording, hit Control-C to end" << endl; InstallSignals(); show_recorder->Record(); cout << "Saved " << show_recorder->FrameCount() << " frames" << endl; return ola::EXIT_OK; }