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.

56 lines
747B

  1. #pragma once
  2. #include "common.hpp"
  3. namespace rack {
  4. namespace history {
  5. struct State;
  6. } // namespace history
  7. namespace engine {
  8. struct Engine;
  9. } // namespace engine
  10. struct Window;
  11. struct PatchManager;
  12. namespace event {
  13. struct State;
  14. } // namespace event
  15. namespace app {
  16. struct Scene;
  17. } // namespace app
  18. /** Contains the application state */
  19. struct App {
  20. event::State *event = NULL;
  21. app::Scene *scene = NULL;
  22. engine::Engine *engine = NULL;
  23. Window *window = NULL;
  24. history::State *history = NULL;
  25. PatchManager *patch = NULL;
  26. void init();
  27. ~App();
  28. };
  29. void appInit();
  30. void appDestroy();
  31. /** Returns the global App pointer */
  32. App *appGet();
  33. /** Accesses the global App pointer */
  34. #define APP appGet()
  35. } // namespace rack