You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
780B

  1. #include "engine.hpp"
  2. #include "gui.hpp"
  3. #include "app.hpp"
  4. #include "plugin.hpp"
  5. #include "settings.hpp"
  6. #include "asset.hpp"
  7. #include <unistd.h>
  8. using namespace rack;
  9. int main(int argc, char* argv[]) {
  10. char *cwd = getcwd(NULL, 0);
  11. printf("Current working directory is %s\n", cwd);
  12. free(cwd);
  13. pluginInit();
  14. engineInit();
  15. guiInit();
  16. sceneInit();
  17. if (argc >= 2) {
  18. // TODO Set gRackWidget->lastPath
  19. gRackWidget->loadPatch(argv[1]);
  20. }
  21. else {
  22. gRackWidget->loadPatch(assetLocal("autosave.vcv"));
  23. }
  24. settingsLoad(assetLocal("settings.json"));
  25. engineStart();
  26. guiRun();
  27. engineStop();
  28. settingsSave(assetLocal("settings.json"));
  29. gRackWidget->savePatch(assetLocal("autosave.vcv"));
  30. sceneDestroy();
  31. guiDestroy();
  32. engineDestroy();
  33. pluginDestroy();
  34. return 0;
  35. }