示例#1
0
int LoadSave::getNumPatches() {
    File bank_directory = getBankDirectory();
    Array<File> patches;
    bank_directory.findChildFiles(patches, File::findFiles, true,
                                  String("*.") + mopo::PATCH_EXTENSION);
    return patches.size();
}
示例#2
0
文件: load_save.cpp 项目: and3k5/helm
File LoadSave::getUserBankDirectory() {
  File bank_dir = getBankDirectory();
  File folder_dir = bank_dir.getChildFile(USER_BANK_NAME);

  if (!folder_dir.exists()) {
    folder_dir.createDirectory();
    for (String patch_folder : DEFAULT_USER_FOLDERS)
      folder_dir.getChildFile(patch_folder).createDirectory();
  }
  return folder_dir;
}
示例#3
0
文件: load_save.cpp 项目: and3k5/helm
File LoadSave::getPatchFile(int bank_index, int folder_index, int patch_index) {
  static const FileSorterAscending file_sorter;

  File bank_directory = getBankDirectory();
  Array<File> banks;
  bank_directory.findChildFiles(banks, File::findDirectories, false);
  banks.sort(file_sorter);

  if (banks.size() == 0)
    return File();

  if (bank_index >= 0) {
    File bank = banks[std::min(bank_index, banks.size() - 1)];
    banks.clear();
    banks.add(bank);
  }

  Array<File> folders;
  for (File bank : banks) {
    Array<File> bank_folders;
    bank.findChildFiles(bank_folders, File::findDirectories, false);
    bank_folders.sort(file_sorter);
    folders.addArray(bank_folders);
  }

  if (folders.size() == 0)
    return File();

  if (folder_index >= 0) {
    File folder = folders[std::min(folder_index, folders.size() - 1)];
    folders.clear();
    folders.add(folder);
  }

  Array<File> patches;
  for (File folder : folders) {
    Array<File> folder_patches;
    folder.findChildFiles(folder_patches, File::findFiles, false,
                          String("*.") + mopo::PATCH_EXTENSION);
    folder_patches.sort(file_sorter);
    patches.addArray(folder_patches);
  }

  if (patches.size() == 0 || patch_index < 0)
    return File();

  return patches[std::min(patch_index, patches.size() - 1)];
}
示例#4
0
文件: load_save.cpp 项目: and3k5/helm
bool LoadSave::wasUpgraded() {
  var config_state = getConfigVar();
  DynamicObject* config_object = config_state.getDynamicObject();
  if (!config_state.isObject())
    return true;

  if (!config_object->hasProperty("synth_version"))
    return true;

  Array<File> patches;
  String extension = String("*.") + mopo::PATCH_EXTENSION;
  getBankDirectory().findChildFiles(patches, File::findFiles, true, extension);
  if (patches.size() == 0)
    return true;

  return compareVersionStrings(config_object->getProperty("synth_version"),
                               ProjectInfo::versionString) < 0;
}