/**
*
* @author pquiring
*
* Created : Jan 15, 2014
*/
import java.awt.*;
import java.awt.event.*;
import javaforce.*;
import javaforce.media.*;
public class EditNote extends javax.swing.JDialog {
/**
* Creates new form EditNote
*/
public EditNote(java.awt.Frame parent, boolean modal
, byte note
, byte volcmd, int volparam
, byte fxcmd, int fxparam, Music music)
{
super(parent, modal);
initComponents();
this.music = music;
if (note == -1) {
_note.setSelectedIndex(0);
} else {
_note.setSelectedIndex(1 + note);
}
if ((volcmd & 0x80) == 0x80) {
global.setSelected(true);
volcmd &= 0x7f;
} else {
global.setSelected(false);
}
vol_cmd.setSelectedIndex(volcmd);
float f = Float.intBitsToFloat(volparam);
switch (volcmd) {
case Music.VOLCMD_NONE:
break;
case Music.VOLCMD_SET_VOLUME:
case Music.VOLCMD_SET_VOL_VIBRATE_SPEED:
case Music.VOLCMD_SET_PAN_VIBRATE_SPEED:
case Music.VOLCMD_TREMOLO:
case Music.VOLCMD_PANBRELLO:
vol_param.setValue((int)(f * 255.0f));
break;
case Music.VOLCMD_SET_PANNING:
case Music.VOLCMD_SLIDE:
case Music.VOLCMD_PAN_SLIDE:
vol_param.setValue((int)(((f / 2.0f) + 1.0f) * 255.0f));
break;
}
fx_cmd.setSelectedIndex(fxcmd);
f = Float.intBitsToFloat(fxparam);
fxParamPanel.removeAll();
switch (fxcmd) {
case Music.FXCMD_NONE:
break;
case Music.FXCMD_PORTAMENTO_TO_NOTE:
case Music.FXCMD_SET_VIBRATE_SPEED:
case Music.FXCMD_VIBRATO:
fxParamPanel.add(_1);
fx_param.setValue((int)(f * 255.0f));
break;
case Music.FXCMD_PORTAMENTO:
fxParamPanel.add(_1);
fx_param.setValue((int)(((f / 2.0f) + 1.0f) * 255.0f));
break;
case Music.FXCMD_TREMOR:
fxParamPanel.add(_2);
//short/short
int s1 = (int)(fxparam >>> 16);
int s2 = (int)(fxparam & 0xffff);
fx_param1.setValue(s1 >> 8);
fx_param2.setValue(s2 >> 8);
break;
case Music.FXCMD_SET_INSTRUMENT:
fxParamPanel.add(_instr);
loadInstruments();
fx_instr.setSelectedIndex(fxparam);
break;
case Music.FXCMD_DELAY_START:
case Music.FXCMD_SAMPLE_OFFSET:
case Music.FXCMD_SET_BPM:
fxParamPanel.add(_int);
fx_int.setText("" + fxparam);
break;
}
JF.assignHotKey(this, ok, KeyEvent.VK_ENTER);
JF.assignHotKey(this, cancel, KeyEvent.VK_ESCAPE);
setPosition();
}
/**
* 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.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
private void initComponents() {
ok = new javax.swing.JButton();
cancel = new javax.swing.JButton();
tabs = new javax.swing.JTabbedPane();
noteTab = new javax.swing.JPanel();
jLabel1 = new javax.swing.JLabel();
_note = new javax.swing.JComboBox();
volumeTab = new javax.swing.JPanel();
vol_param = new javax.swing.JSlider();
vol_cmd = new javax.swing.JComboBox();
jLabel5 = new javax.swing.JLabel();
volText = new javax.swing.JLabel();
global = new javax.swing.JCheckBox();
effectTab = new javax.swing.JPanel();
jLabel3 = new javax.swing.JLabel();
fx_cmd = new javax.swing.JComboBox();
fxText = new javax.swing.JLabel();
fxParamPanel = new javax.swing.JPanel();
fxParamTab = new javax.swing.JTabbedPane();
_1 = new javax.swing.JPanel();
fx_param = new javax.swing.JSlider();
_2 = new javax.swing.JPanel();
fx_param2 = new javax.swing.JSlider();
fx_param1 = new javax.swing.JSlider();
_instr = new javax.swing.JPanel();
jLabel4 = new javax.swing.JLabel();
fx_instr = new javax.swing.JComboBox();
_int = new javax.swing.JPanel();
jLabel2 = new javax.swing.JLabel();
fx_int = new javax.swing.JTextField();
cont = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Edit Note");
ok.setText("OK");
ok.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
okActionPerformed(evt);
}
});
cancel.setText("Cancel");
cancel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cancelActionPerformed(evt);
}
});
jLabel1.setText("Note");
_note.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "No Note", "C-0", "C#0", "D-0", "D#0", "E-0", "F-0", "F#0", "G-0", "G#0", "A-0", "A#0", "B-0", "C-1", "C#1", "D-1", "D#1", "E-1", "F-1", "F#1", "G-1", "G#1", "A-1", "A#1", "B-1", "C-2", "C#2", "D-2", "D#2", "E-2", "F-2", "F#2", "G-2", "G#2", "A-2", "A#2", "B-2", "C-3", "C#3", "D-3", "D#3", "E-3", "F-3", "F#3", "G-3", "G#3", "A-3", "A#3", "B-3", "C-4", "C#4", "D-4", "D#4", "E-4", "F-4", "F#4", "G-4", "G#4", "A-4", "A#4", "B-4", "C-5", "C#5", "D-5", "D#5", "E-5", "F-5", "F#5", "G-5", "G#5", "A-5", "A#5", "B-5", "C-6", "C#6", "D-6", "D#6", "E-6", "F-6", "F#6", "G-6", "G#6", "A-6", "A#6", "B-6", "C-7", "C#7", "D-7", "D#7", "E-7", "F-7", "F#7", "G-7", "G#7", "A-7", "A#7", "B-7", "C-8", "C#8", "D-8", "D#8", "E-8", "F-8", "F#8", "G-8", "G#8", "A-8", "A#8", "B-8", "C-9", "C#9", "D-9", "D#9", "E-9", "F-9", "F#9", "G-9", "G#9", "A-9", "A#9", "B-9", " " }));
javax.swing.GroupLayout noteTabLayout = new javax.swing.GroupLayout(noteTab);
noteTab.setLayout(noteTabLayout);
noteTabLayout.setHorizontalGroup(
noteTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(noteTabLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(_note, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(370, Short.MAX_VALUE))
);
noteTabLayout.setVerticalGroup(
noteTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(noteTabLayout.createSequentialGroup()
.addContainerGap()
.addGroup(noteTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(_note, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1))
.addContainerGap(127, Short.MAX_VALUE))
);
tabs.addTab("Note", noteTab);
vol_param.setMaximum(255);
vol_param.setToolTipText("");
vol_param.setValue(128);
vol_param.setMinimumSize(new java.awt.Dimension(50, 23));
vol_param.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
vol_paramStateChanged(evt);
}
});
vol_cmd.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "None", "SET_VOLUME", "SET_PANNING", "SLIDE_UP", "SLIDE_DOWN", "PAN_SLIDE_LEFT", "PAN_SLIDE_RIGHT", "SET_VOL_VIBRATE_SPEED", "SET_PAN_VIBRATE_SPEED", "TREMOLO", "PANBRELLO", " " }));
vol_cmd.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
vol_cmdItemStateChanged(evt);
}
});
jLabel5.setText("cmd:");
volText.setText("Value : ???");
global.setText("Global");
javax.swing.GroupLayout volumeTabLayout = new javax.swing.GroupLayout(volumeTab);
volumeTab.setLayout(volumeTabLayout);
volumeTabLayout.setHorizontalGroup(
volumeTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(volumeTabLayout.createSequentialGroup()
.addContainerGap()
.addGroup(volumeTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(vol_param, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(volumeTabLayout.createSequentialGroup()
.addComponent(jLabel5)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(vol_cmd, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(volText, javax.swing.GroupLayout.DEFAULT_SIZE, 211, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(global)))
.addContainerGap())
);
volumeTabLayout.setVerticalGroup(
volumeTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(volumeTabLayout.createSequentialGroup()
.addGap(13, 13, 13)
.addGroup(volumeTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel5)
.addComponent(vol_cmd, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(volText)
.addComponent(global))
.addGap(11, 11, 11)
.addComponent(vol_param, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
tabs.addTab("Volume", volumeTab);
jLabel3.setText("cmd:");
fx_cmd.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "None", "PORTAMENTO", "PORTAMENTO_TO_NOTE", "SET_VIBRATE_SPEED", "VIBRATO", "TREMOR", "PATTERN_BREAK", "KEY_OFF", "CUT_OFF", "SET_INSTRUMENT", "DELAY_START", "SAMPLE_OFFSET", "SET_BPM", " " }));
fx_cmd.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent evt) {
fx_cmdItemStateChanged(evt);
}
});
fxText.setText("Value : ???");
fxParamPanel.setLayout(new java.awt.BorderLayout());
fx_param.setMaximum(255);
fx_param.setValue(128);
fx_param.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
fx_paramStateChanged(evt);
}
});
javax.swing.GroupLayout _1Layout = new javax.swing.GroupLayout(_1);
_1.setLayout(_1Layout);
_1Layout.setHorizontalGroup(
_1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(_1Layout.createSequentialGroup()
.addContainerGap()
.addComponent(fx_param, javax.swing.GroupLayout.DEFAULT_SIZE, 426, Short.MAX_VALUE)
.addContainerGap())
);
_1Layout.setVerticalGroup(
_1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(_1Layout.createSequentialGroup()
.addGap(19, 19, 19)
.addComponent(fx_param, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
fxParamTab.addTab("1Slider", _1);
fx_param2.setMaximum(255);
fx_param2.setValue(128);
fx_param2.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
fx_param2StateChanged(evt);
}
});
fx_param1.setMaximum(255);
fx_param1.setValue(128);
fx_param1.addChangeListener(new javax.swing.event.ChangeListener() {
public void stateChanged(javax.swing.event.ChangeEvent evt) {
fx_param1StateChanged(evt);
}
});
javax.swing.GroupLayout _2Layout = new javax.swing.GroupLayout(_2);
_2.setLayout(_2Layout);
_2Layout.setHorizontalGroup(
_2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(fx_param2, javax.swing.GroupLayout.DEFAULT_SIZE, 446, Short.MAX_VALUE)
.addComponent(fx_param1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
_2Layout.setVerticalGroup(
_2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(_2Layout.createSequentialGroup()
.addContainerGap()
.addComponent(fx_param1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(fx_param2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
fxParamTab.addTab("2Slider", _2);
jLabel4.setText("Instrument:");
fx_instr.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "TODO" }));
javax.swing.GroupLayout _instrLayout = new javax.swing.GroupLayout(_instr);
_instr.setLayout(_instrLayout);
_instrLayout.setHorizontalGroup(
_instrLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(_instrLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jLabel4)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(fx_instr, 0, 365, Short.MAX_VALUE)
.addContainerGap())
);
_instrLayout.setVerticalGroup(
_instrLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(_instrLayout.createSequentialGroup()
.addContainerGap()
.addGroup(_instrLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(fx_instr, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4))
.addContainerGap(43, Short.MAX_VALUE))
);
fxParamTab.addTab("setInstr", _instr);
jLabel2.setText("Value:");
javax.swing.GroupLayout _intLayout = new javax.swing.GroupLayout(_int);
_int.setLayout(_intLayout);
_intLayout.setHorizontalGroup(
_intLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(_intLayout.createSequentialGroup()
.addComponent(jLabel2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(fx_int, javax.swing.GroupLayout.DEFAULT_SIZE, 412, Short.MAX_VALUE))
);
_intLayout.setVerticalGroup(
_intLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(_intLayout.createSequentialGroup()
.addContainerGap()
.addGroup(_intLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(fx_int, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
fxParamTab.addTab("intValue", _int);
fxParamPanel.add(fxParamTab, java.awt.BorderLayout.CENTER);
cont.setText("continue");
cont.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
contActionPerformed(evt);
}
});
javax.swing.GroupLayout effectTabLayout = new javax.swing.GroupLayout(effectTab);
effectTab.setLayout(effectTabLayout);
effectTabLayout.setHorizontalGroup(
effectTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(effectTabLayout.createSequentialGroup()
.addContainerGap()
.addGroup(effectTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(effectTabLayout.createSequentialGroup()
.addComponent(jLabel3)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(fx_cmd, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(fxText, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(17, 17, 17)
.addComponent(cont))
.addComponent(fxParamPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
effectTabLayout.setVerticalGroup(
effectTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(effectTabLayout.createSequentialGroup()
.addContainerGap()
.addGroup(effectTabLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(fx_cmd, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(fxText)
.addComponent(cont))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(fxParamPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
tabs.addTab("Effect", effectTab);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addComponent(cancel)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(ok)
.addContainerGap())
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(tabs, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(tabs, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ok)
.addComponent(cancel))
.addContainerGap())
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void okActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_okActionPerformed
accepted = true;
int idx = _note.getSelectedIndex();
if (idx == 0) {
note = -1;
} else {
idx--;
note = (byte)idx;
}
volcmd = (byte)vol_cmd.getSelectedIndex();
if (global.isSelected()) volcmd |= 0x80;
int val = vol_param.getValue();
float f = ((float)val) / 255.0f;
switch (volcmd) {
case Music.VOLCMD_NONE:
volparam = 0;
break;
case Music.VOLCMD_SET_VOLUME:
case Music.VOLCMD_SET_VOL_VIBRATE_SPEED:
case Music.VOLCMD_SET_PAN_VIBRATE_SPEED:
case Music.VOLCMD_TREMOLO:
case Music.VOLCMD_PANBRELLO:
volparam = Float.floatToRawIntBits(f);
break;
case Music.VOLCMD_SET_PANNING:
case Music.VOLCMD_SLIDE:
case Music.VOLCMD_PAN_SLIDE:
volparam = Float.floatToRawIntBits(f * 2.0f - 1.0f);
break;
}
fxcmd = (byte)fx_cmd.getSelectedIndex();
switch (fxcmd) {
case Music.FXCMD_NONE:
fxparam = 0;
break;
case Music.FXCMD_PORTAMENTO_TO_NOTE:
case Music.FXCMD_SET_VIBRATE_SPEED:
case Music.FXCMD_VIBRATO:
fxparam = Float.floatToRawIntBits(((float)fx_param.getValue()) / 255.0f);
break;
case Music.FXCMD_PORTAMENTO:
fxparam = Float.floatToRawIntBits(((float)fx_param.getValue()) / 255.0f * 2.0f - 1.0f);
break;
case Music.FXCMD_TREMOR:
//short/short
int s1 = fx_param1.getValue() << 8;
int s2 = fx_param2.getValue() << 8;
fxparam = s1 << 16 | s2;
break;
case Music.FXCMD_SET_INSTRUMENT:
fxparam = fx_instr.getSelectedIndex();
break;
case Music.FXCMD_DELAY_START:
case Music.FXCMD_SAMPLE_OFFSET:
case Music.FXCMD_SET_BPM:
fxparam = JF.atoi(fx_int.getText());
break;
}
dispose();
}//GEN-LAST:event_okActionPerformed
private void cancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cancelActionPerformed
accepted = false;
dispose();
}//GEN-LAST:event_cancelActionPerformed
private void vol_cmdItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_vol_cmdItemStateChanged
updateVolText();
}//GEN-LAST:event_vol_cmdItemStateChanged
private void fx_cmdItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_fx_cmdItemStateChanged
int idx = fx_cmd.getSelectedIndex();
fxParamPanel.removeAll();
switch (idx) {
case Music.FXCMD_NONE:
break;
case Music.FXCMD_PORTAMENTO_TO_NOTE:
case Music.FXCMD_SET_VIBRATE_SPEED:
case Music.FXCMD_VIBRATO:
fx_param.setValue(0);
fxParamPanel.add(_1);
break;
case Music.FXCMD_PORTAMENTO:
fx_param.setValue(0);
fxParamPanel.add(_1);
break;
case Music.FXCMD_TREMOR:
fx_param1.setValue(0);
fx_param2.setValue(0);
fxParamPanel.add(_2);
break;
case Music.FXCMD_SET_INSTRUMENT:
fxParamPanel.add(_instr);
loadInstruments();
break;
case Music.FXCMD_DELAY_START:
case Music.FXCMD_SAMPLE_OFFSET:
case Music.FXCMD_SET_BPM:
fx_int.setText("0");
fxParamPanel.add(_int);
break;
}
updateFXText();
repaint();
}//GEN-LAST:event_fx_cmdItemStateChanged
private void vol_paramStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_vol_paramStateChanged
updateVolText();
}//GEN-LAST:event_vol_paramStateChanged
private void fx_paramStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_fx_paramStateChanged
updateFXText();
}//GEN-LAST:event_fx_paramStateChanged
private void fx_param2StateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_fx_param2StateChanged
updateFXText();
}//GEN-LAST:event_fx_param2StateChanged
private void fx_param1StateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_fx_param1StateChanged
updateFXText();
}//GEN-LAST:event_fx_param1StateChanged
private void contActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_contActionPerformed
switch (fx_cmd.getSelectedIndex()) {
default:
fx_param.setValue(0);
break;
case Music.FXCMD_PORTAMENTO:
fx_param.setValue(128);
break;
case Music.FXCMD_TREMOR:
fx_param1.setValue(0);
fx_param2.setValue(0);
break;
}
}//GEN-LAST:event_contActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JPanel _1;
private javax.swing.JPanel _2;
private javax.swing.JPanel _instr;
private javax.swing.JPanel _int;
private javax.swing.JComboBox _note;
private javax.swing.JButton cancel;
private javax.swing.JButton cont;
private javax.swing.JPanel effectTab;
private javax.swing.JPanel fxParamPanel;
private javax.swing.JTabbedPane fxParamTab;
private javax.swing.JLabel fxText;
private javax.swing.JComboBox fx_cmd;
private javax.swing.JComboBox fx_instr;
private javax.swing.JTextField fx_int;
private javax.swing.JSlider fx_param;
private javax.swing.JSlider fx_param1;
private javax.swing.JSlider fx_param2;
private javax.swing.JCheckBox global;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JPanel noteTab;
private javax.swing.JButton ok;
private javax.swing.JTabbedPane tabs;
private javax.swing.JLabel volText;
private javax.swing.JComboBox vol_cmd;
private javax.swing.JSlider vol_param;
private javax.swing.JPanel volumeTab;
// End of variables declaration//GEN-END:variables
public boolean accepted;
public byte note;
public byte volcmd;
public int volparam;
public byte fxcmd;
public int fxparam;
private Music music;
private void setPosition() {
Dimension d = getSize();
Rectangle s = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds();
if ((d.width > s.width) || (d.height > s.height)) {
if (d.width > s.width) d.width = s.width;
if (d.height > s.height) d.height = s.height;
setSize(d);
}
setLocation(s.width/2 - d.width/2, s.height/2 - d.height/2);
}
private void updateVolText() {
int idx = vol_cmd.getSelectedIndex();
int val = vol_param.getValue();
float f = ((float)val) / 255.0f;
volText.setText(String.format("Value : %1.3f", f));
}
private void updateFXText() {
int idx = fx_cmd.getSelectedIndex();
switch (idx) {
default:
case Music.FXCMD_NONE:
fxText.setText("Value:");
break;
case Music.FXCMD_PORTAMENTO_TO_NOTE:
case Music.FXCMD_SET_VIBRATE_SPEED:
case Music.FXCMD_VIBRATO:
if (fx_param.getValue() == 0) {
fxText.setText("Value: continue");
} else {
fxText.setText("Value:" + String.format("%1.3f", ((float)fx_param.getValue()) / 255.0f));
}
break;
case Music.FXCMD_PORTAMENTO:
if (fx_param.getValue() == 128) {
fxText.setText("Value: continue");
} else {
fxText.setText("Value:" + String.format("%1.3f", ((float)fx_param.getValue()) / 255.0f * 2.0f - 1.0f));
}
break;
case Music.FXCMD_TREMOR:
//short/short
int s1 = (int)(((float)fx_param1.getValue()) / 255.0f * (65535.0f / 44100.0f * 1000.0f));
int s2 = (int)(((float)fx_param2.getValue()) / 255.0f * (65535.0f / 44100.0f * 1000.0f));
if (s1 == 0 && s2 == 0) {
fxText.setText("Value: continue");
} else {
fxText.setText(String.format("Value:on %dms, off %dms", s1, s2));
}
break;
case Music.FXCMD_SET_INSTRUMENT:
fxText.setText("Value:" + fx_instr.getSelectedItem());
break;
case Music.FXCMD_DELAY_START:
case Music.FXCMD_SAMPLE_OFFSET:
case Music.FXCMD_SET_BPM:
fxText.setText("Value:" + JF.atoi(fx_int.getText()));
break;
}
}
public void loadInstruments() {
fx_instr.removeAllItems();
int cnt = music.song.instruments.size();
for(int a=0;a<cnt;a++) {
fx_instr.addItem(music.song.instruments.get(a).name);
}
}
}