loader.h 1.0 KB

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