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.

59 lines
737B

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