import java.awt.*;
import javax.media.*;
import javax.media.control.*;
import javax.media.format.*;
import javax.swing.*;


/**
 * An example that uses a custom VideoRenderer
 *
 * @version 1.0
 * @author  Prof. David Bernstein, James Madison University
 *
 */
public class RendererDriver
{
    /**
     * The entry point of the example
     *
     * @param args  The command line arguments
     */
    public static void main(String[] args)
    {
	boolean          status;
	JFrame           f;
	Container        contentPane;
	int              i;
	ProcessorPanel   p;
	RGBRenderer      renderer;
	TrackControl     videoControl;
	TrackControl[]   trackControls;


	f = new JFrame();

	contentPane = f.getContentPane();
	contentPane.setLayout(new BorderLayout());

	p = new ProcessorPanel();

	contentPane.add(p, BorderLayout.CENTER);

	status = false;
	status = p.loadFile(args[0]);

	status = p.configure();

	if (status) {

	    status = false;

	    // Get the video track control (if there is one)
	    trackControls = p.getProcessor().getTrackControls();

	    videoControl = null;
	    for (i=0; i < trackControls.length; i++) {

		if (trackControls[i].getFormat() 
                           instanceof VideoFormat) {
		    
		    videoControl = trackControls[i];
		    break;
		}
	    }

	    if (videoControl != null) {

		// Set the Renderer for the video track control
		try {
		    
		    renderer = new RGBRenderer();
		    videoControl.setRenderer(renderer);
		    status = true;
		    
		} catch (UnsupportedPlugInException upie) {
		    
		    System.out.println("Unsupported PlugIn");
		}
	    }
	}
	 

	if (status) {

	    p.realize();
	}



	f.setSize(320,300);
	f.setVisible(true);


    }
}
