/*
* @(#)DataSource.java 1.3 98/12/19
*
* Copyright 1996-1998 by Sun Microsystems, Inc.,
* 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
* All rights reserved.
*
* This software is the confidential and proprietary information
* of Sun Microsystems, Inc. ("Confidential Information"). You
* shall not disclose such Confidential Information and shall use
* it only in accordance with the terms of the license agreement
* you entered into with Sun.
*/
package com.sun.media.protocol.rtsp;
import java.io.*;
import javax.media.protocol.*;
import com.sun.media.*;
import com.sun.media.protocol.BasicPushBufferDataSource;
import javax.media.*;
public class DataSource extends BasicPushBufferDataSource
{
private PushBufferStream[] srcStreams = null;
private boolean stopped = true;
Player streamplayer = null;
public DataSource()
{
srcStreams= new PushBufferStream[ 1];
}
/**
* Obtain the collection of streams that this source
* manages. The collection of streams is entirely
* content dependent. The mime-type of this
* DataSource provides the only indication of
* what streams can be available on this connection.
*
* @return collection of streams for this source.
*/
public PushBufferStream[] getStreams()
{
if (!connected)
return null;
return srcStreams;
}
public void setPlayer(Player player)
{
streamplayer = player;
}
public Player getPlayer(){
return streamplayer;
}
public void setSourceStream( PushBufferStream stream)
{
if (srcStreams != null)
srcStreams[0] = stream;
}
public void setLocator( MediaLocator mrl)
{
super.setLocator(mrl);
}
/**
* Initiates data-transfer. Start must be called before
* data is available. Connect must be called before start.
* @exception IOException thrown if the source has IO trouble
* at startup time.
*/
public void start() throws IOException
{
super.start();
}
/**
* Stops data-transfer.
* If the source has not already been connected and started,
* stop does nothing.
*/
public void stop() throws IOException
{
super.stop();
}
public String getContentType()
{
return "rtsp";
}
public boolean isStarted()
{
return started;
}
/**
* Opens a connection to the source described by
* the URL.<p>
* Connect initiates communmication with the source.
*
* @exception IOException thrown if the connect has IO trouble.
*/
public void connect() throws IOException
{
connected = true;
}
/**
* Close the connection to the source described by the URL. <p>
* Disconnect frees resources used to maintain a connection
* to the source. If no resources are in use, disconnect
* is ignored.
* Implies a stop, if stop hasn't already been called.
*/
public void disconnect()
{
connected = false;
}
/**
* Returns an zero length array because no controls
* are supported.
*
* @return a zero length <code>Object</code> array.
*/
public Object[] getControls()
{
return null;
}
public void setControl( Object control)
{
}
/**
* Returns <code>null</code> because no controls are implemented.
*
* @return <code>null</code>.
*/
public Object getControl( String controlName)
{
return null;
}
}
|