   }
   if (nextIdleTick <= now) {
     nextIdleTick += tickIdleShow();
+  }
+
+  // Check for finished track
+  if (state == PLAY_SELECTED) {
+    if (player.stopped()) onStop();
   }
 }
 

      Serial.print("Set Volume "); Serial.println(volume);
      player.setVolume(volume, volume);
    }
    if (player.stopped()) onStop();
  }
  return READ_DELAY;
}


  unsigned long now = millis();

  // Rollover millis since start
  if (nextReadTick > now + ROLLOVER_GAP) {
    Serial.println("Rollover timer ticks!");
    nextReadTick = now;
    nextIdleTick = now;
