PicoWaveTracker/SharedState.h
2026-02-19 10:48:55 +01:00

61 lines
1.7 KiB
C

#ifndef SHARED_STATE_H
#define SHARED_STATE_H
#include "TrackerTypes.h"
#include "MelodyStrategy.h"
#include "config.h"
// Global state variables defined in main .ino
extern Step sequence[NUM_TRACKS][NUM_STEPS];
extern Step nextSequence[NUM_TRACKS][NUM_STEPS];
extern volatile bool sequenceChangeScheduled;
extern volatile bool needsPanic;
extern UIState currentState;
// Menus
extern const char* mainMenu[];
extern const int mainMenuCount;
extern const char* randomizeMenuPoly[];
extern const int randomizeMenuPolyCount;
extern const int THEME_1_INDEX_POLY;
extern const char* setupMenu[];
extern const int setupMenuCount;
extern int menuSelection;
extern volatile bool trackMute[NUM_TRACKS];
extern int randomizeTrack;
extern volatile int playbackStep;
extern volatile int midiChannels[NUM_TRACKS];
extern int scaleNotes[12];
extern int numScaleNotes;
extern int melodySeeds[NUM_TRACKS];
extern volatile int queuedTheme;
extern volatile int currentThemeIndex;
extern const uint32_t EEPROM_MAGIC;
extern MelodyStrategy* strategies[];
extern const int numStrategies;
extern int currentStrategyIndices[NUM_TRACKS];
extern volatile PlayMode playMode;
extern volatile bool mutationEnabled;
extern volatile bool songModeEnabled;
extern volatile int songRepeatsRemaining;
extern volatile int nextSongRepeats;
extern volatile bool songModeNeedsNext;
extern volatile bool isPlaying;
extern volatile int tempo;
extern volatile unsigned long lastClockTime;
extern volatile int clockCount;
// Input state
extern volatile int encoderDelta;
extern bool lastButtonState;
extern unsigned long lastDebounceTime;
extern bool buttonActive;
extern bool buttonConsumed;
extern unsigned long buttonPressTime;
#endif