/*
* @(#)MFormatPane.java 1.9 02/12/17
*
* Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved.
*/
package com.sun.media.customizer;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* This class defines the media format page. It list all the file
* format supported by jmf 2.x
*
* @version 2.0
*/
public class MFormatPane extends JPanel {
// the sequence is critical for codecpane
public static final int AU = 0;
public static final int AIFF = 1;
public static final int GSM = 2;
public static final int WAV = 3;
public static final int MP2 = 4;
public static final int MP3 = 5;
public static final int MOV = 6;
public static final int AVI = 7;
public static final int MPEG = 8;
public static final int MVR = 9;
public static final int MIDI = 10;
public static final int RMF = 11;
public static final int CDAUDIO = 12;
JCheckBox[] mformats = new JCheckBox[13];
boolean[] resultMFormat = new boolean[13];
public MFormatPane() {
mformats[AU] = new JCheckBox(I18N.getResource("MFormatPane.AU"), false);
mformats[AIFF] = new JCheckBox(I18N.getResource("MFormatPane.AIFF"), false);
mformats[GSM] = new JCheckBox(I18N.getResource("MFormatPane.GSM"), false);
mformats[MP2] = new JCheckBox(I18N.getResource("MFormatPane.MP2"), false);
mformats[MP3] = new JCheckBox(I18N.getResource("MFormatPane.MP3"), false);
mformats[WAV] = new JCheckBox(I18N.getResource("MFormatPane.WAV"), false);
mformats[MOV] = new JCheckBox(I18N.getResource("MFormatPane.MOV"), false);
mformats[AVI] = new JCheckBox(I18N.getResource("MFormatPane.AVI"), false);
mformats[MPEG] = new JCheckBox(I18N.getResource("MFormatPane.MPEG"), false);
mformats[MVR] = new JCheckBox(I18N.getResource("MFormatPane.MVR"), false);
mformats[MIDI] = new JCheckBox(I18N.getResource("MFormatPane.MIDI"), false);
mformats[RMF] = new JCheckBox(I18N.getResource("MFormatPane.RMF"), false);
mformats[CDAUDIO] = new JCheckBox(I18N.getResource("MFormatPane.CDAUDIO"), false);
setLayout(new GridLayout(5,3));
this.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), I18N.getResource("MFormatPane.TITLE")));
for ( int i = 0; i < 13; i++) {
mformats[i].setEnabled(false);
add(mformats[i]);
}
}
public boolean[] getState() {
for (int i = 0; i < 13; i++) {
if (mformats[i].isEnabled() && mformats[i].isSelected())
resultMFormat[i] = true;
else
resultMFormat[i] = false;
}
return (resultMFormat);
}
public void setHighlight(boolean[] funcs, boolean[] protocols, int release) {
// mvr/swf/spl/midi/rmf only supported in playback
boolean value = (protocols[ProtocolPane.FILE] ||
protocols[ProtocolPane.HTTP] ||
protocols[ProtocolPane.HTTPS] ||
protocols[ProtocolPane.FTP] ) &&
funcs[GeneralPane.PLAY];
mformats[MVR].setEnabled(value);
mformats[MIDI].setEnabled(value);
mformats[RMF].setEnabled(value);
// mpeg only supported when loading from files and transmitting
// can't play or dump into file
value = (funcs[GeneralPane.RTPTRANS] && protocols[ProtocolPane.RTP] )
|| (release > 1 );
mformats[MPEG].setEnabled(value);
// other media formats
value = ( protocols[ProtocolPane.FILE] ||
protocols[ProtocolPane.HTTP] ||
protocols[ProtocolPane.HTTPS] ||
protocols[ProtocolPane.FTP] ) &&
funcs[GeneralPane.MFILE];
for ( int i = AU; i <= AVI; i++)
mformats[i].setEnabled(value);
value = ( release == 3 );
mformats[CDAUDIO].setEnabled(value);
mformats[MP3].setEnabled(false);
}
public void disableAll() {
for ( int i = 0; i < 13; i++)
mformats[i].setEnabled(false);
}
}
|