#include "Sequencer.h" #include "PlaybackScreen.h" #include "colors.h" #include PlaybackScreen::PlaybackScreen(Sequencer& seq) : sequencer(seq) { setColorAll(midi::LaunchpadColor(0, 0)); } void PlaybackScreen::beforeBeat(Player::BeatIndex beat) { std::cout << "before beat #" << beat << std::endl; setColor(beat, 0, colors::activeMessage); setColor((beat - 1) % 8, 0, colors::dark); } void PlaybackScreen::afterBeat(Player::BeatIndex beat) { std::cout << "after beat #" << beat << std::endl; } void PlaybackScreen::keyPressed(unsigned char x, unsigned char y) { std::cout << "clicked x=" << (int)x << ", y=" << (int)y << std::endl; if(x == 8) { // very right setColor(x, y, colors::activeMessage); std::shared_ptr msg_ptr = sequencer.messages[y]; msg_ptr->print(std::cout); sequencer.midiOut.sendMessage(*msg_ptr); } else if(y == 8) { // very top if(x == 0) { if(sequencer.player.isPlaying()) { sequencer.player.stop(); setColor(x, y, colors::inactiveOption); } else { sequencer.player.loop(); setColor(x, y, colors::activeOption); } } } else { } } void PlaybackScreen::keyReleased(unsigned char x, unsigned char y) { if(x == 8) { // very right setColor(x, y, colors::inactiveMessage); } else if(y == 8) { // very top } else { } }