コード例 #1
0
void ProgramDataMenu::run() {
    int8_t index;
    do {
        index = runSimple();

        if(index < 0) return;
        switch(index) {
        case 5:
            createName();
            break;
        case 6:
            editName();
            break;
        default:
            ProgramData undo(p_);
            if(!runEdit(index)) {
                p_ = undo;
            } else {
                Buzzer::soundSelect();
                p_.check();
            }
            break;
        }
    } while(true);
}
コード例 #2
0
ファイル: BaseCommand.cpp プロジェクト: Nanonid/hootenanny
int BaseCommand::run(char* argv[], int argc)
{
  QStringList args = toQStringList(argv, argc);

  args = args.mid(2);

  Settings::parseCommonArguments(args);

  return runSimple(args);
}
コード例 #3
0
bool SettingsMenu::run() {
    int8_t index;
    do {
        index = runSimple();

        if(index < 0) return false;
        switch(index) {
        case sizeOfArray(SettingsStaticMenu) - 2:  //reset
            p_.setDefault();
            buzzer.soundSelect();
            break;
        case sizeOfArray(SettingsStaticMenu) - 1:  //save
            return true;
        default:
            Settings undo(p_);
            if(!runEdit(index))
                p_ = undo;
            p_.check();
            p_.apply();
            break;
        }
    } while(true);
}
コード例 #4
0
void SettingsMenu::run() {
    int8_t index;
    do {
        index = runSimple();

        if(index < 0) return;
        switch(index) {
        case sizeOfArray(SettingsStaticMenu) - 1:  //reset
            p_.setDefault();
            Buzzer::soundSelect();
            break;
        default:
            Settings undo(p_);
            if(!runEdit(index)) {
                p_ = undo;
            } else {
                Buzzer::soundSelect();
                p_.check();
            }
            p_.apply();
            break;
        }
    } while(true);
}
コード例 #5
0
ファイル: BaseCommand.cpp プロジェクト: BSteine/hootenanny
int BaseCommand::run(char* argv[], int argc)
{
  QStringList args = toQStringList(argv, argc);

  args = args.mid(2);

  bool foundOne = true;

  while (args.size() > 0 && foundOne)
  {
    if (args[0] == "--conf" || args[0] == "-C")
    {
      if (args.size() < 2)
      {
        throw HootException("--conf must be followed by a file name.");
      }
      conf().loadJson(args[1]);
      // move on to the next argument.
      args = args.mid(2);
    }
    else if (args[0] == "--debug")
    {
      Log::getInstance().setLevel(Log::Debug);
      args = args.mid(1);
    }
    else if (args[0] == "--info")
    {
      Log::getInstance().setLevel(Log::Info);
      args = args.mid(1);
    }
    else if (args[0] == "--warn")
    {
      Log::getInstance().setLevel(Log::Warn);
      args = args.mid(1);
    }
    else if (args[0] == "--error")
    {
      Log::getInstance().setLevel(Log::Error);
      args = args.mid(1);
    }
    else if (args[0] == "--define" || args[0] == "-D")
    {
      if (args.size() < 2)
      {
        throw HootException("--define or -D must be followed by key=value.");
      }
      QString kv = args[1];
      QStringList kvl = kv.split("+=");
      bool append = true;
      if (kvl.size() != 2)
      {
        // split on the first '='
        int sep = kv.indexOf('=');
        kvl.clear();
        if (sep != -1)
        {
          kvl << kv.mid(0, sep);
          kvl << kv.mid(sep + 1);
        }
        append = false;
      }
      if (kvl.size() != 2)
      {
        throw HootException("define must takes the form key=value.");
      }
      if (append)
      {
        QStringList values = kvl[1].split(";", QString::SkipEmptyParts);
        conf().append(kvl[0], values);
      }
      else
      {
        conf().set(kvl[0], kvl[1]);
      }
      // move on to the next argument.
      args = args.mid(2);
    }
    else
    {
      foundOne = false;
    }
  }
  // re-initialize the logger and other resources after the settings have been parsed.
  Hoot::getInstance().reinit();

  return runSimple(args);
}