📄 cdrecordconfiguration.java
字号:
package jcdwriter.model;import java.util.ArrayList;import java.util.Vector;import java.io.*;public class CDRECORDConfiguration implements java.io.Serializable { private String CDRECORDConfiguration = "cdrecord"; public boolean force = false; public boolean dummy = false; public boolean dao = false; public boolean multi = false; public boolean msinfo = false; public boolean fix = false; public boolean nofix = true; public boolean waiti = false; public boolean load = false; public boolean eject = false; public int speed = 2; public String blank = "fast"; /* all fast track unreserve trtail unclose session */ public int fs = -1; /* -1 means not set */ public SCSIDevice recorder = null; public int timeout=-1; /* -1 means not set */ public String driver; public String driveropts; public boolean ignsize = false; public boolean noclose = false; public String mcn; public boolean swab = false; public boolean data = true; public boolean mode2 = false; public boolean pad = false; public boolean overburn = false; public Vector recordingDevices; private String operation = "blank"; // "blank" or "record" public int progressValue = 30; private String commandLocation = "/usr/bin/cdrecord"; private String trueAsString = "true"; private String falseAsString = "false"; public String blankDiskCommandString(String eraseMethod) { /* eraseMethod can be "fast", "disk", "all" as defined in cdrecord manpages. If eraseMethod is not one of the recognized types, "fast" will be used. */ ArrayList validEraseTypes = new ArrayList(); validEraseTypes.add("all"); validEraseTypes.add("fast"); validEraseTypes.add("disk"); validEraseTypes.add("full"); if(eraseMethod == null || !(validEraseTypes.contains(eraseMethod))) eraseMethod = "fast"; if(isConfigured()) return cdrecordExecutable() + " dev=" + recorder.deviceString() + " blank=" + eraseMethod; else return null; } public Vector allRecordingDevices() { return recordingDevices; } public int numberOfRecordingDevices(){ if (recordingDevices == null){ return 0; } else { return (recordingDevices.size()); } } public String cdrecordExecutable() { return (commandLocation); } public void cdrecordExecutable(String execString) { commandLocation = execString; } public Object[] arguments() { if(!isConfigured()) System.out.println("cdrecord not configured !"); Object[] args = {"-v", "-pad", "dev=", recorder.deviceString(), " -"}; return args; } public boolean isConfigured() { return (recorder != null); } public SCSIDevice getRecorder() { return recorder; } public void setSelectedDevice(SCSIDevice dev) { recorder = dev; } public String writeCDFromImageCommandStrUsing(String isoFileName){ StringBuffer cmdStr = new StringBuffer(); cmdStr.append(commandLocation); cmdStr.append(" -v "); cmdStr.append("dev="); if (recorder == null) cmdStr.append("0,1,0"); else cmdStr.append(recorder.deviceString()); cmdStr.append(' '); cmdStr.append("speed="); cmdStr.append("2"); cmdStr.append(' '); if (dummy == true) cmdStr.append("--dummy "); if (eject == true) cmdStr.append("--eject "); // cmdStr.append("--nofix "); if (overburn == true) cmdStr.append("--overburn "); if (isoFileName != null) cmdStr.append(isoFileName); else cmdStr.append(" -"); System.out.println(cmdStr.toString()); return cmdStr.toString(); } public String[] recordCommand(){ Vector cmdBits = new Vector(); if(false){ cmdBits.add(cdrecordExecutable()); cmdBits.add("dev="); // cmdBits.add(selectedRecorder.deviceParamString()); } else { cmdBits.add("ping"); cmdBits.add("-n"); cmdBits.add("5"); cmdBits.add("localhost"); } String[] cmd = new String[cmdBits.size()]; for (int i = 0; i < cmd.length; i++) { cmd[i] = (String)cmdBits.get(i); } return (cmd); } public String[] scanbusCommand(){ Vector cmdBits = new Vector();/* if (System.getProperty("os.name").indexOf("Windows") < 0) cmdBits.add("sh"); */ cmdBits.add(cdrecordExecutable()); cmdBits.add(" --scanbus"); String[] cmd = new String[cmdBits.size()]; for (int i = 0; i < cmd.length; i++) { System.out.println(cmdBits.get(i)); cmd[i] = (String)cmdBits.get(i); } return (cmd); } public String scanbusCommandString(){ if (System.getProperty("os.name").indexOf("Windows") < 0) return (cdrecordExecutable() + " -scanbus"); else return (cdrecordExecutable() + " -scanbus"); } public String[] scanbusCommandArray(){ String[] cmd = new String[2]; cmd[0] = cdrecordExecutable(); cmd[1] = "--scanbus"; return cmd; } public CDRECORDConfiguration copyFrom(CDRECORDConfiguration config) { force = config.force; dummy = config.dummy; dao = config.dao; multi = config.multi; msinfo = config.msinfo; fix = config.fix; nofix = config.nofix; waiti = config.waiti; load = config.load; eject = config.eject; speed = config.speed; blank = config.blank; fs = config.fs; recorder = config.recorder; timeout=config.timeout; driver = config.driver; driveropts = config.driveropts; ignsize = config.ignsize; noclose = config.noclose; mcn = config.mcn; swab = config.swab; data = config.data; mode2 = config.mode2; pad = config.pad; recordingDevices = config.recordingDevices; commandLocation = config.commandLocation; return this; } public Vector scanbus(){ int exitVal = -1; java.io.InputStream processOutputStream, processErrorStream; String[] command = scanbusCommand(); String commandString = null; CDRECORDOutputAnalyzer outputAnalyzer = new CDRECORDOutputAnalyzer(); if (command == null && (commandString == null)) return null; Runtime runtime = Runtime.getRuntime(); final StringBuffer sb = new StringBuffer(); try { final Process p = runtime.exec(command); InputStream is = p.getInputStream(); InputStream err = p.getInputStream(); new Thread(new Runnable() { public void run() { try { BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()),5000); String a = ""; while (( a = in.readLine()) != null) { sb.append(a); System.out.println(a); //try{Thread.sleep(1);}catch(InterruptedException ie) {System.out.println(ie);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -