FileDocCategorySizeDatePackage
TrackPanelAudio.javaAPI DocJMF 2.1.1e3532Mon May 12 12:20:30 BST 2003jmapps.ui

TrackPanelAudio.java

/*
 * @(#)TrackPanelAudio.java	1.4 02/08/21
 *
 * Copyright (c) 1996-2002 Sun Microsystems, Inc.  All rights reserved.
 */

package jmapps.ui;

import java.util.*;
import java.awt.*;
import java.awt.event.*;
import javax.media.*;
import javax.media.control.*;
//import javax.media.Format;
import javax.media.format.*;
//import javax.media.protocol.*;
//import javax.media.datasink.*;

import com.sun.media.ui.AudioFormatChooser;


public class TrackPanelAudio extends TrackPanel implements ActionListener {

    private AudioFormat         formatOld;
    private String              strContentType = null;
    private AudioFormatChooser  chooserAudioFormat;

    public TrackPanelAudio ( TrackControl trackControl, ActionListener listenerEnableTrack ) {
        super ( trackControl, listenerEnableTrack );

        try {
            init();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public void setContentType ( String strContentType ) {
        int                   i;
        int                   nSize;
        AudioFormat           formatAudio;

        arrSupportedFormats = trackControl.getSupportedFormats();
        this.strContentType = strContentType;
        nSize = arrSupportedFormats.length;
        vectorContSuppFormats = new Vector ();

        for ( i = 0;  i < nSize;  i++ ) {
            if ( !(arrSupportedFormats[i] instanceof AudioFormat) )
                continue;
            formatAudio = (AudioFormat) arrSupportedFormats[i];
            vectorContSuppFormats.addElement ( formatAudio );
        }

        chooserAudioFormat.setSupportedFormats ( vectorContSuppFormats );
        chooserAudioFormat.setCurrentFormat ( formatOld );
    }

    public boolean isTrackEnabled () {
        boolean     boolEnabled;
        boolEnabled = chooserAudioFormat.isTrackEnabled ();
        return ( boolEnabled );
    }

    public Format getFormat () {
        Format         format;
        format = chooserAudioFormat.getFormat ();
        return ( format );
    }

    public void setDefaults ( boolean boolTrackEnable, Format format ) {
        chooserAudioFormat.setTrackEnabled ( boolTrackEnable );
        if ( format instanceof AudioFormat ) {
            formatOld = (AudioFormat) format;
            chooserAudioFormat.setCurrentFormat ( formatOld );
        }
    }

    private void init () throws Exception {
        this.setLayout ( new BorderLayout() );
        formatOld = (AudioFormat) trackControl.getFormat ();
        chooserAudioFormat = new AudioFormatChooser ( arrSupportedFormats, formatOld, true, this );
        this.add ( chooserAudioFormat, BorderLayout.NORTH );
    }

    /**
     * This method overwrites the ActionListener method to process events
     * from buttons, track pages, and Progress dialog.
     * @param    event    action event
     */
    public void actionPerformed ( ActionEvent event ) {
        String        strCmd;
        ActionEvent   eventNew;

        strCmd = event.getActionCommand ();
        if ( strCmd.equals(AudioFormatChooser.ACTION_TRACK_ENABLED) ) {
            eventNew = new ActionEvent ( this, ActionEvent.ACTION_PERFORMED, event.getActionCommand() );
            listenerEnableTrack.actionPerformed ( eventNew );
        }
        else if ( strCmd.equals(AudioFormatChooser.ACTION_TRACK_DISABLED) ) {
            eventNew = new ActionEvent ( this, ActionEvent.ACTION_PERFORMED, event.getActionCommand() );
            listenerEnableTrack.actionPerformed ( eventNew );
        }
    }


}