#ifndef XRDisplay_h #define XRDisplay_h #include "XRConfig.h" #include "XRSequenceInstrumentTrack.h" #include "XRSequenceInstrumentTrackProgram.h" #include #include #include #include #include class Display { public: static void init(ILI9341_t3n &tft); static void animateLogo(ILI9341_t3n &tft, bool remove = false); static void drawIntroScreen(ILI9341_t3n &tft); static void drawMainScreen( ILI9341_t3n &tft, unsigned int instrumentSelected, const std::vector& instrumentTracks, bool refreshPrograms, unsigned int tempo, unsigned int selProgram = 0, bool cursoringPrograms = false, bool isRunning = false, unsigned int currPageIdx = 0 ); static void drawTempoScreen(ILI9341_t3n &tft, unsigned int currTempo); static void drawInstrumentConfigWindow( ILI9341_t3n &tft, SequenceInstrumentTrack *instrumentTrack, unsigned int selConfigPropIdx ); static void drawInstrumentConfigPropWindow( ILI9341_t3n &tft, SequenceInstrumentTrack *instrumentTrack, unsigned int selConfigPropIdx, unsigned int selConfigPropSettingIdx ); static void drawSettingsTray(ILI9341_t3n &tft, unsigned int tempo); static void drawPrograms( ILI9341_t3n &tft, unsigned int currInstrument, const std::vector& instrumentTracks, unsigned int selProgram = 0, bool cursoringPrograms = false, bool isRunning = false, unsigned int currPageIdx = 0 ); static void drawProgramConfigWindow( ILI9341_t3n &tft, SequenceInstrumentTrackProgram *program, unsigned int currInstrument, unsigned int currCursoredProgramIdx, unsigned int currPrgConfigPropIdx ); static void drawProgramConfigPropWindow( ILI9341_t3n &tft, SequenceInstrumentTrackProgram *program, unsigned int currPrgConfigPropIdx, unsigned int currPrgConfigPropSettingIdx ); static void drawWarn(ILI9341_t3n &tft, const char* message); private: static void setConfigPropDisplayForIdx( ILI9341_t3n &display, unsigned int propIndex, unsigned int selConfigPropIdx, SequenceInstrumentTrack *instrumentTrack ); static void setConfigPropSettingDisplayForIdx( ILI9341_t3n &display, unsigned int propSettingIdx, unsigned int selConfigPropIdx, unsigned int selConfigPropSettingIdx, SequenceInstrumentTrack *instrumentTrack ); static void setPrgConfigPropDisplayForIdx( ILI9341_t3n &display, unsigned int propIndex, unsigned int currPrgConfigPropIdx, SequenceInstrumentTrackProgram *program ); static void setPrgConfigPropSettingDisplayForIdx( ILI9341_t3n &display, unsigned int propSettingIdx, unsigned int currPrgConfigPropIdx, unsigned int currPrgConfigPropSettingIdx, SequenceInstrumentTrackProgram *program ); //void drawDisabledLaneByInstrument(ILI9341_t3n &display, int instrumentNum); static void drawPlaceholder(ILI9341_t3n &display, int instrumentNum, int prgPosY, int color, int spacing = 3); static void drawDisabledLaneByInstrumentV2(ILI9341_t3n &display, int instrumentNum, bool isRed, bool isActive, int color); static void printRightAlignedString(ILI9341_t3n &display, const std::string& buf, int x, int y); }; #endif /* XRDisplay_h */