import lejos.nxt.*;
import lejos.util.TextMenu;
import java.io.*;
/**
* Demonstrates playing 8-bit WAV files.
*
* Use nxjbrowse to upload 8-bit WAV files. On Windows XP,
* ringin.wav and ringout.wav are 8-bit WAV file,
* which can be found in the Media subfolder of
* the Windows folder.
*
* @author Lawrie Griffiths
*
*/
public class SoundSample {
public static void main(String [] options) throws Exception {
File[] allFiles = File.listFiles();
String s;
int len = 0;
// Calculate number of WAV files
for(int i=0;i<allFiles.length && allFiles[i] != null;i++) {
s = allFiles[i].getName();
int l = s.length();
if (l > 4 && s.charAt(l-3) =='w' && s.charAt(l-2) == 'a' && s.charAt(l-1) == 'v') len++;
}
// Make array of WAV files and fileNames
String[] fileNames = new String[len];
File[] files = new File[len];
int j = 0;
for(int i=0;i<allFiles.length && allFiles[i] != null;i++) {
s = allFiles[i].getName();
int l = s.length();
if (l > 4 && s.charAt(l-3) =='w' && s.charAt(l-2) == 'a' && s.charAt(l-1) == 'v') {
fileNames[j] = s;
files[j++] = allFiles[i];
}
}
LCD.drawString("Play a WAV file",0,0);
// Create menu of WAV files
TextMenu fileMenu = new TextMenu(fileNames,1);
// Play files until the user quits
int selected;
do {
selected = fileMenu.select();
if (selected >= 0) {
Sound.playSample(files[selected],100);
}
} while (selected >= 0);
}
}