FileDocCategorySizeDatePackage
TrackPanelVideo.javaAPI DocJMF 2.1.1e3454Mon May 12 12:20:32 BST 2003jmapps.ui

TrackPanelVideo.java

/*
 * @(#)TrackPanelVideo.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.VideoFormatChooser;


public class TrackPanelVideo extends TrackPanel implements ActionListener {

    private VideoFormat         formatOld;
    private String              strContentType = null;
    private VideoFormatChooser  chooserVideoFormat;


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

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

    public void setContentType( String strContentType ) {
        int            i;
        int            nSize;
        VideoFormat    formatVideo;

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

        // Add the supported formats to the vector
        for ( i = 0;  i < nSize;  i++ ) {
            if ( !(arrSupportedFormats[i] instanceof VideoFormat) )
                continue;
            formatVideo = (VideoFormat) arrSupportedFormats[i];
            // assume that processor reports only valid formats
            vectorContSuppFormats.addElement( formatVideo );
        }

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

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

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

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

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

    public void actionPerformed( ActionEvent event ) {
        String        strCmd;
        ActionEvent   eventNew;

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


}