Listing 1. Jcd.java
package Jcd; // 1
/** 2
Jcd - Java CD Audio Player 3
Michael Hamilton (michael@actrix.gen.nz). 4
All rights reserved. See the README for details
*/ // 6
import java.io.*; // 8
import Jcd.Drive; // 10
public class Jcd { // 12
public static void main(String[] args) // 14
{ // 15
Drive cd_drive = new Drive( // 16
"/dev/cdrom",
"native/ix86-Linux/Jcd_Drive.so", // 17
0); // 18
DataInputStream cmd_stream =
new DataInputStream(System.in); // 19
String cmd; // 20
try { // 22
System.out.println(
"Enter: info play stop pause resume eject");
for (cmd = cmd_stream.readLine(); // 26
cmd.compareTo("exit") != 0; // 27
cmd = cmd_stream.readLine()) { // 28
try { // 30
if (cmd.compareTo("play") == 0) { // 31
cd_drive.play(1); // 32
} // 33
else if (cmd.startsWith("goto")) { // 34
try { // 35
cd_drive.play(Integer.parseInt(
cmd.substring(4).trim())); // 37
}
catch (NumberFormatException badnum) {
System.out.println("Bad number " +
badnum); // 39
} // 40
} // 41
else if (cmd.compareTo("stop") == 0) {
cd_drive.stop(); // 43
} // 44
else if (cmd.compareTo("pause") == 0) {
cd_drive.pause(); // 46
} // 47
else if (cmd.compareTo("resume") == 0) {
cd_drive.resume(); // 49
} // 50
else if (cmd.compareTo("eject") == 0) {
cd_drive.eject(); // 52
} // 53
else if (cmd.compareTo("info") == 0) {
System.out.println("CDDB ID = " +
cd_drive.cddbID());
System.out.println("Num Tracks = " +
cd_drive.numberOfTracks());
System.out.println("End address= " +
cd_drive.cdEndAddress());
System.out.println(""); // 58
System.out.println("Track = " +
cd_drive.currentTrack());
System.out.println("Index = " +
cd_drive.currentIndex());
System.out.println("Address = " +
cd_drive.currentAddress());
System.out.println("Trk address= " +
cd_drive.trackAddress());
System.out.println("Trk length = " +
cd_drive.trackLength());
} // 65
} // 66
catch (DriveException drive_problem) {
System.out.println("Exception: " +
drive_problem); // 68
} // 69
System.out.println("Enter:"); // 70
} // 71
} // 72
catch (IOException cmd_exception) { // 73
} // 74
} // 75
} // 76