public class AudioMixingPushBufferDataSource extends javax.media.protocol.PushBufferDataSource implements javax.media.protocol.CaptureDevice, MuteDataSource, InbandDTMFDataSource
Modifier and Type | Field and Description |
---|---|
(package private) AudioMixer |
audioMixer
The AudioMixer performing the audio mixing, managing the input
DataSources and pushing the data of this output
PushBufferDataSource.
|
Constructor and Description |
---|
AudioMixingPushBufferDataSource(AudioMixer audioMixer)
Initializes a new AudioMixingPushBufferDataSource instance which
gives access to the result of the audio mixing performed by a specific
AudioMixer.
|
Modifier and Type | Method and Description |
---|---|
void |
addDTMF(DTMFInbandTone tone)
Adds a new inband DTMF tone to send.
|
void |
addInDataSource(javax.media.protocol.DataSource inDataSource)
Adds a new input DataSource to be mixed by the associated
AudioMixer of this instance and to not have its audio
contributions included in the mixing output represented by this
DataSource.
|
void |
connect()
Implements
DataSource.connect() . |
void |
disconnect()
Implements
DataSource.disconnect() . |
javax.media.CaptureDeviceInfo |
getCaptureDeviceInfo()
Implements
CaptureDevice.getCaptureDeviceInfo() . |
java.lang.String |
getContentType()
Implements
DataSource.getContentType() . |
java.lang.Object |
getControl(java.lang.String controlType)
Implements
DataSource.getControl(String) . |
java.lang.Object[] |
getControls()
Implements
DataSource.getControls() . |
javax.media.Time |
getDuration()
Implements
DataSource.getDuration() . |
javax.media.control.FormatControl[] |
getFormatControls()
Implements
CaptureDevice.getFormatControls() . |
short[] |
getNextToneSignal(double sampleRate,
int sampleSizeInBits)
Gets the next inband DTMF tone signal.
|
javax.media.protocol.PushBufferStream[] |
getStreams()
Implements
PushBufferDataSource.getStreams() . |
boolean |
isMute()
Determines whether this DataSource is mute.
|
boolean |
isSendingDTMF()
Determines whether this DataSource sends a DTMF tone.
|
void |
setMute(boolean mute)
Sets the mute state of this DataSource.
|
void |
start()
Implements
DataSource.start() . |
void |
stop()
Implements
DataSource.stop() . |
void |
updateInDataSource(javax.media.protocol.DataSource inDataSource)
The input DataSource has been updated.
|
final AudioMixer audioMixer
public AudioMixingPushBufferDataSource(AudioMixer audioMixer)
audioMixer
- the AudioMixer performing audio mixing,
managing the input DataSources and pushing the data of the new
output PushBufferDataSourcepublic void addDTMF(DTMFInbandTone tone)
addDTMF
in interface InbandDTMFDataSource
tone
- the DTMF tone to send.public void addInDataSource(javax.media.protocol.DataSource inDataSource)
inDataSource
- a DataSource to be added for mixing to
the AudioMixer associate with this instance and to not have its
audio contributions included in the mixing output represented by this
DataSourcepublic void connect() throws java.io.IOException
DataSource.connect()
. Lets the AudioMixer
know that one of its output PushBufferDataSources has been
connected and marks this DataSource as connected.connect
in interface javax.media.protocol.CaptureDevice
connect
in class javax.media.protocol.DataSource
java.io.IOException
- if the AudioMixer fails to connectpublic void disconnect()
DataSource.disconnect()
. Marks this
DataSource as disconnected and notifies the AudioMixer
that one of its output PushBufferDataSources has been
disconnected.disconnect
in interface javax.media.protocol.CaptureDevice
disconnect
in class javax.media.protocol.DataSource
public javax.media.CaptureDeviceInfo getCaptureDeviceInfo()
CaptureDevice.getCaptureDeviceInfo()
. Delegates to the
associated AudioMixer because it knows which
CaptureDevice is being wrapped.getCaptureDeviceInfo
in interface javax.media.protocol.CaptureDevice
public java.lang.String getContentType()
DataSource.getContentType()
. Delegates to the
associated AudioMixer because it manages the inputs and knows
their characteristics.getContentType
in class javax.media.protocol.DataSource
public java.lang.Object getControl(java.lang.String controlType)
DataSource.getControl(String)
.getControl
in interface javax.media.Controls
getControl
in class javax.media.protocol.DataSource
controlType
- a String value which names the type of the
control of this instance to be retrievedpublic java.lang.Object[] getControls()
DataSource.getControls()
. Gets an array of
Objects which represent the controls available for this
DataSource.getControls
in interface javax.media.Controls
getControls
in class javax.media.protocol.DataSource
public javax.media.Time getDuration()
DataSource.getDuration()
. Delegates to the associated
AudioMixer because it manages the inputs and knows their
characteristics.getDuration
in interface javax.media.Duration
getDuration
in class javax.media.protocol.DataSource
public javax.media.control.FormatControl[] getFormatControls()
CaptureDevice.getFormatControls()
. Delegates to the
associated AudioMixer because it knows which
CaptureDevice is being wrapped.getFormatControls
in interface javax.media.protocol.CaptureDevice
public short[] getNextToneSignal(double sampleRate, int sampleSizeInBits)
sampleRate
- The sampling frequency (codec clock rate) in Hz of the
stream which will encapsulate this signal.sampleSizeInBits
- The size of each sample (8 for a byte, 16 for a
short and 32 for an int)public javax.media.protocol.PushBufferStream[] getStreams()
PushBufferDataSource.getStreams()
. Gets a
PushBufferStream which reads data from the associated
AudioMixer and mixes its inputs.getStreams
in class javax.media.protocol.PushBufferDataSource
public boolean isMute()
isMute
in interface MuteDataSource
public boolean isSendingDTMF()
public void setMute(boolean mute)
setMute
in interface MuteDataSource
mute
- true to mute this DataSource; otherwise,
falsepublic void start() throws java.io.IOException
DataSource.start()
. Starts the output
PushBufferStream of this DataSource (if it exists) and
notifies the AudioMixer that one of its output
PushBufferDataSources has been started.start
in interface javax.media.protocol.CaptureDevice
start
in class javax.media.protocol.DataSource
java.io.IOException
- if anything wrong happens while starting the output
PushBufferStream of this DataSourcepublic void stop() throws java.io.IOException
DataSource.stop()
. Notifies the AudioMixer
that one of its output PushBufferDataSources has been stopped
and stops the output PushBufferStream of this
DataSource (if it exists).stop
in interface javax.media.protocol.CaptureDevice
stop
in class javax.media.protocol.DataSource
java.io.IOException
- if anything wrong happens while stopping the output
PushBufferStream of this DataSourcepublic void updateInDataSource(javax.media.protocol.DataSource inDataSource)
inDataSource
- the DataSource that was updated.
Jitsi, the OpenSource Java VoIP and Instant Messaging client.
Distributable under Apache license.