95 lines
4.2 KiB
HTML
95 lines
4.2 KiB
HTML
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
|
||
|
<html>
|
||
|
<head>
|
||
|
<title>Building an Audio CD Player, Listing 2</title>
|
||
|
</head>
|
||
|
<body bgcolor="#FFFFFF" text="000000">
|
||
|
<p><HR> <P>
|
||
|
<h3>Listing 1. Jcd.java</h3>
|
||
|
<p><HR> <P>
|
||
|
<pre>
|
||
|
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
|
||
|
</pre>
|
||
|
</body>
|
||
|
</html>
|