95 lines
4.6 KiB
Java
95 lines
4.6 KiB
Java
package Jcd; // -- Listing-1 -- Player.java // 1
|
|
// 2
|
|
import java.io.*; // 3
|
|
import java.util.*; // 4
|
|
import java.awt.*; // 5
|
|
import java.awt.event.*; // 6
|
|
// 7
|
|
import Jcd.*; // 8
|
|
// 9
|
|
public class Player // 10
|
|
extends Form
|
|
implements ActionListener { // Main window.
|
|
// 11
|
|
SmartDrive cdPlayer; // Hardware interface // 12
|
|
Program program; // Program tracks to play.
|
|
// 14
|
|
Display display; // Numeric display // 15
|
|
Controls controls; // Push buttons // 16
|
|
// 17
|
|
// File-Menu items // 18
|
|
private MenuItem fileProgramItem =
|
|
new MenuItem("Program"); // 19
|
|
private MenuItem fileExitItem =
|
|
new MenuItem("Exit"); // 20
|
|
// 21
|
|
// // 22
|
|
// 1. Connect to a cdrom device. // 23
|
|
// 2. Create the interface: // 24
|
|
// the display-panel; // 25
|
|
// the control-panel; // 26
|
|
// 3. Establish the panel components as // 27
|
|
// clients of the monitor. // 28
|
|
// 29
|
|
public static void main(String[] args) // 30
|
|
{ // 31
|
|
Player player = // 32
|
|
new Player(); // Create a GUI CD player
|
|
} // 33
|
|
// 34
|
|
public Player() // 35
|
|
{ // 36
|
|
super("Jcd"); // 37
|
|
// Init CDROM hardware // 38
|
|
String device = "/dev/cdrom"; // 39
|
|
String module =
|
|
"native/ix86-Linux/Jcd_Drive.so"; // 40
|
|
int flags = 0; // 41
|
|
// 42
|
|
cdPlayer= new SmartDrive(device,module,flags);
|
|
// Init GUI // 44
|
|
setResizable(true); // 45
|
|
setMenuBar(new MenuBar()); // 46
|
|
getMenuBar().add(createFileMenu()); // 47
|
|
display = new Display(cdPlayer); // 48
|
|
controls = new Controls(cdPlayer); // 49
|
|
addCenter(display); // 50
|
|
addCenter(controls); // 51
|
|
// Handle close requests.
|
|
addWindowListener(new DoClose()); // 52
|
|
pack(); // Resize to fit. // 53
|
|
show(); // Let the user have it! // 54
|
|
// Now everyone is ready...// 55
|
|
// ...start processing events
|
|
cdPlayer.monitor.start(); // 56
|
|
} // 57
|
|
// 58
|
|
public void actionPerformed(ActionEvent event)
|
|
{ // 60
|
|
Object source = event.getSource(); // 61
|
|
if (source == fileProgramItem) { // 62
|
|
if (program == null || !program.isShowing())
|
|
program = new Program(cdPlayer); // 64
|
|
} // 65
|
|
else if (source == fileExitItem) // 66
|
|
System.exit(0); // 67
|
|
} // 68
|
|
// 69
|
|
private Menu createFileMenu() // 70
|
|
{ // 71
|
|
Menu fileMenu = new Menu("File"); // 72
|
|
fileMenu.add(fileProgramItem); // 73
|
|
fileMenu.addSeparator(); // 74
|
|
fileMenu.add(fileExitItem); // 75
|
|
fileProgramItem.addActionListener(this); // 76
|
|
fileExitItem.addActionListener(this); // 77
|
|
return fileMenu; // 78
|
|
} // 79
|
|
// 80
|
|
private class DoClose extends WindowAdapter {
|
|
public void windowClosing(WindowEvent e) {
|
|
System.exit(0); // 83
|
|
} // 84
|
|
} // 85
|
|
} // 86
|