flipper_file_string.c 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #include <furi.h>
  2. #include "flipper_file.h"
  3. #include "flipper_file_i.h"
  4. #include "flipper_file_helper.h"
  5. static bool flipper_file_write_string_internal(
  6. File* file,
  7. const char* key,
  8. const void* data,
  9. const uint16_t data_size) {
  10. bool result = false;
  11. (void)data_size;
  12. do {
  13. result = flipper_file_write_key(file, key);
  14. if(!result) break;
  15. result = file_helper_write(file, string_get_cstr(data), string_size(data));
  16. if(!result) break;
  17. result = file_helper_write_eol(file);
  18. } while(false);
  19. return result;
  20. };
  21. bool flipper_file_read_string(FlipperFile* flipper_file, const char* key, string_t data) {
  22. furi_assert(flipper_file);
  23. bool result = false;
  24. if(flipper_file_seek_to_key(flipper_file->file, key)) {
  25. if(file_helper_read_line(flipper_file->file, data)) {
  26. result = true;
  27. }
  28. }
  29. return result;
  30. }
  31. bool flipper_file_write_string(FlipperFile* flipper_file, const char* key, string_t data) {
  32. furi_assert(flipper_file);
  33. return flipper_file_write_string_internal(flipper_file->file, key, data, 0);
  34. }
  35. bool flipper_file_write_string_cstr(FlipperFile* flipper_file, const char* key, const char* data) {
  36. bool result = false;
  37. string_t value;
  38. string_init_set(value, data);
  39. result = flipper_file_write_string(flipper_file, key, value);
  40. string_clear(value);
  41. return result;
  42. }
  43. bool flipper_file_update_string(FlipperFile* flipper_file, const char* key, string_t data) {
  44. furi_assert(flipper_file);
  45. return flipper_file_delete_key_and_call(
  46. flipper_file, key, flipper_file_write_string_internal, key, data, 0);
  47. }
  48. bool flipper_file_update_string_cstr(FlipperFile* flipper_file, const char* key, const char* data) {
  49. bool result = false;
  50. string_t value;
  51. string_init_set(value, data);
  52. result = flipper_file_update_string(flipper_file, key, value);
  53. string_clear(value);
  54. return result;
  55. }