/*
This file is part of jpcsp.
Jpcsp is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Jpcsp is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Jpcsp. If not, see <http://www.gnu.org/licenses/>.
*/
package jpcsp.GUI;
import jpcsp.log.LogWindow;
import jpcsp.settings.Settings;
import jpcsp.Emulator;
import jpcsp.MainGUI;
import java.io.File;
import java.io.RandomAccessFile;
import javax.swing.JFileChooser;
import jpcsp.WindowPropSaver;
import jpcsp.util.Constants;
public class LogGUI extends javax.swing.JFrame {
private static final long serialVersionUID = -732715495873159718L;
private static final String LB = System.getProperty("line.separator");
private MainGUI mainWindow = null;
private String LogSettingsPath;
public LogGUI(MainGUI main) {
this.mainWindow = main;
setLocationRelativeTo(main);
initComponents();
setLogSettingsFile();
RefreshWindow();
WindowPropSaver.loadWindowProperties(this);
}
public void setMainGUI(MainGUI mainWindow) {
this.mainWindow = mainWindow;
}
private void setLogSettingsFile() {
LogSettingsPath = xmlpath.getText();
LogWindow.setConfXMLFile(LogSettingsPath);
printLogSettingsFile();
}
private void printLogSettingsFile() {
try {
RandomAccessFile raf = new RandomAccessFile(LogSettingsPath, "r");
while (raf.getFilePointer() < raf.length()) {
settingsArea.append(raf.readLine() + LB);
}
raf.close();
} catch (Exception e) {
settingsArea.setEnabled(false);
}
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
buttonGroup1 = new javax.swing.ButtonGroup();
jButtonOK = new javax.swing.JButton();
jTabbedPane1 = new javax.swing.JTabbedPane();
LoggerGeneralPanel = new javax.swing.JPanel();
openLogWindowCheck = new javax.swing.JCheckBox();
snapConsoleCheck = new javax.swing.JCheckBox();
logKeywordField = new javax.swing.JTextField();
logByKeywordCheck = new javax.swing.JCheckBox();
LoggerSettingsPanel = new javax.swing.JPanel();
jScrollPane1 = new javax.swing.JScrollPane();
settingsArea = new javax.swing.JTextArea();
fileButton = new javax.swing.JButton();
xmlpath = new javax.swing.JTextField();
lblSettingsPath = new javax.swing.JLabel();
outputToHTML = new javax.swing.JCheckBox();
outputToText = new javax.swing.JCheckBox();
lblOutputFile = new javax.swing.JLabel();
logoutpath = new javax.swing.JTextField();
lblMaxFileSize = new javax.swing.JLabel();
maxSizeSpinner = new javax.swing.JSpinner();
splitFilesBox = new javax.swing.JCheckBox();
LoggerAdvancedPanel = new javax.swing.JPanel();
rbGeneralDebug = new javax.swing.JRadioButton();
rbCPUDebug = new javax.swing.JRadioButton();
rbGPUDebug = new javax.swing.JRadioButton();
rbCoreDebug = new javax.swing.JRadioButton();
rbFullDebug = new javax.swing.JRadioButton();
rbCustom = new javax.swing.JRadioButton();
lblLogMethod = new javax.swing.JLabel();
interruptMgrBox = new javax.swing.JCheckBox();
ioFileMgrBox = new javax.swing.JCheckBox();
kernelLibBox = new javax.swing.JCheckBox();
loadCoreBox = new javax.swing.JCheckBox();
loadExecBox = new javax.swing.JCheckBox();
moduleMgrBox = new javax.swing.JCheckBox();
stdioBox = new javax.swing.JCheckBox();
sysMemKernelBox = new javax.swing.JCheckBox();
sysMemUserBox = new javax.swing.JCheckBox();
threadManBox = new javax.swing.JCheckBox();
utilsBox = new javax.swing.JCheckBox();
atracBox = new javax.swing.JCheckBox();
audioBox = new javax.swing.JCheckBox();
ctrlBox = new javax.swing.JCheckBox();
defltBox = new javax.swing.JCheckBox();
displayBox = new javax.swing.JCheckBox();
dmacBox = new javax.swing.JCheckBox();
fontBox = new javax.swing.JCheckBox();
geUserBox = new javax.swing.JCheckBox();
hprmBox = new javax.swing.JCheckBox();
imposeBox = new javax.swing.JCheckBox();
mp3Box = new javax.swing.JCheckBox();
mpegBox = new javax.swing.JCheckBox();
powerBox = new javax.swing.JCheckBox();
psmfBox = new javax.swing.JCheckBox();
psmfPlayerBox = new javax.swing.JCheckBox();
rtcBox = new javax.swing.JCheckBox();
sasBox = new javax.swing.JCheckBox();
suspendBox = new javax.swing.JCheckBox();
umdBox = new javax.swing.JCheckBox();
utilityBox = new javax.swing.JCheckBox();
cpuBox = new javax.swing.JCheckBox();
gpuBox = new javax.swing.JCheckBox();
compilerBox = new javax.swing.JCheckBox();
memBox = new javax.swing.JCheckBox();
emuBox = new javax.swing.JCheckBox();
jSeparator1 = new javax.swing.JSeparator();
lblCustom = new javax.swing.JLabel();
loaderBox = new javax.swing.JCheckBox();
runtimeBox = new javax.swing.JCheckBox();
stdoutBox = new javax.swing.JCheckBox();
stderrBox = new javax.swing.JCheckBox();
jSeparator2 = new javax.swing.JSeparator();
saveButton = new javax.swing.JButton();
jButtonCancel = new jpcsp.GUI.CancelButton();
java.util.ResourceBundle bundle = java.util.ResourceBundle.getBundle("jpcsp/languages/jpcsp"); // NOI18N
setTitle(bundle.getString("LogGUI.title")); // NOI18N
setResizable(false);
jButtonOK.setText(bundle.getString("OkButton.text")); // NOI18N
jButtonOK.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButtonOKActionPerformed(evt);
}
});
openLogWindowCheck.setText(bundle.getString("LogGUI.openLogWindowCheck.text")); // NOI18N
snapConsoleCheck.setText(bundle.getString("LogGUI.snapConsoleCheck.text")); // NOI18N
logKeywordField.setEditable(false);
logKeywordField.setText("LOG_ALL"); // NOI18N
logByKeywordCheck.setText(bundle.getString("LogGUI.logByKeywordCheck.text")); // NOI18N
logByKeywordCheck.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
logByKeywordCheckActionPerformed(evt);
}
});
javax.swing.GroupLayout LoggerGeneralPanelLayout = new javax.swing.GroupLayout(LoggerGeneralPanel);
LoggerGeneralPanel.setLayout(LoggerGeneralPanelLayout);
LoggerGeneralPanelLayout.setHorizontalGroup(
LoggerGeneralPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(LoggerGeneralPanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(LoggerGeneralPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(LoggerGeneralPanelLayout.createSequentialGroup()
.addComponent(logByKeywordCheck)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(logKeywordField, javax.swing.GroupLayout.PREFERRED_SIZE, 200, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 306, Short.MAX_VALUE))
.addComponent(openLogWindowCheck, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(snapConsoleCheck, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
LoggerGeneralPanelLayout.setVerticalGroup(
LoggerGeneralPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(LoggerGeneralPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(openLogWindowCheck)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(snapConsoleCheck)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(LoggerGeneralPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(logByKeywordCheck)
.addComponent(logKeywordField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(248, Short.MAX_VALUE))
);
jTabbedPane1.addTab(bundle.getString("LogGUI.LoggerGeneralPanel.TabConstraints.tabTitle"), LoggerGeneralPanel); // NOI18N
settingsArea.setEditable(false);
settingsArea.setColumns(20);
settingsArea.setRows(5);
jScrollPane1.setViewportView(settingsArea);
fileButton.setText("..."); // NOI18N
fileButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
fileButtonActionPerformed(evt);
}
});
xmlpath.setEditable(false);
xmlpath.setText("LogSettings.xml"); // NOI18N
lblSettingsPath.setText(bundle.getString("LogGUI.lblSettingsPath.text")); // NOI18N
outputToHTML.setSelected(true);
outputToHTML.setText(bundle.getString("LogGUI.outputToHTML.text")); // NOI18N
outputToText.setText(bundle.getString("LogGUI.outputToText.text")); // NOI18N
lblOutputFile.setText(bundle.getString("LogGUI.lblOutputFile.text")); // NOI18N
logoutpath.setText("log"); // NOI18N
lblMaxFileSize.setText(bundle.getString("LogGUI.lblMaxFileSize.text")); // NOI18N
maxSizeSpinner.setModel(new javax.swing.SpinnerNumberModel(0, 0, 100000, 1));
maxSizeSpinner.setEnabled(splitFilesBox.isSelected());
splitFilesBox.setText(bundle.getString("LogGUI.splitFilesBox.text")); // NOI18N
splitFilesBox.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
splitFilesBoxActionPerformed(evt);
}
});
javax.swing.GroupLayout LoggerSettingsPanelLayout = new javax.swing.GroupLayout(LoggerSettingsPanel);
LoggerSettingsPanel.setLayout(LoggerSettingsPanelLayout);
LoggerSettingsPanelLayout.setHorizontalGroup(
LoggerSettingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(LoggerSettingsPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 418, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(LoggerSettingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(outputToText, javax.swing.GroupLayout.DEFAULT_SIZE, 369, Short.MAX_VALUE)
.addComponent(outputToHTML, javax.swing.GroupLayout.DEFAULT_SIZE, 369, Short.MAX_VALUE)
.addGroup(LoggerSettingsPanelLayout.createSequentialGroup()
.addGroup(LoggerSettingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lblOutputFile)
.addComponent(lblMaxFileSize)
.addComponent(lblSettingsPath))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(LoggerSettingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(LoggerSettingsPanelLayout.createSequentialGroup()
.addComponent(xmlpath)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(fileButton, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(LoggerSettingsPanelLayout.createSequentialGroup()
.addComponent(maxSizeSpinner)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(splitFilesBox))
.addComponent(logoutpath))))
.addContainerGap())
);
LoggerSettingsPanelLayout.setVerticalGroup(
LoggerSettingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, LoggerSettingsPanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(LoggerSettingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, LoggerSettingsPanelLayout.createSequentialGroup()
.addComponent(outputToHTML)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(outputToText)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(LoggerSettingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblOutputFile)
.addComponent(logoutpath, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(LoggerSettingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblMaxFileSize)
.addComponent(splitFilesBox)
.addComponent(maxSizeSpinner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 162, Short.MAX_VALUE)
.addGroup(LoggerSettingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblSettingsPath)
.addComponent(xmlpath, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(fileButton)))
.addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING))
.addContainerGap())
);
jTabbedPane1.addTab(bundle.getString("LogGUI.LoggerSettingsPanel.TabConstraints.tabTitle"), LoggerSettingsPanel); // NOI18N
LoggerAdvancedPanel.setEnabled(rbCustom.isSelected());
buttonGroup1.add(rbGeneralDebug);
rbGeneralDebug.setSelected(true);
rbGeneralDebug.setText(bundle.getString("LogGUI.rbGeneralDebug.text")); // NOI18N
rbGeneralDebug.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
rbGeneralDebugActionPerformed(evt);
}
});
buttonGroup1.add(rbCPUDebug);
rbCPUDebug.setText(bundle.getString("LogGUI.rbCPUDebug.text")); // NOI18N
rbCPUDebug.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
rbCPUDebugActionPerformed(evt);
}
});
buttonGroup1.add(rbGPUDebug);
rbGPUDebug.setText(bundle.getString("LogGUI.rbGPUDebug.text")); // NOI18N
rbGPUDebug.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
rbGPUDebugActionPerformed(evt);
}
});
buttonGroup1.add(rbCoreDebug);
rbCoreDebug.setText(bundle.getString("LogGUI.rbCoreDebug.text")); // NOI18N
rbCoreDebug.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
rbCoreDebugActionPerformed(evt);
}
});
buttonGroup1.add(rbFullDebug);
rbFullDebug.setText(bundle.getString("LogGUI.rbFullDebug.text")); // NOI18N
rbFullDebug.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
rbFullDebugActionPerformed(evt);
}
});
buttonGroup1.add(rbCustom);
rbCustom.setText(bundle.getString("LogGUI.rbCustom.text")); // NOI18N
rbCustom.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
rbCustomActionPerformed(evt);
}
});
lblLogMethod.setText(bundle.getString("LogGUI.lblLogMethod.text")); // NOI18N
interruptMgrBox.setText("InterruptManager"); // NOI18N
interruptMgrBox.setEnabled(rbCustom.isSelected());
ioFileMgrBox.setText("IoFileMgrForUser"); // NOI18N
ioFileMgrBox.setEnabled(rbCustom.isSelected());
kernelLibBox.setText("Kernel_Library"); // NOI18N
kernelLibBox.setEnabled(rbCustom.isSelected());
loadCoreBox.setText("LoadCoreForKernel"); // NOI18N
loadCoreBox.setEnabled(rbCustom.isSelected());
loadExecBox.setText("LoadExecForUser"); // NOI18N
loadExecBox.setEnabled(rbCustom.isSelected());
moduleMgrBox.setText("ModuleMgrForUser"); // NOI18N
moduleMgrBox.setEnabled(rbCustom.isSelected());
stdioBox.setText("StdioForUser"); // NOI18N
stdioBox.setEnabled(rbCustom.isSelected());
sysMemKernelBox.setText("SysMemForKernel"); // NOI18N
sysMemKernelBox.setEnabled(rbCustom.isSelected());
sysMemUserBox.setText("SysMemUserForUser"); // NOI18N
sysMemUserBox.setEnabled(rbCustom.isSelected());
threadManBox.setText("ThreadManForUser"); // NOI18N
threadManBox.setEnabled(rbCustom.isSelected());
utilsBox.setText("UtilsForUser"); // NOI18N
utilsBox.setEnabled(rbCustom.isSelected());
atracBox.setText("sceAtrac3plus"); // NOI18N
atracBox.setEnabled(rbCustom.isSelected());
audioBox.setText("sceAudio"); // NOI18N
audioBox.setEnabled(rbCustom.isSelected());
ctrlBox.setText("sceCtrl"); // NOI18N
ctrlBox.setEnabled(rbCustom.isSelected());
defltBox.setText("sceDeflt"); // NOI18N
defltBox.setEnabled(rbCustom.isSelected());
displayBox.setText("sceDisplay"); // NOI18N
displayBox.setEnabled(rbCustom.isSelected());
dmacBox.setText("sceDmac"); // NOI18N
dmacBox.setEnabled(rbCustom.isSelected());
fontBox.setText("sceFont"); // NOI18N
fontBox.setEnabled(rbCustom.isSelected());
geUserBox.setText("sceGe_user"); // NOI18N
geUserBox.setEnabled(rbCustom.isSelected());
hprmBox.setText("sceHprm"); // NOI18N
hprmBox.setEnabled(rbCustom.isSelected());
imposeBox.setText("sceImpose"); // NOI18N
imposeBox.setEnabled(rbCustom.isSelected());
mp3Box.setText("sceMp3"); // NOI18N
mp3Box.setEnabled(rbCustom.isSelected());
mpegBox.setText("sceMpeg"); // NOI18N
mpegBox.setEnabled(rbCustom.isSelected());
powerBox.setText("scePower"); // NOI18N
powerBox.setEnabled(rbCustom.isSelected());
psmfBox.setText("scePsmf"); // NOI18N
psmfBox.setEnabled(rbCustom.isSelected());
psmfPlayerBox.setText("scePsmfPlayer"); // NOI18N
psmfPlayerBox.setEnabled(rbCustom.isSelected());
rtcBox.setText("sceRtc"); // NOI18N
rtcBox.setEnabled(rbCustom.isSelected());
sasBox.setText("sceSasCore"); // NOI18N
sasBox.setEnabled(rbCustom.isSelected());
suspendBox.setText("sceSuspendForUser"); // NOI18N
suspendBox.setEnabled(rbCustom.isSelected());
umdBox.setText("sceUmdUser"); // NOI18N
umdBox.setEnabled(rbCustom.isSelected());
utilityBox.setText("sceUtility"); // NOI18N
utilityBox.setEnabled(rbCustom.isSelected());
cpuBox.setText("CPU"); // NOI18N
cpuBox.setEnabled(rbCustom.isSelected());
gpuBox.setText("GPU"); // NOI18N
gpuBox.setEnabled(rbCustom.isSelected());
compilerBox.setText("Compiler"); // NOI18N
compilerBox.setEnabled(rbCustom.isSelected());
memBox.setText("Memory"); // NOI18N
memBox.setEnabled(rbCustom.isSelected());
emuBox.setText("Emulator"); // NOI18N
emuBox.setEnabled(rbCustom.isSelected());
lblCustom.setText(bundle.getString("LogGUI.lblCustom.text")); // NOI18N
loaderBox.setText("Loader"); // NOI18N
loaderBox.setEnabled(rbCustom.isSelected());
runtimeBox.setText("Runtime"); // NOI18N
runtimeBox.setEnabled(rbCustom.isSelected());
stdoutBox.setText("STDOUT"); // NOI18N
stdoutBox.setEnabled(rbCustom.isSelected());
stderrBox.setText("STDERR"); // NOI18N
stderrBox.setEnabled(rbCustom.isSelected());
javax.swing.GroupLayout LoggerAdvancedPanelLayout = new javax.swing.GroupLayout(LoggerAdvancedPanel);
LoggerAdvancedPanel.setLayout(LoggerAdvancedPanelLayout);
LoggerAdvancedPanelLayout.setHorizontalGroup(
LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, LoggerAdvancedPanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(rbCoreDebug, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(rbFullDebug, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(rbCustom, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(rbGPUDebug, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(lblLogMethod, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(rbCPUDebug, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(rbGeneralDebug, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(LoggerAdvancedPanelLayout.createSequentialGroup()
.addComponent(stdoutBox)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(stderrBox))
.addComponent(jSeparator2)
.addGroup(LoggerAdvancedPanelLayout.createSequentialGroup()
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(LoggerAdvancedPanelLayout.createSequentialGroup()
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(loadExecBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(sysMemKernelBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(dmacBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(audioBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(imposeBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(psmfBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(suspendBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))
.addGroup(LoggerAdvancedPanelLayout.createSequentialGroup()
.addComponent(interruptMgrBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)))
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(ioFileMgrBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(moduleMgrBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(sysMemUserBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(ctrlBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(fontBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(mp3Box, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(psmfPlayerBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(umdBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(LoggerAdvancedPanelLayout.createSequentialGroup()
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(geUserBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(defltBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(threadManBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(kernelLibBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(utilsBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(mpegBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(rtcBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(sasBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(powerBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(hprmBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(displayBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(atracBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(loadCoreBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(stdioBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addComponent(utilityBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addGroup(LoggerAdvancedPanelLayout.createSequentialGroup()
.addComponent(cpuBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(gpuBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(loaderBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(runtimeBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(compilerBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(memBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(emuBox, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addComponent(lblCustom, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.TRAILING))
.addContainerGap())
);
LoggerAdvancedPanelLayout.setVerticalGroup(
LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(LoggerAdvancedPanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(LoggerAdvancedPanelLayout.createSequentialGroup()
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(LoggerAdvancedPanelLayout.createSequentialGroup()
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblCustom)
.addComponent(lblLogMethod, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(cpuBox)
.addComponent(emuBox)
.addComponent(memBox)
.addComponent(compilerBox)
.addComponent(runtimeBox)
.addComponent(loaderBox)
.addComponent(gpuBox))
.addGap(5, 5, 5)
.addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(kernelLibBox)
.addComponent(loadCoreBox)))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(interruptMgrBox)
.addComponent(ioFileMgrBox)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(moduleMgrBox)
.addComponent(threadManBox)
.addComponent(stdioBox)
.addComponent(loadExecBox))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(sysMemUserBox)
.addComponent(utilsBox)
.addComponent(atracBox)
.addComponent(sysMemKernelBox))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(displayBox)
.addComponent(ctrlBox)
.addComponent(defltBox)
.addComponent(audioBox))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(fontBox)
.addComponent(geUserBox)
.addComponent(hprmBox)
.addComponent(dmacBox))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(imposeBox)
.addComponent(mp3Box)
.addComponent(mpegBox)
.addComponent(powerBox))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(psmfBox)
.addComponent(psmfPlayerBox)
.addComponent(rtcBox)
.addComponent(sasBox))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(suspendBox)
.addComponent(umdBox))
.addComponent(utilityBox)))
.addGroup(LoggerAdvancedPanelLayout.createSequentialGroup()
.addGap(25, 25, 25)
.addComponent(rbGeneralDebug)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(rbCPUDebug)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(rbGPUDebug)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(rbCoreDebug)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(rbFullDebug)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(rbCustom)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(LoggerAdvancedPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(stdoutBox)
.addComponent(stderrBox))
.addContainerGap(36, Short.MAX_VALUE))
);
jTabbedPane1.addTab(bundle.getString("LogGUI.LoggerAdvancedPanel.TabConstraints.tabTitle"), LoggerAdvancedPanel); // NOI18N
saveButton.setText(bundle.getString("LogGUI.saveButton.text")); // NOI18N
saveButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
saveButtonActionPerformed(evt);
}
});
jButtonCancel.setText(bundle.getString("CancelButton.text")); // NOI18N
jButtonCancel.setParent(this);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jTabbedPane1)
.addGroup(layout.createSequentialGroup()
.addComponent(saveButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jButtonOK, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jButtonCancel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(jTabbedPane1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jButtonOK)
.addComponent(saveButton)
.addComponent(jButtonCancel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
pack();
}// </editor-fold>//GEN-END:initComponents
final public void RefreshWindow() {
openLogWindowCheck.setSelected(Settings.getInstance().readBool("gui.openLogwindow"));
snapConsoleCheck.setSelected(Settings.getInstance().readBool("gui.snapLogwindow"));
String keyword = Settings.getInstance().readString("log.keyword");
if (!keyword.equals("LOG_ALL")) {
logKeywordField.setText(keyword);
logByKeywordCheck.setSelected(true);
} else {
logKeywordField.setText("LOG_ALL");
logByKeywordCheck.setSelected(false);
}
}
private void setCustom(boolean useCustom) {
interruptMgrBox.setEnabled(useCustom);
ioFileMgrBox.setEnabled(useCustom);
kernelLibBox.setEnabled(useCustom);
loadCoreBox.setEnabled(useCustom);
loadExecBox.setEnabled(useCustom);
moduleMgrBox.setEnabled(useCustom);
stdioBox.setEnabled(useCustom);
sysMemKernelBox.setEnabled(useCustom);
sysMemUserBox.setEnabled(useCustom);
threadManBox.setEnabled(useCustom);
utilsBox.setEnabled(useCustom);
atracBox.setEnabled(useCustom);
audioBox.setEnabled(useCustom);
ctrlBox.setEnabled(useCustom);
defltBox.setEnabled(useCustom);
displayBox.setEnabled(useCustom);
dmacBox.setEnabled(useCustom);
fontBox.setEnabled(useCustom);
geUserBox.setEnabled(useCustom);
hprmBox.setEnabled(useCustom);
imposeBox.setEnabled(useCustom);
mp3Box.setEnabled(useCustom);
mpegBox.setEnabled(useCustom);
powerBox.setEnabled(useCustom);
psmfBox.setEnabled(useCustom);
psmfPlayerBox.setEnabled(useCustom);
rtcBox.setEnabled(useCustom);
sasBox.setEnabled(useCustom);
suspendBox.setEnabled(useCustom);
umdBox.setEnabled(useCustom);
utilityBox.setEnabled(useCustom);
cpuBox.setEnabled(useCustom);
gpuBox.setEnabled(useCustom);
compilerBox.setEnabled(useCustom);
memBox.setEnabled(useCustom);
emuBox.setEnabled(useCustom);
loaderBox.setEnabled(useCustom);
runtimeBox.setEnabled(useCustom);
stdoutBox.setEnabled(useCustom);
stderrBox.setEnabled(useCustom);
}
private String selectLoggers() {
String loggers = "";
if (rbGeneralDebug.isSelected()) {
loggers += LB + "<logger name='cpu' />" + LB
+ "<logger name='hle' />" + LB
+ "<logger name='memory' />" + LB
+ "<logger name='ge' />" + LB
+ "<logger name='emu' />" + LB
+ "<logger name='compiler' > <level value='off' /> </logger>" + LB
+ "<logger name='runtime' > <level value='off' /> </logger>" + LB
+ "<logger name='loader' > <level value='off' /> </logger>" + LB
+ "<logger name='stdout' />" + LB
+ "<logger name='stderr' />" + LB
+ "<!-- Output profiler info to 'profiler.txt' -->" + LB
+ "<logger name='profiler' additivity='false'>" + LB
+ "<level value='info' />" + LB
+ "<appender-ref ref='ProfilerTxtAppender' />" + LB
+ "</logger>" + LB;
} else if (rbCPUDebug.isSelected()) {
loggers += LB + "<logger name='cpu' />" + LB
+ "<logger name='hle' > <level value='off' /> </logger>" + LB
+ "<logger name='memory' > <level value='off' /> </logger>" + LB
+ "<logger name='ge' > <level value='off' /> </logger>" + LB
+ "<logger name='emu' > <level value='off' /> </logger>" + LB
+ "<logger name='compiler' />" + LB
+ "<logger name='runtime' > <level value='off' /> </logger>" + LB
+ "<logger name='loader' > <level value='off' /> </logger>" + LB
+ "<logger name='stdout' />" + LB
+ "<logger name='stderr' />" + LB
+ "<!-- Output profiler info to 'profiler.txt' -->" + LB
+ "<logger name='profiler' additivity='false'>" + LB
+ "<level value='info' />" + LB
+ "<appender-ref ref='ProfilerTxtAppender' />" + LB
+ "</logger>" + LB;
} else if (rbGPUDebug.isSelected()) {
loggers += LB + "<logger name='cpu' > <level value='off' /> </logger>" + LB
+ "<logger name='hle' > <level value='off' /> </logger>" + LB
+ "<logger name='memory' > <level value='off' /> </logger>" + LB
+ "<logger name='ge' />" + LB
+ "<logger name='emu' > <level value='off' /> </logger>" + LB
+ "<logger name='compiler' > <level value='off' /> </logger>" + LB
+ "<logger name='runtime' > <level value='off' /> </logger>" + LB
+ "<logger name='loader' > <level value='off' /> </logger>" + LB
+ "<logger name='stdout' />" + LB
+ "<logger name='stderr' />" + LB
+ "<!-- Output profiler info to 'profiler.txt' -->" + LB
+ "<logger name='profiler' additivity='false'>" + LB
+ "<level value='info' />" + LB
+ "<appender-ref ref='ProfilerTxtAppender' />" + LB
+ "</logger>" + LB;
} else if (rbCoreDebug.isSelected()) {
loggers += LB + "<logger name='cpu' > <level value='off' /> </logger>" + LB
+ "<logger name='hle' > <level value='off' /> </logger>" + LB
+ "<logger name='memory' > <level value='off' /> </logger>" + LB
+ "<logger name='ge' > <level value='off' /> </logger>" + LB
+ "<logger name='emu' />" + LB
+ "<logger name='compiler' />" + LB
+ "<logger name='runtime' />" + LB
+ "<logger name='loader' />" + LB
+ "<logger name='stdout' > <level value='off' /> </logger>" + LB
+ "<logger name='stderr' > <level value='off' /> </logger>" + LB
+ "<!-- Output profiler info to 'profiler.txt' -->" + LB
+ "<logger name='profiler' additivity='false'>" + LB
+ "<level value='info' />" + LB
+ "<appender-ref ref='ProfilerTxtAppender' />" + LB
+ "</logger>" + LB;
} else if (rbFullDebug.isSelected()) {
loggers += LB + "<logger name='cpu' />" + LB
+ "<logger name='hle' />" + LB
+ "<logger name='memory' />" + LB
+ "<logger name='ge' />" + LB
+ "<logger name='emu' />" + LB
+ "<logger name='compiler' />" + LB
+ "<logger name='runtime' />" + LB
+ "<logger name='loader' />" + LB
+ "<logger name='stdout' />" + LB
+ "<logger name='stderr' />" + LB
+ "<!-- Output profiler info to 'profiler.txt' -->" + LB
+ "<logger name='profiler' additivity='false'>" + LB
+ "<level value='info' />" + LB
+ "<appender-ref ref='ProfilerTxtAppender' />" + LB
+ "</logger>" + LB;
} else if (rbCustom.isSelected()) {
if (interruptMgrBox.isSelected()) {
loggers += LB + "<logger name='hle.InterruptManager' />" + LB;
} else {
loggers += LB + "<logger name='hle.InterruptManager' > <level value='off' /> </logger>" + LB;
}
if (ioFileMgrBox.isSelected()) {
loggers += "<logger name='hle.IoFileMgrForUser' />" + LB;
} else {
loggers += "<logger name='hle.IoFileMgrForUser' > <level value='off' /> </logger>" + LB;
}
if (kernelLibBox.isSelected()) {
loggers += "<logger name='hle.Kernel_Library' />" + LB;
} else {
loggers += "<logger name='hle.Kernel_Library' > <level value='off' /> </logger>" + LB;
}
if (loadCoreBox.isSelected()) {
loggers += "<logger name='hle.LoadCoreForKernel' />" + LB;
} else {
loggers += "<logger name='hle.LoadCoreForKernel' > <level value='off' /> </logger>" + LB;
}
if (loadExecBox.isSelected()) {
loggers += "<logger name='hle.LoadExecForUser' />" + LB;
} else {
loggers += "<logger name='hle.LoadExecForUser' > <level value='off' /> </logger>" + LB;
}
if (moduleMgrBox.isSelected()) {
loggers += "<logger name='hle.ModuleMgrForUser' />" + LB;
} else {
loggers += "<logger name='hle.ModuleMgrForUser' > <level value='off' /> </logger>" + LB;
}
if (stdioBox.isSelected()) {
loggers += "<logger name='hle.StdioForUser' />" + LB;
} else {
loggers += "<logger name='hle.StdioForUser' > <level value='off' /> </logger>" + LB;
}
if (sysMemKernelBox.isSelected()) {
loggers += "<logger name='hle.SysMemForKernel' />" + LB;
} else {
loggers += "<logger name='hle.SysMemForKernel' > <level value='off' /> </logger>" + LB;
}
if (sysMemUserBox.isSelected()) {
loggers += "<logger name='hle.SysMemUserForUser' />" + LB;
} else {
loggers += "<logger name='hle.SysMemUserForUser' > <level value='off' /> </logger>" + LB;
}
if (threadManBox.isSelected()) {
loggers += "<logger name='hle.ThreadManForUser' />" + LB;
} else {
loggers += "<logger name='hle.ThreadManForUser' > <level value='off' /> </logger>" + LB;
}
if (utilsBox.isSelected()) {
loggers += "<logger name='hle.UtilsForUser' />" + LB;
} else {
loggers += "<logger name='hle.UtilsForUser' > <level value='off' /> </logger>" + LB;
}
if (atracBox.isSelected()) {
loggers += "<logger name='hle.sceAtrac3plus' />" + LB;
} else {
loggers += "<logger name='hle.sceAtrac3plus' > <level value='off' /> </logger>" + LB;
}
if (audioBox.isSelected()) {
loggers += "<logger name='hle.sceAudio' />" + LB;
} else {
loggers += "<logger name='hle.sceAudio' > <level value='off' /> </logger>" + LB;
}
if (ctrlBox.isSelected()) {
loggers += "<logger name='hle.sceCtrl' />" + LB;
} else {
loggers += "<logger name='hle.sceCtrl' > <level value='off' /> </logger>" + LB;
}
if (defltBox.isSelected()) {
loggers += "<logger name='hle.sceDeflt' />" + LB;
} else {
loggers += "<logger name='hle.sceDeflt' > <level value='off' /> </logger>" + LB;
}
if (displayBox.isSelected()) {
loggers += "<logger name='hle.sceDisplay' />" + LB;
} else {
loggers += "<logger name='hle.sceDisplay' > <level value='off' /> </logger>" + LB;
}
if (dmacBox.isSelected()) {
loggers += "<logger name='hle.sceDmac' />" + LB;
} else {
loggers += "<logger name='hle.sceDmac' > <level value='off' /> </logger>" + LB;
}
if (fontBox.isSelected()) {
loggers += "<logger name='hle.sceFont' />" + LB;
} else {
loggers += "<logger name='hle.sceFont' > <level value='off' /> </logger>" + LB;
}
if (geUserBox.isSelected()) {
loggers += "<logger name='hle.sceGe_user' />" + LB;
} else {
loggers += "<logger name='hle.sceGe_user' > <level value='off' /> </logger>" + LB;
}
if (hprmBox.isSelected()) {
loggers += "<logger name='hle.sceHprm' />" + LB;
} else {
loggers += "<logger name='hle.sceHprm' > <level value='off' /> </logger>" + LB;
}
if (imposeBox.isSelected()) {
loggers += "<logger name='hle.sceImpose' />" + LB;
} else {
loggers += "<logger name='hle.sceImpose' > <level value='off' /> </logger>" + LB;
}
if (mp3Box.isSelected()) {
loggers += "<logger name='hle.sceMp3' />" + LB;
} else {
loggers += "<logger name='hle.sceMp3' > <level value='off' /> </logger>" + LB;
}
if (mpegBox.isSelected()) {
loggers += "<logger name='hle.sceMpeg' />" + LB;
} else {
loggers += "<logger name='hle.sceMpeg' > <level value='off' /> </logger>" + LB;
}
if (powerBox.isSelected()) {
loggers += "<logger name='hle.scePower' />" + LB;
} else {
loggers += "<logger name='hle.scePower' > <level value='off' /> </logger>" + LB;
}
if (psmfBox.isSelected()) {
loggers += "<logger name='hle.scePsmf' />" + LB;
} else {
loggers += "<logger name='hle.scePsmf' > <level value='off' /> </logger>" + LB;
}
if (psmfPlayerBox.isSelected()) {
loggers += "<logger name='hle.scePsmfPlayer' />" + LB;
} else {
loggers += "<logger name='hle.scePsmfPlayer' > <level value='off' /> </logger>" + LB;
}
if (rtcBox.isSelected()) {
loggers += "<logger name='hle.sceRtc' />" + LB;
} else {
loggers += "<logger name='hle.sceRtc' > <level value='off' /> </logger>" + LB;
}
if (sasBox.isSelected()) {
loggers += "<logger name='hle.sceSasCore' />" + LB;
} else {
loggers += "<logger name='hle.sceSasCore' > <level value='off' /> </logger>" + LB;
}
if (suspendBox.isSelected()) {
loggers += "<logger name='hle.sceSuspendForUser' />" + LB;
} else {
loggers += "<logger name='hle.sceSuspendForUser' > <level value='off' /> </logger>" + LB;
}
if (umdBox.isSelected()) {
loggers += "<logger name='hle.sceUmdUser' />" + LB;
} else {
loggers += "<logger name='hle.sceUmdUser' > <level value='off' /> </logger>" + LB;
}
if (utilityBox.isSelected()) {
loggers += "<logger name='hle.sceUtility' />" + LB;
} else {
loggers += "<logger name='hle.sceUtility' > <level value='off' /> </logger>" + LB;
}
if (cpuBox.isSelected()) {
loggers += "<logger name='cpu' />" + LB;
} else {
loggers += "<logger name='cpu' > <level value='off' /> </logger>" + LB;
}
if (gpuBox.isSelected()) {
loggers += "<logger name='ge' />" + LB;
} else {
loggers += "<logger name='ge' > <level value='off' /> </logger>" + LB;
}
if (compilerBox.isSelected()) {
loggers += "<logger name='compiler' />" + LB;
} else {
loggers += "<logger name='compiler' > <level value='off' /> </logger>" + LB;
}
if (memBox.isSelected()) {
loggers += "<logger name='memory' />" + LB;
} else {
loggers += "<logger name='memory' > <level value='off' /> </logger>" + LB;
}
if (emuBox.isSelected()) {
loggers += "<logger name='emu' />" + LB;
} else {
loggers += "<logger name='emu' > <level value='off' /> </logger>" + LB;
}
if (loaderBox.isSelected()) {
loggers += "<logger name='loader' />" + LB;
} else {
loggers += "<logger name='loader' > <level value='off' /> </logger>" + LB;
}
if (runtimeBox.isSelected()) {
loggers += "<logger name='runtime' />" + LB;
} else {
loggers += "<logger name='runtime' > <level value='off' /> </logger>" + LB;
}
if (stdoutBox.isSelected()) {
loggers += "<logger name='stdout' />" + LB;
} else {
loggers += "<logger name='stdout' > <level value='off' /> </logger>" + LB;
}
if (stderrBox.isSelected()) {
loggers += "<logger name='stderr' />" + LB;
} else {
loggers += "<logger name='stderr' > <level value='off' /> </logger>" + LB;
}
loggers += "<!-- Output profiler info to 'profiler.txt' -->" + LB
+ "<logger name='profiler' additivity='false'>" + LB
+ "<level value='info' />" + LB
+ "<appender-ref ref='ProfilerTxtAppender' />" + LB
+ "</logger>" + LB;
}
return loggers;
}
private void jButtonOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonOKActionPerformed
Settings.getInstance().writeBool("gui.openLogwindow", openLogWindowCheck.isSelected());
Settings.getInstance().writeBool("gui.snapLogwindow", snapConsoleCheck.isSelected());
if (!logKeywordField.getText().isEmpty()) {
Settings.getInstance().writeString("log.keyword", logKeywordField.getText());
} else {
Settings.getInstance().writeString("log.keyword", "LOG_ALL");
}
if (snapConsoleCheck.isSelected() && mainWindow != null) {
mainWindow.updateConsoleWinPosition();
}
dispose();
}//GEN-LAST:event_jButtonOKActionPerformed
private void fileButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_fileButtonActionPerformed
JFileChooser fc = new JFileChooser();
fc.setCurrentDirectory(new java.io.File("."));
fc.setSelectedFile(new File(xmlpath.getText()));
fc.addChoosableFileFilter(Constants.fltXMLFiles);
fc.setFileFilter(Constants.fltXMLFiles);
int result = fc.showOpenDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
xmlpath.setText(fc.getSelectedFile().getPath());
setLogSettingsFile();
}
}//GEN-LAST:event_fileButtonActionPerformed
private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_saveButtonActionPerformed
try {
File f = new File(LogSettingsPath);
if (f.exists()) {
f.delete();
}
String outName = "log";
if (!logoutpath.getText().equals("")) {
outName = logoutpath.getText();
}
RandomAccessFile raf = new RandomAccessFile(LogSettingsPath, "rw");
String header = "<?xml version='1.0' encoding='UTF-8' ?>" + LB
+ "<!DOCTYPE log4j:configuration SYSTEM 'log4j.dtd'>" + LB + LB
+ "<log4j:configuration>" + LB + LB;
String windowAppender = "<appender name='JpcspAppender' class='jpcsp.log.TextPaneAppender'>" + LB
+ "<layout class='org.apache.log4j.PatternLayout'>" + LB
+ "<param name='ConversionPattern' value='%r [%t] %-5p %c - %m%n' />" + LB
+ "</layout>" + LB
+ "</appender>" + LB;
String htmlAppender;
if (splitFilesBox.isSelected()) {
htmlAppender = "<appender name='HTMLAppender' class='org.apache.log4j.RollingFileAppender'>" + LB
+ "<param name='MaxFileSize' value='" + maxSizeSpinner.getValue() + "KB' />" + LB
+ "<param name='MaxBackupIndex' value='500' />" + LB
+ "<param name='File' value='" + outName + ".html' />" + LB
+ "<param name='Append' value='false' />" + LB
+ "<layout class='jpcsp.log.HTMLLayout'>" + LB
+ "<param name='Title' value='Jpcsp log file' />" + LB
+ "</layout>" + LB
+ "</appender>" + LB;
} else {
htmlAppender = "<appender name='HTMLAppender' class='org.apache.log4j.FileAppender'>" + LB
+ "<param name='File' value='" + outName + ".html' />" + LB
+ "<param name='Append' value='false' />" + LB
+ "<layout class='jpcsp.log.HTMLLayout'>" + LB
+ "<param name='Title' value='Jpcsp log file' />" + LB
+ "</layout>" + LB
+ "</appender>" + LB;
}
String textAppender;
if (splitFilesBox.isSelected()) {
textAppender = "<appender name='TxtAppender' class='org.apache.log4j.RollingFileAppender'>" + LB
+ "<param name='MaxFileSize' value='" + maxSizeSpinner.getValue() + "KB' />" + LB
+ "<param name='MaxBackupIndex' value='500' />" + LB
+ "<param name='File' value='" + outName + ".txt' />" + LB
+ "<param name='Append' value='false' />" + LB
+ "<layout class='org.apache.log4j.PatternLayout'>" + LB
+ "<param name='ConversionPattern' value='%5p %8c - %t - %m%n' />" + LB
+ "</layout>" + LB
+ "</appender>" + LB;
} else {
textAppender = "<appender name='TxtAppender' class='org.apache.log4j.FileAppender'>" + LB
+ "<param name='File' value='" + outName + ".txt' />" + LB
+ "<param name='Append' value='false' />" + LB
+ "<layout class='org.apache.log4j.PatternLayout'>" + LB
+ "<param name='ConversionPattern' value='%5p %8c - %t - %m%n' />" + LB
+ "</layout>" + LB
+ "</appender>" + LB;
}
String profilerAppender = "<appender name='ProfilerTxtAppender' class='org.apache.log4j.FileAppender'>" + LB
+ "<param name='File' value='profiler.txt' />" + LB
+ "<param name='Append' value='false' />" + LB
+ "<layout class='org.apache.log4j.PatternLayout'>" + LB
+ "<param name='ConversionPattern' value='%m%n' />" + LB
+ "</layout>" + LB
+ "</appender>" + LB;
String loggers = selectLoggers();
String rootStart = LB + "<root>" + LB
+ "<level value ='off' />" + LB;
String rootWindowAppender = "<appender-ref ref='JpcspAppender' />" + LB;
String rootHtmlAppender = "<appender-ref ref='HTMLAppender' />" + LB;
String rootTextAppender = "<appender-ref ref='TxtAppender' />" + LB;
String rootEnd = "</root>" + LB + LB
+ "</log4j:configuration>" + LB;
String contents = header + windowAppender;
if (outputToHTML.isSelected()) {
contents += htmlAppender;
}
if (outputToText.isSelected()) {
contents += textAppender;
}
contents += profilerAppender;
contents += loggers;
contents += rootStart;
contents += rootWindowAppender;
if (outputToHTML.isSelected()) {
contents += rootHtmlAppender;
}
if (outputToText.isSelected()) {
contents += rootTextAppender;
}
contents += rootEnd;
raf.writeBytes(contents);
raf.close();
} catch (Exception e) {
// Ignore.
}
settingsArea.setText("");
setLogSettingsFile();
}//GEN-LAST:event_saveButtonActionPerformed
private void splitFilesBoxActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_splitFilesBoxActionPerformed
maxSizeSpinner.setEnabled(splitFilesBox.isSelected());
}//GEN-LAST:event_splitFilesBoxActionPerformed
private void rbCustomActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbCustomActionPerformed
setCustom(true);
}//GEN-LAST:event_rbCustomActionPerformed
private void rbFullDebugActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbFullDebugActionPerformed
setCustom(false);
}//GEN-LAST:event_rbFullDebugActionPerformed
private void rbCoreDebugActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbCoreDebugActionPerformed
setCustom(false);
}//GEN-LAST:event_rbCoreDebugActionPerformed
private void rbGPUDebugActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbGPUDebugActionPerformed
setCustom(false);
}//GEN-LAST:event_rbGPUDebugActionPerformed
private void rbCPUDebugActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbCPUDebugActionPerformed
setCustom(false);
}//GEN-LAST:event_rbCPUDebugActionPerformed
private void rbGeneralDebugActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_rbGeneralDebugActionPerformed
setCustom(false);
}//GEN-LAST:event_rbGeneralDebugActionPerformed
private void logByKeywordCheckActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_logByKeywordCheckActionPerformed
if (logByKeywordCheck.isSelected()) {
logKeywordField.setEditable(true);
} else {
logKeywordField.setText("LOG_ALL");
logKeywordField.setEditable(false);
}
}//GEN-LAST:event_logByKeywordCheckActionPerformed
@Override
public void dispose() {
Emulator.getMainGUI().endWindowDialog();
super.dispose();
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JPanel LoggerAdvancedPanel;
private javax.swing.JPanel LoggerGeneralPanel;
private javax.swing.JPanel LoggerSettingsPanel;
private javax.swing.JCheckBox atracBox;
private javax.swing.JCheckBox audioBox;
private javax.swing.ButtonGroup buttonGroup1;
private javax.swing.JCheckBox compilerBox;
private javax.swing.JCheckBox cpuBox;
private javax.swing.JCheckBox ctrlBox;
private javax.swing.JCheckBox defltBox;
private javax.swing.JCheckBox displayBox;
private javax.swing.JCheckBox dmacBox;
private javax.swing.JCheckBox emuBox;
private javax.swing.JButton fileButton;
private javax.swing.JCheckBox fontBox;
private javax.swing.JCheckBox geUserBox;
private javax.swing.JCheckBox gpuBox;
private javax.swing.JCheckBox hprmBox;
private javax.swing.JCheckBox imposeBox;
private javax.swing.JCheckBox interruptMgrBox;
private javax.swing.JCheckBox ioFileMgrBox;
private jpcsp.GUI.CancelButton jButtonCancel;
private javax.swing.JButton jButtonOK;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JSeparator jSeparator2;
private javax.swing.JTabbedPane jTabbedPane1;
private javax.swing.JCheckBox kernelLibBox;
private javax.swing.JLabel lblCustom;
private javax.swing.JLabel lblLogMethod;
private javax.swing.JLabel lblMaxFileSize;
private javax.swing.JLabel lblOutputFile;
private javax.swing.JLabel lblSettingsPath;
private javax.swing.JCheckBox loadCoreBox;
private javax.swing.JCheckBox loadExecBox;
private javax.swing.JCheckBox loaderBox;
private javax.swing.JCheckBox logByKeywordCheck;
private javax.swing.JTextField logKeywordField;
private javax.swing.JTextField logoutpath;
private javax.swing.JSpinner maxSizeSpinner;
private javax.swing.JCheckBox memBox;
private javax.swing.JCheckBox moduleMgrBox;
private javax.swing.JCheckBox mp3Box;
private javax.swing.JCheckBox mpegBox;
private javax.swing.JCheckBox openLogWindowCheck;
private javax.swing.JCheckBox outputToHTML;
private javax.swing.JCheckBox outputToText;
private javax.swing.JCheckBox powerBox;
private javax.swing.JCheckBox psmfBox;
private javax.swing.JCheckBox psmfPlayerBox;
private javax.swing.JRadioButton rbCPUDebug;
private javax.swing.JRadioButton rbCoreDebug;
private javax.swing.JRadioButton rbCustom;
private javax.swing.JRadioButton rbFullDebug;
private javax.swing.JRadioButton rbGPUDebug;
private javax.swing.JRadioButton rbGeneralDebug;
private javax.swing.JCheckBox rtcBox;
private javax.swing.JCheckBox runtimeBox;
private javax.swing.JCheckBox sasBox;
private javax.swing.JButton saveButton;
private javax.swing.JTextArea settingsArea;
private javax.swing.JCheckBox snapConsoleCheck;
private javax.swing.JCheckBox splitFilesBox;
private javax.swing.JCheckBox stderrBox;
private javax.swing.JCheckBox stdioBox;
private javax.swing.JCheckBox stdoutBox;
private javax.swing.JCheckBox suspendBox;
private javax.swing.JCheckBox sysMemKernelBox;
private javax.swing.JCheckBox sysMemUserBox;
private javax.swing.JCheckBox threadManBox;
private javax.swing.JCheckBox umdBox;
private javax.swing.JCheckBox utilityBox;
private javax.swing.JCheckBox utilsBox;
private javax.swing.JTextField xmlpath;
// End of variables declaration//GEN-END:variables
}