file_browser_worker.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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* file_browser_worker_alloc(
  21. FuriString* path,
  22. const char* filter_ext,
  23. bool skip_assets,
  24. bool hide_dot_files);
  25. void file_browser_worker_free(BrowserWorker* browser);
  26. void file_browser_worker_set_callback_context(BrowserWorker* browser, void* context);
  27. void file_browser_worker_set_folder_callback(
  28. BrowserWorker* browser,
  29. BrowserWorkerFolderOpenCallback cb);
  30. void file_browser_worker_set_list_callback(
  31. BrowserWorker* browser,
  32. BrowserWorkerListLoadCallback cb);
  33. void file_browser_worker_set_item_callback(
  34. BrowserWorker* browser,
  35. BrowserWorkerListItemCallback cb);
  36. void file_browser_worker_set_long_load_callback(
  37. BrowserWorker* browser,
  38. BrowserWorkerLongLoadCallback cb);
  39. void file_browser_worker_set_config(
  40. BrowserWorker* browser,
  41. FuriString* path,
  42. const char* filter_ext,
  43. bool skip_assets,
  44. bool hide_dot_files);
  45. void file_browser_worker_folder_enter(BrowserWorker* browser, FuriString* path, int32_t item_idx);
  46. bool file_browser_worker_is_in_start_folder(BrowserWorker* browser);
  47. void file_browser_worker_folder_exit(BrowserWorker* browser);
  48. void file_browser_worker_folder_refresh(BrowserWorker* browser, int32_t item_idx);
  49. void file_browser_worker_load(BrowserWorker* browser, uint32_t offset, uint32_t count);
  50. #ifdef __cplusplus
  51. }
  52. #endif