archive_files.h 1.6 KB

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