Module org.refcodes.audio
Package org.refcodes.audio
Class AbstractLineOutSampleWriter<S extends SoundSample,B extends LineOutSampleWriter<S,B>>
java.lang.Object
org.refcodes.audio.AbstractLineOutSampleWriter<S,B>
- Type Parameters:
S
- TheSoundSample
(sub-)type on which theSampleWriter
implementation is to operate on.B
- TheSampleWriter
implementing thisAbstractLineOutSampleWriter
.
- All Implemented Interfaces:
AutoCloseable
,BitsPerSampleAccessor
,BitsPerSampleAccessor.BitsPerSampleBuilder<B>
,BitsPerSampleAccessor.BitsPerSampleMutator
,BitsPerSampleAccessor.BitsPerSampleProperty
,LineOutSampleWriter<S,
,B> SampleWriter<S,
,B> SamplingRateAccessor
,SamplingRateAccessor.SamplingRateBuilder<B>
,SamplingRateAccessor.SamplingRateMutator
,SamplingRateAccessor.SamplingRateProperty
,org.refcodes.io.RowWriter<S>
- Direct Known Subclasses:
LineOutMonoSampleWriter
,LineOutSoundSampleWriter
public abstract class AbstractLineOutSampleWriter<S extends SoundSample,B extends LineOutSampleWriter<S,B>>
extends Object
implements LineOutSampleWriter<S,B>
The
AbstractLineOutSampleWriter
provides a foundation means to write
sound samples to a line-out device.-
Nested Class Summary
Nested classes/interfaces inherited from interface org.refcodes.audio.BitsPerSampleAccessor
BitsPerSampleAccessor.BitsPerSampleBuilder<B extends BitsPerSampleAccessor.BitsPerSampleBuilder<B>>, BitsPerSampleAccessor.BitsPerSampleMutator, BitsPerSampleAccessor.BitsPerSampleProperty
Nested classes/interfaces inherited from interface org.refcodes.audio.SamplingRateAccessor
SamplingRateAccessor.SamplingRateBuilder<B extends SamplingRateAccessor.SamplingRateBuilder<B>>, SamplingRateAccessor.SamplingRateMutator, SamplingRateAccessor.SamplingRateProperty
-
Field Summary
Modifier and TypeFieldDescriptionprotected BitsPerSample
protected static final long
protected static final long
-
Constructor Summary
ConstructorDescriptionConstructs anAbstractLineOutSampleWriter
.AbstractLineOutSampleWriter
(BitsPerSample aBitsPerSample) Constructs anAbstractLineOutSampleWriter
with the givenBitsPerSample
to use. -
Method Summary
Modifier and TypeMethodDescriptionRetrieves the bits/sample per channel from the bits/sample per channel property.void
setBitsPerSample
(BitsPerSample aBitsPerSample) Sets the bits/sample per channel for the bits/sample per channel property.protected static SourceDataLine
toLineOut
(SoundSample aSoundSample, BitsPerSample aBitsPerSample) Produces a line-outSourceDataLine
instance for writing samples to.protected long
toWavSample
(double eSampleData) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.refcodes.audio.BitsPerSampleAccessor.BitsPerSampleBuilder
withBitsPerSample
Methods inherited from interface org.refcodes.audio.BitsPerSampleAccessor.BitsPerSampleProperty
letBitsPerSample
Methods inherited from interface org.refcodes.audio.SampleWriter
close, writeNext
Methods inherited from interface org.refcodes.audio.SamplingRateAccessor
getSamplingRate
Methods inherited from interface org.refcodes.audio.SamplingRateAccessor.SamplingRateBuilder
withSamplingRate
Methods inherited from interface org.refcodes.audio.SamplingRateAccessor.SamplingRateMutator
setSamplingRate
Methods inherited from interface org.refcodes.audio.SamplingRateAccessor.SamplingRateProperty
letSamplingRate
-
Field Details
-
MAX_16_BIT
protected static final long MAX_16_BIT- See Also:
-
MAX_8_BIT
protected static final long MAX_8_BIT- See Also:
-
_bitsPerSample
-
-
Constructor Details
-
AbstractLineOutSampleWriter
public AbstractLineOutSampleWriter()Constructs anAbstractLineOutSampleWriter
. -
AbstractLineOutSampleWriter
Constructs anAbstractLineOutSampleWriter
with the givenBitsPerSample
to use.- Parameters:
aBitsPerSample
- The bits/sample to use when doing audio playback.
-
-
Method Details
-
setBitsPerSample
Sets the bits/sample per channel for the bits/sample per channel property.- Specified by:
setBitsPerSample
in interfaceBitsPerSampleAccessor.BitsPerSampleMutator
- Parameters:
aBitsPerSample
- The bits/sample per channel to be stored by the sampling rate property.
-
getBitsPerSample
Retrieves the bits/sample per channel from the bits/sample per channel property.- Specified by:
getBitsPerSample
in interfaceBitsPerSampleAccessor
- Returns:
- The bits/sample per channel stored by the bits/sample per channel property.
-
toWavSample
protected long toWavSample(double eSampleData) -
toLineOut
protected static SourceDataLine toLineOut(SoundSample aSoundSample, BitsPerSample aBitsPerSample) throws LineUnavailableException Produces a line-outSourceDataLine
instance for writing samples to.- Parameters:
aSoundSample
- TheSoundSample
from which to get the according metrics.aBitsPerSample
- The preferred bits/sample.- Returns:
- An instance of the
SourceDataLine
to which to write data. - Throws:
LineUnavailableException
- thrown in case the audio-line cannot be acquired.
-