archive_files.h 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #pragma once
  2. #include "file_worker.h"
  3. #include <m-array.h>
  4. #define MAX_FILES 100 //temp
  5. typedef enum {
  6. ArchiveFileTypeIButton,
  7. ArchiveFileTypeNFC,
  8. ArchiveFileTypeSubGhz,
  9. ArchiveFileTypeLFRFID,
  10. ArchiveFileTypeInfrared,
  11. ArchiveFileTypeBadUsb,
  12. ArchiveFileTypeU2f,
  13. ArchiveFileTypeFolder,
  14. ArchiveFileTypeUnknown,
  15. ArchiveFileTypesTotal,
  16. } ArchiveFileTypeEnum;
  17. typedef struct {
  18. string_t name;
  19. ArchiveFileTypeEnum type;
  20. bool fav;
  21. bool is_app;
  22. } ArchiveFile_t;
  23. static void ArchiveFile_t_init(ArchiveFile_t* obj) {
  24. obj->type = ArchiveFileTypeUnknown;
  25. obj->is_app = false;
  26. obj->fav = false;
  27. string_init(obj->name);
  28. }
  29. static void ArchiveFile_t_init_set(ArchiveFile_t* obj, const ArchiveFile_t* src) {
  30. obj->type = src->type;
  31. obj->is_app = src->is_app;
  32. obj->fav = src->fav;
  33. string_init_set(obj->name, src->name);
  34. }
  35. static void ArchiveFile_t_set(ArchiveFile_t* obj, const ArchiveFile_t* src) {
  36. obj->type = src->type;
  37. obj->is_app = src->is_app;
  38. obj->fav = src->fav;
  39. string_set(obj->name, src->name);
  40. }
  41. static void ArchiveFile_t_clear(ArchiveFile_t* obj) {
  42. string_clear(obj->name);
  43. }
  44. ARRAY_DEF(
  45. files_array,
  46. ArchiveFile_t,
  47. (INIT(API_2(ArchiveFile_t_init)),
  48. SET(API_6(ArchiveFile_t_set)),
  49. INIT_SET(API_6(ArchiveFile_t_init_set)),
  50. CLEAR(API_2(ArchiveFile_t_clear))))
  51. bool filter_by_extension(FileInfo* file_info, const char* tab_ext, const char* name);
  52. void set_file_type(ArchiveFile_t* file, FileInfo* file_info, const char* path, bool is_app);
  53. void archive_trim_file_path(char* name, bool ext);
  54. void archive_get_file_extension(char* name, char* ext);
  55. bool archive_get_filenames(void* context, const char* path);
  56. bool archive_dir_not_empty(void* context, const char* path);
  57. bool archive_read_dir(void* context, const char* path);
  58. void archive_file_append(const char* path, const char* format, ...);
  59. void archive_delete_file(void* context, const char* format, ...);