file_browser_worker.h 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #pragma once
  2. #include <gui/view.h>
  3. #include <stdint.h>
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. typedef struct BrowserWorker BrowserWorker;
  8. typedef void (*BrowserWorkerFolderOpenCallback)(
  9. void* context,
  10. uint32_t item_cnt,
  11. int32_t file_idx,
  12. bool is_root);
  13. typedef void (*BrowserWorkerListLoadCallback)(void* context, uint32_t list_load_offset);
  14. typedef void (*BrowserWorkerListItemCallback)(
  15. void* context,
  16. FuriString* item_path,
  17. bool is_folder,
  18. bool is_last);
  19. typedef void (*BrowserWorkerLongLoadCallback)(void* context);
  20. BrowserWorker*
  21. file_browser_worker_alloc(FuriString* path, const char* filter_ext, bool skip_assets);
  22. void file_browser_worker_free(BrowserWorker* browser);
  23. void file_browser_worker_set_callback_context(BrowserWorker* browser, void* context);
  24. void file_browser_worker_set_folder_callback(
  25. BrowserWorker* browser,
  26. BrowserWorkerFolderOpenCallback cb);
  27. void file_browser_worker_set_list_callback(
  28. BrowserWorker* browser,
  29. BrowserWorkerListLoadCallback cb);
  30. void file_browser_worker_set_item_callback(
  31. BrowserWorker* browser,
  32. BrowserWorkerListItemCallback cb);
  33. void file_browser_worker_set_long_load_callback(
  34. BrowserWorker* browser,
  35. BrowserWorkerLongLoadCallback cb);
  36. void file_browser_worker_set_config(
  37. BrowserWorker* browser,
  38. FuriString* path,
  39. const char* filter_ext,
  40. bool skip_assets);
  41. void file_browser_worker_folder_enter(BrowserWorker* browser, FuriString* path, int32_t item_idx);
  42. void file_browser_worker_folder_exit(BrowserWorker* browser);
  43. void file_browser_worker_folder_refresh(BrowserWorker* browser, int32_t item_idx);
  44. void file_browser_worker_load(BrowserWorker* browser, uint32_t offset, uint32_t count);
  45. #ifdef __cplusplus
  46. }
  47. #endif