Jitsi: the OpenSource Java VoIP and Instant Messaging client.

net.java.sip.communicator.impl.neomedia.jmfext.media.protocol.portaudio
Class DataSource

java.lang.Object
  extended by javax.media.protocol.DataSource
      extended by javax.media.protocol.PullBufferDataSource
          extended by net.java.sip.communicator.impl.neomedia.jmfext.media.protocol.AbstractPullBufferCaptureDevice
              extended by net.java.sip.communicator.impl.neomedia.jmfext.media.protocol.portaudio.DataSource
All Implemented Interfaces:
javax.media.Controls, javax.media.Duration, javax.media.protocol.CaptureDevice

public class DataSource
extends AbstractPullBufferCaptureDevice

Implements DataSource and CaptureDevice for PortAudio.

Author:
Damian Minkov, Lyubomir Marinov

Field Summary
 
Fields inherited from interface javax.media.Duration
DURATION_UNBOUNDED, DURATION_UNKNOWN
 
Constructor Summary
DataSource()
          Initializes a new DataSource instance.
DataSource(javax.media.MediaLocator locator)
          Initializes a new DataSource instance from a specific MediaLocator.
DataSource(javax.media.MediaLocator locator, javax.media.Format[] supportedFormats, boolean audioQualityImprovement)
          Initializes a new DataSource instance from a specific MediaLocator and which has a specific list of Format in which it is capable of capturing audio data overriding its registration with JMF and optionally uses audio quality improvement in accord with the preferences of the user.
 
Method Summary
protected  AbstractPullBufferStream createStream(int streamIndex, javax.media.control.FormatControl formatControl)
          Creates a new PullBufferStream which is to be at a specific zero-based index in the list of streams of this PullBufferDataSource.
protected  void doConnect()
          Opens a connection to the media source specified by the MediaLocator of this DataSource.
protected  void doDisconnect()
          Closes the connection to the media source specified by the MediaLocator of this DataSource.
static int getDeviceIndex(javax.media.MediaLocator locator)
          Gets the device index of a PortAudio device from a specific MediaLocator identifying it.
protected  javax.media.Format[] getSupportedFormats(int streamIndex)
          Gets the Formats which are to be reported by a FormatControl as supported formats for a PullBufferStream at a specific zero-based index in the list of streams of this PullBufferDataSource.
 
Methods inherited from class net.java.sip.communicator.impl.neomedia.jmfext.media.protocol.AbstractPullBufferCaptureDevice
connect, createFrameRateControl, disconnect, doStart, doStop, getCaptureDeviceInfo, getContentType, getControl, getControls, getDuration, getFormat, getFormatControls, getStreams, getStreamSyncRoot, setCaptureDeviceInfo, setFormat, start, stop, streams
 
Methods inherited from class javax.media.protocol.DataSource
getLocator, initCheck, setLocator
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DataSource

public DataSource()
Initializes a new DataSource instance.


DataSource

public DataSource(javax.media.MediaLocator locator)
Initializes a new DataSource instance from a specific MediaLocator.

Parameters:
locator - the MediaLocator to create the new instance from

DataSource

public DataSource(javax.media.MediaLocator locator,
                  javax.media.Format[] supportedFormats,
                  boolean audioQualityImprovement)
Initializes a new DataSource instance from a specific MediaLocator and which has a specific list of Format in which it is capable of capturing audio data overriding its registration with JMF and optionally uses audio quality improvement in accord with the preferences of the user.

Parameters:
locator - the MediaLocator to create the new instance from
supportedFormats - the list of Formats in which the new instance is to be capable of capturing audio data
audioQualityImprovement - true if audio quality improvement is to be enabled in accord with the preferences of the user or false to completely disable audio quality improvement
Method Detail

createStream

protected AbstractPullBufferStream createStream(int streamIndex,
                                                javax.media.control.FormatControl formatControl)
Creates a new PullBufferStream which is to be at a specific zero-based index in the list of streams of this PullBufferDataSource. The Format-related information of the new instance is to be abstracted by a specific FormatControl.

Specified by:
createStream in class AbstractPullBufferCaptureDevice
Parameters:
streamIndex - the zero-based index of the PullBufferStream in the list of streams of this PullBufferDataSource
formatControl - the FormatControl which is to abstract the Format-related information of the new instance
Returns:
a new PullBufferStream which is to be at the specified streamIndex in the list of streams of this PullBufferDataSource and which has its Format-related information abstracted by the specified formatControl
See Also:
AbstractPullBufferCaptureDevice.createStream(int, FormatControl)

doConnect

protected void doConnect()
                  throws IOException
Opens a connection to the media source specified by the MediaLocator of this DataSource.

Overrides:
doConnect in class AbstractPullBufferCaptureDevice
Throws:
IOException - if anything goes wrong while opening the connection to the media source specified by the MediaLocator of this DataSource
See Also:
AbstractPullBufferCaptureDevice.doConnect()

doDisconnect

protected void doDisconnect()
Closes the connection to the media source specified by the MediaLocator of this DataSource. Allows extenders to override and be sure that there will be no request to close a connection if the connection has not been opened yet.

Overrides:
doDisconnect in class AbstractPullBufferCaptureDevice

getDeviceIndex

public static int getDeviceIndex(javax.media.MediaLocator locator)
Gets the device index of a PortAudio device from a specific MediaLocator identifying it.

Parameters:
locator - the MediaLocator identifying the device index of a PortAudio device to get
Returns:
the device index of a PortAudio device identified by locator

getSupportedFormats

protected javax.media.Format[] getSupportedFormats(int streamIndex)
Gets the Formats which are to be reported by a FormatControl as supported formats for a PullBufferStream at a specific zero-based index in the list of streams of this PullBufferDataSource.

Overrides:
getSupportedFormats in class AbstractPullBufferCaptureDevice
Parameters:
streamIndex - the zero-based index of the PullBufferStream for which the specified FormatControl is to report the list of supported Formats
Returns:
an array of Formats to be reported by a FormatControl as the supported formats for the PullBufferStream at the specified streamIndex in the list of streams of this PullBufferDataSource
See Also:
AbstractPullBufferCaptureDevice.getSupportedFormats(int)

Jitsi: the OpenSource Java VoIP and Instant Messaging client.

Jitsi, the OpenSource Java VoIP and Instant Messaging client.
Distributable under LGPL license.