file_browser_worker.h 1.9 KB

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