mirror of
https://github.com/xfjx/TonUINO.git
synced 2025-08-25 00:36:00 +02:00
Voicemenu kann jetzt auch per serieller Schnittstelle bedient werden
This commit is contained in:
47
Tonuino.ino
47
Tonuino.ino
@@ -10,7 +10,7 @@ SoftwareSerial mySoftwareSerial(2, 3); // RX, TX
|
|||||||
uint16_t numTracksInFolder;
|
uint16_t numTracksInFolder;
|
||||||
uint16_t currentTrack;
|
uint16_t currentTrack;
|
||||||
uint16_t firstTrack;
|
uint16_t firstTrack;
|
||||||
uint16_t queue[255];
|
uint8_t queue[255];
|
||||||
uint8_t volume;
|
uint8_t volume;
|
||||||
|
|
||||||
// this object stores nfc tag data
|
// this object stores nfc tag data
|
||||||
@@ -86,21 +86,21 @@ static DFMiniMp3<SoftwareSerial, Mp3Notify> mp3(mySoftwareSerial);
|
|||||||
|
|
||||||
void shuffleQueue() {
|
void shuffleQueue() {
|
||||||
// Queue für die Zufallswiedergabe erstellen
|
// Queue für die Zufallswiedergabe erstellen
|
||||||
for (uint16_t x = 0; x < numTracksInFolder - firstTrack + 1; x++)
|
for (uint8_t x = 0; x < numTracksInFolder - firstTrack + 1; x++)
|
||||||
queue[x] = x + firstTrack;
|
queue[x] = x + firstTrack;
|
||||||
// Rest mit 0 auffüllen
|
// Rest mit 0 auffüllen
|
||||||
for (uint16_t x = numTracksInFolder - firstTrack + 1; x < 255; x++)
|
for (uint8_t x = numTracksInFolder - firstTrack + 1; x < 255; x++)
|
||||||
queue[x] = 0;
|
queue[x] = 0;
|
||||||
// Queue mischen
|
// Queue mischen
|
||||||
for (uint16_t i = 0; i < numTracksInFolder - firstTrack + 1; i++)
|
for (uint8_t i = 0; i < numTracksInFolder - firstTrack + 1; i++)
|
||||||
{
|
{
|
||||||
uint16_t j = random (0, numTracksInFolder - firstTrack + 1);
|
uint8_t j = random (0, numTracksInFolder - firstTrack + 1);
|
||||||
uint16_t t = queue[i];
|
uint8_t t = queue[i];
|
||||||
queue[i] = queue[j];
|
queue[i] = queue[j];
|
||||||
queue[j] = t;
|
queue[j] = t;
|
||||||
}
|
}
|
||||||
Serial.println(F("Queue :"));
|
Serial.println(F("Queue :"));
|
||||||
for (uint16_t x = 0; x < numTracksInFolder - firstTrack + 1 ; x++)
|
for (uint8_t x = 0; x < numTracksInFolder - firstTrack + 1 ; x++)
|
||||||
Serial.println(queue[x]);
|
Serial.println(queue[x]);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -190,6 +190,7 @@ static void nextTrack(uint16_t track) {
|
|||||||
if (track == _lastTrackFinished) {
|
if (track == _lastTrackFinished) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Serial.println(F("=== nextTrack()"));
|
||||||
_lastTrackFinished = track;
|
_lastTrackFinished = track;
|
||||||
|
|
||||||
if (knownCard == false)
|
if (knownCard == false)
|
||||||
@@ -215,7 +216,7 @@ static void nextTrack(uint16_t track) {
|
|||||||
}
|
}
|
||||||
if (myCard.mode == 3 || myCard.mode == 9) {
|
if (myCard.mode == 3 || myCard.mode == 9) {
|
||||||
if (currentTrack != numTracksInFolder - firstTrack + 1) {
|
if (currentTrack != numTracksInFolder - firstTrack + 1) {
|
||||||
Serial.print(F("Spezialmodus Von-Bis: Party -> weiter in der Queue "));
|
Serial.print(F("Party -> weiter in der Queue "));
|
||||||
currentTrack++;
|
currentTrack++;
|
||||||
} else {
|
} else {
|
||||||
Serial.println(F("Ende der Queue -> beginne von vorne"));
|
Serial.println(F("Ende der Queue -> beginne von vorne"));
|
||||||
@@ -252,12 +253,13 @@ static void nextTrack(uint16_t track) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void previousTrack() {
|
static void previousTrack() {
|
||||||
|
Serial.println(F("=== previousTrack()"));
|
||||||
if (myCard.mode == 1 || myCard.mode == 7) {
|
if (myCard.mode == 1 || myCard.mode == 7) {
|
||||||
Serial.println(F("Hörspielmodus ist aktiv -> Track von vorne spielen"));
|
Serial.println(F("Hörspielmodus ist aktiv -> Track von vorne spielen"));
|
||||||
mp3.playFolderTrack(myCard.folder, currentTrack);
|
mp3.playFolderTrack(myCard.folder, currentTrack);
|
||||||
}
|
}
|
||||||
if (myCard.mode == 2 || myCard.mode == 8) {
|
if (myCard.mode == 2 || myCard.mode == 8) {
|
||||||
Serial.println(F("Spezialmodus Von-Bis: Album ist aktiv -> vorheriger Track"));
|
Serial.println(F("Albummodus ist aktiv -> vorheriger Track"));
|
||||||
if (currentTrack != firstTrack) {
|
if (currentTrack != firstTrack) {
|
||||||
currentTrack = currentTrack - 1;
|
currentTrack = currentTrack - 1;
|
||||||
}
|
}
|
||||||
@@ -336,7 +338,7 @@ void setup() {
|
|||||||
// Schnittstelle
|
// Schnittstelle
|
||||||
randomSeed(analogRead(A7)); // Zufallsgenerator initialisieren
|
randomSeed(analogRead(A7)); // Zufallsgenerator initialisieren
|
||||||
|
|
||||||
Serial.println(F("TonUINO Version 2.0"));
|
Serial.println(F("TonUINO Version 2.1"));
|
||||||
Serial.println(F("(c) Thorsten Voß"));
|
Serial.println(F("(c) Thorsten Voß"));
|
||||||
|
|
||||||
// Busy Pin
|
// Busy Pin
|
||||||
@@ -418,10 +420,16 @@ void loop() {
|
|||||||
} else if (pauseButton.pressedFor(LONG_PRESS) &&
|
} else if (pauseButton.pressedFor(LONG_PRESS) &&
|
||||||
ignorePauseButton == false) {
|
ignorePauseButton == false) {
|
||||||
if (isPlaying()) {
|
if (isPlaying()) {
|
||||||
if (myCard.mode == 3)
|
uint8_t advertTrack;
|
||||||
mp3.playAdvertisement(queue[currentTrack - 1]);
|
if (myCard.mode == 3 || myCard.mode == 9)
|
||||||
|
advertTrack = (queue[currentTrack - 1]);
|
||||||
else
|
else
|
||||||
mp3.playAdvertisement(currentTrack);
|
advertTrack = currentTrack;
|
||||||
|
// Spezialmodus Von-Bis für Album und Party gibt die Dateinummer relativ zur Startposition wieder
|
||||||
|
if (myCard.mode == 8 || myCard.mode == 9)
|
||||||
|
advertTrack = advertTrack - myCard.special + 1;
|
||||||
|
|
||||||
|
mp3.playAdvertisement(advertTrack);
|
||||||
}
|
}
|
||||||
ignorePauseButton = true;
|
ignorePauseButton = true;
|
||||||
}
|
}
|
||||||
@@ -566,11 +574,11 @@ void adminMenu() {
|
|||||||
mfrc522.PCD_StopCrypto1();
|
mfrc522.PCD_StopCrypto1();
|
||||||
}
|
}
|
||||||
else if (subMenu == 2)
|
else if (subMenu == 2)
|
||||||
mySettings.maxVolume = voiceMenu(20, 930, 0, false, false, mySettings.maxVolume);
|
mySettings.maxVolume = voiceMenu(30, 930, 0, false, false, mySettings.maxVolume);
|
||||||
else if (subMenu == 3)
|
else if (subMenu == 3)
|
||||||
mySettings.minVolume = voiceMenu(20, 931, 0, false, false, mySettings.minVolume);
|
mySettings.minVolume = voiceMenu(30, 931, 0, false, false, mySettings.minVolume);
|
||||||
else if (subMenu == 4)
|
else if (subMenu == 4)
|
||||||
mySettings.initVolume = voiceMenu(20, 932, 0, false, false, mySettings.initVolume);
|
mySettings.initVolume = voiceMenu(30, 932, 0, false, false, mySettings.initVolume);
|
||||||
else if (subMenu == 5)
|
else if (subMenu == 5)
|
||||||
mySettings.eq = voiceMenu(6, 920, 920, false, false, mySettings.eq);
|
mySettings.eq = voiceMenu(6, 920, 920, false, false, mySettings.eq);
|
||||||
else if (subMenu == 6) {
|
else if (subMenu == 6) {
|
||||||
@@ -619,6 +627,11 @@ int voiceMenu(int numberOfOptions, int startMessage, int messageOffset,
|
|||||||
Serial.print(numberOfOptions);
|
Serial.print(numberOfOptions);
|
||||||
Serial.println(F(" Options)"));
|
Serial.println(F(" Options)"));
|
||||||
do {
|
do {
|
||||||
|
if (Serial.available() > 0) {
|
||||||
|
int optionSerial = Serial.parseInt();
|
||||||
|
if (optionSerial != 0 && optionSerial <= numberOfOptions)
|
||||||
|
return optionSerial;
|
||||||
|
}
|
||||||
readButtons();
|
readButtons();
|
||||||
mp3.loop();
|
mp3.loop();
|
||||||
if (pauseButton.wasPressed()) {
|
if (pauseButton.wasPressed()) {
|
||||||
@@ -858,6 +871,7 @@ void writeCard(nfcTagObject nfcTag) {
|
|||||||
delay(100);
|
delay(100);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Helper routine to dump a byte array as hex values to Serial.
|
Helper routine to dump a byte array as hex values to Serial.
|
||||||
*/
|
*/
|
||||||
@@ -868,3 +882,4 @@ void dump_byte_array(byte * buffer, byte bufferSize) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user