loader.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #pragma once
  2. #include <core/pubsub.h>
  3. #include <stdbool.h>
  4. #define RECORD_LOADER "loader"
  5. typedef struct Loader Loader;
  6. typedef enum {
  7. LoaderStatusOk,
  8. LoaderStatusErrorAppStarted,
  9. LoaderStatusErrorUnknownApp,
  10. LoaderStatusErrorInternal,
  11. } LoaderStatus;
  12. typedef enum {
  13. LoaderEventTypeApplicationStarted,
  14. LoaderEventTypeApplicationStopped
  15. } LoaderEventType;
  16. typedef struct {
  17. LoaderEventType type;
  18. } LoaderEvent;
  19. /** Start application
  20. * @param name - application name
  21. * @param args - application arguments
  22. * @retval true on success
  23. */
  24. LoaderStatus loader_start(Loader* instance, const char* name, const char* args);
  25. /** Lock application start
  26. * @retval true on success
  27. */
  28. bool loader_lock(Loader* instance);
  29. /** Unlock application start */
  30. void loader_unlock(Loader* instance);
  31. /** Get loader lock status */
  32. bool loader_is_locked(Loader* instance);
  33. /** Show primary loader */
  34. void loader_show_menu();
  35. /** Show primary loader */
  36. void loader_update_menu();
  37. /** Show primary loader */
  38. FuriPubSub* loader_get_pubsub(Loader* instance);