settings.h 800 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef SETTINGS_H_INCLUDED
  2. #define SETTINGS_H_INCLUDED
  3. #include <stdint.h>
  4. #include "pot.h"
  5. #define MAX_PATTERN_LEN 64
  6. #define MAX_TRACKS 8
  7. #define MAX_PATTERNS 32
  8. #define STORAGE_HDR (0xDA1EDA1E)
  9. struct settings;
  10. extern struct settings *Settings;
  11. struct __attribute__((packed)) drone_slot {
  12. uint8_t pitch;
  13. uint8_t env;
  14. };
  15. struct settings {
  16. uint32_t storage_hdr;
  17. int levels[NUM_POTS];
  18. #define master_vol levels[2]
  19. int bpm;
  20. int beatcount;
  21. int sequencer_on;
  22. int current_pattern;
  23. struct drums_pattern {
  24. uint32_t len;
  25. uint32_t data[MAX_PATTERN_LEN];
  26. } drums[MAX_PATTERNS];
  27. struct drone_pattern {
  28. struct drone_slot data[MAX_PATTERN_LEN];
  29. } drone[MAX_PATTERNS];
  30. };
  31. void settings_load(void);
  32. void settings_save(void);
  33. #endif