Ejemplo n.º 1
0
void UI::begin(Display* d, Touch* t) {
  d_ = d;
  t_ = t;
  enc_ = new Encoder(kRotaryLeft, kRotaryRight);
  enc_position_ = enc_->read();
  pinMode(kRotarySelect, INPUT_PULLUP);
  select_ = 1;

  if (!SD.begin(kSdCs)) {
#ifdef DEBUG
    Serial.println("initialization failed!");
#endif
    tft->println("SD init fail");
    return;
  }

  Secrets* secrets = new Secrets();
  String secrets_dir = "/secrets/";
  String tz = readfile(secrets_dir + "tz");
  if (tz.length() != 0) {
    secrets->tzoffset(tz.toInt());
  }
  File root = SD.open(secrets_dir.c_str());
  for (;;) {
    File entry = root.openNextFile();
    if (!entry) {
      break;
    }
    if (entry.isDirectory()) {
      String one_secret_dir = secrets_dir + entry.name() + "/";
      String name = readfile(one_secret_dir + "n");
      String description = readfile(one_secret_dir + "d");
      String secret =  readfile(one_secret_dir + "s");
      if (name.length() == 0 || secret.length() == 0) {
        continue;
      }
      secrets->add(name, description, secret);
    }
  }
  d_->secrets(secrets);
}