/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package webcamstudio.components;
import java.awt.Color;
import java.awt.image.BufferedImage;
import webcamstudio.externals.FME;
import webcamstudio.streams.Stream;
/**
*
* @author karl
*/
public class FMEDialog extends javax.swing.JFrame implements Stream.Listener {
FME thisFME;
static String add = "cancel";
/**
* Creates new form FMESettings
* @param fme
*/
public FMEDialog(FME fme) {
initComponents();
// for now we keep this not visible
lblOW.setVisible(false);
lblOH.setVisible(false);
spinOutW.setVisible(false);
spinOutH.setVisible(false);
thisFME = fme;
}
/**
* 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() {
jLabel12 = new javax.swing.JLabel();
lblEncode = new javax.swing.JLabel();
lblVideoRate = new javax.swing.JLabel();
lblAudioRate = new javax.swing.JLabel();
lblrtmpURL = new javax.swing.JLabel();
lblURL = new javax.swing.JLabel();
lblStream = new javax.swing.JLabel();
textURL = new javax.swing.JTextField();
textStream = new javax.swing.JTextField();
spinVideoRate = new javax.swing.JSpinner();
spinAudioRate = new javax.swing.JSpinner();
btnCancel = new javax.swing.JButton();
btnOK = new javax.swing.JButton();
lblMount = new javax.swing.JLabel();
lblPsw = new javax.swing.JLabel();
lblPort = new javax.swing.JLabel();
lblKeyInt = new javax.swing.JLabel();
textMount = new javax.swing.JTextField();
textPsw = new javax.swing.JPasswordField();
spinPort = new javax.swing.JSpinner();
spinKeyInt = new javax.swing.JSpinner();
lblName = new javax.swing.JLabel();
lblOW = new javax.swing.JLabel();
lblOH = new javax.swing.JLabel();
spinOutW = new javax.swing.JSpinner();
spinOutH = new javax.swing.JSpinner();
chkHQMode = new javax.swing.JCheckBox();
textName = new javax.swing.JTextField();
jLabel12.setText("jLabel12");
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Add FME");
setResizable(false);
lblEncode.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
lblEncode.setText("Encode:");
lblVideoRate.setText("Video Data Rate:");
lblAudioRate.setText("Audio Data Rate:");
lblrtmpURL.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
lblrtmpURL.setText("RTMP Streaming Url:");
lblURL.setText("URL:");
lblStream.setText("Stream:");
btnCancel.setText("Cancel");
btnCancel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnCancelActionPerformed(evt);
}
});
btnOK.setText("OK");
btnOK.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
btnOKActionPerformed(evt);
}
});
lblMount.setText("Mount:");
lblPsw.setText("Password:");
lblPort.setText("Port:");
lblKeyInt.setText("KeyInt:");
lblName.setFont(new java.awt.Font("Ubuntu", 1, 15)); // NOI18N
lblName.setText("Name");
lblOW.setText("Out Width:");
lblOW.setEnabled(false);
lblOH.setText("Out Height:");
lblOH.setEnabled(false);
spinOutW.setEnabled(false);
spinOutH.setEnabled(false);
chkHQMode.setFont(new java.awt.Font("Ubuntu", 3, 15)); // NOI18N
chkHQMode.setForeground(new java.awt.Color(180, 1, 1));
chkHQMode.setText("HQ Mode");
chkHQMode.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
chkHQModeActionPerformed(evt);
}
});
textName.setToolTipText("");
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)
.addGroup(layout.createSequentialGroup()
.addComponent(lblURL)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textURL))
.addGroup(layout.createSequentialGroup()
.addComponent(lblStream)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textStream))
.addGroup(layout.createSequentialGroup()
.addComponent(lblMount)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textMount))
.addGroup(layout.createSequentialGroup()
.addComponent(lblPsw)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textPsw))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addComponent(lblKeyInt)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(spinKeyInt))
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
.addComponent(lblPort)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(spinPort, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btnOK)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnCancel))
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addComponent(lblAudioRate)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(spinAudioRate))
.addGroup(layout.createSequentialGroup()
.addComponent(lblVideoRate)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(spinVideoRate, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(lblEncode)
.addComponent(lblrtmpURL))
.addGroup(layout.createSequentialGroup()
.addComponent(lblName)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textName, javax.swing.GroupLayout.PREFERRED_SIZE, 127, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 13, Short.MAX_VALUE)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(lblOH)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(spinOutH, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(lblOW)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(spinOutW, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addComponent(chkHQMode, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 95, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap())
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(4, 4, 4)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblName)
.addComponent(chkHQMode)
.addComponent(textName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lblrtmpURL)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblURL)
.addComponent(textURL, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblStream)
.addComponent(textStream, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(lblEncode)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblVideoRate)
.addComponent(spinVideoRate, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lblOW)
.addComponent(spinOutW, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblAudioRate)
.addComponent(spinAudioRate, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(spinOutH, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(lblOH))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblMount)
.addComponent(textMount, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblPsw)
.addComponent(textPsw, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblPort)
.addComponent(spinPort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(lblKeyInt)
.addComponent(spinKeyInt, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnOK)
.addComponent(btnCancel))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
pack();
}// </editor-fold>//GEN-END:initComponents
private void btnOKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnOKActionPerformed
if (textName.getText().isEmpty()) {
lblName.setForeground(Color.red);
} else {
thisFME.setName(textName.getText());
thisFME.setUrl(textURL.getText());
thisFME.setStream(textStream.getText());
thisFME.setVbitrate(Integer.toString(spinVideoRate.getValue().hashCode()));
// thisFME.setWidth(Integer.toString(spinOutW.getValue().hashCode()));
// thisFME.setHeight(Integer.toString(spinOutH.getValue().hashCode()));
thisFME.setAbitrate(Integer.toString(spinAudioRate.getValue().hashCode()));
thisFME.setMount(textMount.getText());
char[] password = textPsw.getPassword();
String psw = String.valueOf(password);
thisFME.setPassword(psw);
if (spinPort.getValue().hashCode() != 0) {
thisFME.setPort(Integer.toString(spinPort.getValue().hashCode()));
}
thisFME.setKeyInt(Integer.toString(spinKeyInt.getValue().hashCode()));
add = "ok";
this.dispose();
}
}//GEN-LAST:event_btnOKActionPerformed
private void btnCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnCancelActionPerformed
add = "cancel";
this.dispose();
}//GEN-LAST:event_btnCancelActionPerformed
private void chkHQModeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_chkHQModeActionPerformed
if (chkHQMode.isSelected()){
thisFME.setStandard("HQ");
} else {
thisFME.setStandard("STD");
}
}//GEN-LAST:event_chkHQModeActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton btnCancel;
private javax.swing.JButton btnOK;
private javax.swing.JCheckBox chkHQMode;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel lblAudioRate;
private javax.swing.JLabel lblEncode;
private javax.swing.JLabel lblKeyInt;
private javax.swing.JLabel lblMount;
private javax.swing.JLabel lblName;
private javax.swing.JLabel lblOH;
private javax.swing.JLabel lblOW;
private javax.swing.JLabel lblPort;
private javax.swing.JLabel lblPsw;
private javax.swing.JLabel lblStream;
private javax.swing.JLabel lblURL;
private javax.swing.JLabel lblVideoRate;
private javax.swing.JLabel lblrtmpURL;
private javax.swing.JSpinner spinAudioRate;
private javax.swing.JSpinner spinKeyInt;
private javax.swing.JSpinner spinOutH;
private javax.swing.JSpinner spinOutW;
private javax.swing.JSpinner spinPort;
private javax.swing.JSpinner spinVideoRate;
private javax.swing.JTextField textMount;
private javax.swing.JTextField textName;
private javax.swing.JPasswordField textPsw;
private javax.swing.JTextField textStream;
private javax.swing.JTextField textURL;
// End of variables declaration//GEN-END:variables
@Override
public void sourceUpdated(Stream stream) {
// nothing here.
}
@Override
public void updatePreview(BufferedImage image) {
// nothing here.
}
}