P25 - work in progress to improve CQPSK LSM audio output. Audio output is still choppy but greatly improved over the previous test release.

This commit is contained in:
dennis.sheirer
2015-04-25 23:21:20 +00:00
parent 505f2ca474
commit c12123a81b
32 changed files with 1009 additions and 338 deletions

20
src/audio/Audio.java Normal file
View File

@@ -0,0 +1,20 @@
package audio;
import javax.sound.sampled.AudioFormat;
public class Audio
{
public static final AudioFormat MONO_48K_16_LE =
new AudioFormat( 48000, //SampleRate
16, //Sample Size
1, //Channels
true, //Signed
false ); //Little Endian
public static final AudioFormat STEREO_48K_16_LE =
new AudioFormat( 48000, //SampleRate
16, //Sample Size
2, //Channels
true, //Signed
false ); //Little Endian
}

View File

@@ -1,12 +1,5 @@
package audio;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.Line;
import javax.sound.sampled.Mixer;
import javax.sound.sampled.SourceDataLine;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -14,51 +7,19 @@ public class AudioOutputManager
{
private final static Logger mLog =
LoggerFactory.getLogger( AudioOutputManager.class );
/**
* Handles all audio produced by the decoding channels and routes audio
* packets to any combination of outputs based on any alias audio routing
* options specified by the user.
*/
public AudioOutputManager()
{
}
public static void main( String[] args )
{
Mixer.Info[] mi = AudioSystem.getMixerInfo();
for (Mixer.Info info : mi)
{
mLog.debug( "info: " + info );
Mixer m = AudioSystem.getMixer(info);
mLog.debug( "mixer " + m );
Line.Info[] sl = m.getSourceLineInfo();
for (Line.Info info2 : sl)
{
mLog.debug( " info: " + info2 );
try
{
Line line = AudioSystem.getLine( info2 );
if (line instanceof SourceDataLine)
{
SourceDataLine source = (SourceDataLine) line;
DataLine.Info i = (DataLine.Info) source.getLineInfo();
for (AudioFormat format : i.getFormats())
{
mLog.debug( " format: " + format );
}
}
}
catch( Exception e )
{
mLog.error( "errors", e );
}
}
}
}
}

View File

@@ -0,0 +1,24 @@
package audio;
import java.nio.ByteBuffer;
public class AudioPacket
{
private ByteBuffer mAudioBuffer;
private int mPriority;
public AudioPacket()
{
}
public void setAudioBuffer( ByteBuffer audioBuffer )
{
mAudioBuffer = audioBuffer;
}
public ByteBuffer getAudioBuffer()
{
return mAudioBuffer;
}
}

View File

@@ -0,0 +1,6 @@
package audio;
public interface IAudioPacketReceiver
{
}

View File

@@ -0,0 +1,12 @@
package audio;
public class MonoAudioOutput
{
/**
* Buffered
*/
public MonoAudioOutput()
{
}
}