Added ability to choose a song from a list, using two new modes and a… #1
|
@ -41,7 +41,7 @@ U8X8_SSD1306_128X64_NONAME_4W_SW_SPI screen(OLED_CLK, OLED_MOSI, OLED_CS, OLED_D
|
||||||
#define IN_mode 17
|
#define IN_mode 17
|
||||||
#define IN_left 18
|
#define IN_left 18
|
||||||
#define IN_right 19
|
#define IN_right 19
|
||||||
#define MODE_MAX 2
|
#define MODE_MAX 3
|
||||||
|
|
||||||
//Global variables
|
//Global variables
|
||||||
//Shift register buffer.
|
//Shift register buffer.
|
||||||
|
@ -180,6 +180,18 @@ short skyrim[] = {
|
||||||
NOTE_REST, 8
|
NOTE_REST, 8
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//Song variables.
|
||||||
|
short songCount = 2;
|
||||||
|
short currentSong = 0;
|
||||||
|
short* songs[] = {
|
||||||
|
skyrim,
|
||||||
|
beep1,
|
||||||
|
};
|
||||||
|
String songNames[] = {
|
||||||
|
"Skyrim",
|
||||||
|
"Beep1",
|
||||||
|
};
|
||||||
|
|
||||||
//-------------------|
|
//-------------------|
|
||||||
//GRAPHICS FUNCTIONS:|
|
//GRAPHICS FUNCTIONS:|
|
||||||
//-------------------|
|
//-------------------|
|
||||||
|
@ -235,6 +247,15 @@ void drawModeStatus() {
|
||||||
screen.print((int)mode);
|
screen.print((int)mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void drawSongStatus() {
|
||||||
|
screen.setFont(u8x8_font_artossans8_r);
|
||||||
|
screen.setInverseFont(0);
|
||||||
|
screen.setCursor(6, 4);
|
||||||
|
screen.print(" ");
|
||||||
|
screen.setCursor(6, 4);
|
||||||
|
screen.print(songNames[currentSong]);
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------|
|
//-------------------|
|
||||||
//STARTUP FUNCTIONS: |
|
//STARTUP FUNCTIONS: |
|
||||||
//-------------------|
|
//-------------------|
|
||||||
|
@ -354,6 +375,18 @@ void updateInputs() {
|
||||||
case 1:
|
case 1:
|
||||||
if (!blinkerLeft) activateBlinker(0);
|
if (!blinkerLeft) activateBlinker(0);
|
||||||
break;
|
break;
|
||||||
|
case 2:
|
||||||
|
if (currentSong == 0) {
|
||||||
|
currentSong = songCount - 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
currentSong--;
|
||||||
|
}
|
||||||
|
drawSongStatus();
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
isPlaying = false;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
//Serial.println("Left pressed.");
|
//Serial.println("Left pressed.");
|
||||||
}
|
}
|
||||||
|
@ -368,6 +401,17 @@ void updateInputs() {
|
||||||
case 1:
|
case 1:
|
||||||
if (!blinkerRight) activateBlinker(1);
|
if (!blinkerRight) activateBlinker(1);
|
||||||
break;
|
break;
|
||||||
|
case 2:
|
||||||
|
if (currentSong == songCount - 1) {
|
||||||
|
currentSong = 0;
|
||||||
|
} else {
|
||||||
|
currentSong++;
|
||||||
|
}
|
||||||
|
drawSongStatus();
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
playSequence(songs[currentSong]);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
//Serial.println("Right pressed.");
|
//Serial.println("Right pressed.");
|
||||||
}
|
}
|
||||||
|
@ -522,8 +566,8 @@ void setup() {
|
||||||
startupPeripherals();
|
startupPeripherals();
|
||||||
startupScreen();
|
startupScreen();
|
||||||
drawMainScreen();
|
drawMainScreen();
|
||||||
|
drawSongStatus();
|
||||||
updateAll();
|
updateAll();
|
||||||
playSequence(beep1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
|
|
Loading…
Reference in New Issue