barcode_app.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. #pragma once
  2. #include <furi.h>
  3. #include <furi_hal.h>
  4. #include <gui/gui.h>
  5. #include <input/input.h>
  6. #include <dialogs/dialogs.h>
  7. #include <gui/view_dispatcher.h>
  8. #include <gui/modules/submenu.h>
  9. #include <gui/modules/text_input.h>
  10. #include <gui/modules/text_input.h>
  11. #include <flipper_format/flipper_format.h>
  12. #include "barcode_utils.h"
  13. #define TAG "BARCODE"
  14. #define VERSION "1.0"
  15. #define FILE_VERSION "1"
  16. #define TEXT_BUFFER_SIZE 128
  17. #define BARCODE_HEIGHT 50
  18. #define BARCODE_Y_START 3
  19. #define APPS_DATA EXT_PATH("apps_data")
  20. //the folder where the encodings are located
  21. #define BARCODE_DATA_FILE_DIR_PATH APPS_DATA "/barcode_data"
  22. //the folder where the code 39 encoding table is located
  23. #define CODE39_DICT_FILE_PATH BARCODE_DATA_FILE_DIR_PATH "/code39_encodings.txt"
  24. //the folder where the code 128 encoding table is located
  25. #define CODE128_DICT_FILE_PATH BARCODE_DATA_FILE_DIR_PATH "/code128_encodings.txt"
  26. //the folder where the user stores their barcodes
  27. #define DEFAULT_USER_BARCODES EXT_PATH("barcodes")
  28. //The extension barcode files use
  29. #define BARCODE_EXTENSION ".barcode"
  30. #define BARCODE_EXTENSION_LENGTH 8
  31. #include "views/barcode_view.h"
  32. #include "views/create_view.h"
  33. #include "views/message_view.h"
  34. #include "barcode_validator.h"
  35. typedef struct BarcodeApp BarcodeApp;
  36. struct BarcodeApp {
  37. Submenu* main_menu;
  38. ViewDispatcher* view_dispatcher;
  39. Gui* gui;
  40. FuriMessageQueue* event_queue;
  41. CreateView* create_view;
  42. Barcode* barcode_view;
  43. MessageView* message_view;
  44. TextInput* text_input;
  45. };
  46. enum SubmenuItems {
  47. SelectBarcodeItem,
  48. EditBarcodeItem,
  49. CreateBarcodeItem
  50. };
  51. enum Views {
  52. TextInputView,
  53. MessageErrorView,
  54. MainMenuView,
  55. CreateBarcodeView,
  56. BarcodeView
  57. };
  58. void submenu_callback(void* context, uint32_t index);
  59. uint32_t main_menu_callback(void* context);
  60. uint32_t exit_callback(void* context);
  61. int32_t barcode_main(void* p);