Exemplo n.º 1
0
/**
 * 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;
}