Skip to content

Commit

Permalink
Version 3.40 in progress
Browse files Browse the repository at this point in the history
  • Loading branch information
ppeccin committed Nov 18, 2013
1 parent e961a74 commit 2c5ebbd
Show file tree
Hide file tree
Showing 10 changed files with 75 additions and 37 deletions.
2 changes: 1 addition & 1 deletion javatari/src/javatari.properties
@@ -1 +1 @@
# CONSOLE SETTINGS# 0 = No Forced Clock, -1 = Full Speed (useful for VSynch). *** TIA Real Clock = 3584160 ***TIA_FORCED_CLOCK = 0TIA_SYNC_WITH_AUDIO_MONITOR = falseTIA_SYNC_WITH_VIDEO_MONITOR = falseTIA_AUDIO_SAMPLE_RATE = 31430TIA_AUDIO_MAX_AMPLITUDE = 0.5VIDEO_NTSC_FPS = 60VIDEO_PAL_FPS = 50.384615RAM_FRY_ZERO_BITS = 120RAM_FRY_ONE_BITS = 25RAM_FRY_VARIANCE = 0.3BUS_DATA_RETENTION = trueCONSOLE_FAST_SPEED_FACTOR = 15# SCREEN SETTINSG# 0 = External Synch (useful for VSynch), -1 = Auto FPS (On Demand)SCREEN_DEFAULT_FPS = -1SCREEN_BUFFER_VSYNC = 0SCREEN_DEFAULT_ORIGIN_X = 68SCREEN_DEFAULT_ORIGIN_Y_PCT = 12.4SCREEN_DEFAULT_WIDTH = 160SCREEN_DEFAULT_HEIGHT_PCT = 81.5SCREEN_DEFAULT_SCALE_X = 4SCREEN_DEFAULT_SCALE_Y = 2SCREEN_DEFAULT_SCALE_ASPECT_X = 2SCREEN_BORDER_SIZE = 3SCREEN_OSD_FRAMES = 160SCREEN_VSYNC_TOLERANCE = 16SCREEN_QUALITY_RENDERING = falseSCREEN_CRT_MODE = 0SCREEN_CRT_RETENTION_ALPHA = 0.75SCREEN_SCANLINES_STRENGTH = 0.5SCREEN_MULTI_BUFFERING = 2SCREEN_PAGE_FLIPPING = trueSCREEN_FRAME_ACCELERATION = -1SCREEN_INTERM_FRAME_ACCELERATION = -1SCREEN_SCANLINES_ACCELERATION = -1 SCREEN_FIXED_SIZE = falseSCREEN_FULLSCREEN = falseSCREEN_USE_FSEM = -1SCREEN_EMBEDDED_POPUP = trueSCREEN_CARTRIDGE_CHANGE = true# SPEAKER SETTINGS# 0 = External Synch, -1 = Auto FPS (On Demand)SPEAKER_DEFAULT_FPS = -1SPEAKER_INPUT_BUFFER_SIZE = 1536SPEAKER_OUTPUT_BUFFER_SIZE = 1024SPEAKER_OUTPUT_BUFFER_FULL_SLEEP_TIME = 5SPEAKER_NO_DATA_SLEEP_TIME = 10SPEAKER_ADDED_THREAD_PRIORITY = 0# NETWORK SETTINGSMULTIPLAYER_UI = trueSERVER_SERVICE_PORT = 9998SERVER_MAX_UPDATES_PENDING = 20CLIENT_MAX_UPDATES_PENDING = 20# CARTRIDGE SETTINGS# Leave blank to use defaults/auto detectionCARTRIDGE_NAME =CARTRIDGE_LABEL =CARTRIDGE_LABEL_COLORS =CARTRIDGE_PADDLES =CARTRIDGE_CRT_MODE =CARTRIDGE_FORMAT =# CONTROLS SETTINGSPADDLES_MODE =JOYSTICK_UPDATE_RATE = 120
# CONSOLE SETTINGS# 0 = No Forced Clock, -1 = Full Speed (useful for VSynch). *** TIA Real Clock = 3584160 ***TIA_FORCED_CLOCK = 0TIA_SYNC_WITH_AUDIO_MONITOR = falseTIA_SYNC_WITH_VIDEO_MONITOR = falseTIA_AUDIO_SAMPLE_RATE = 31440TIA_AUDIO_MAX_AMPLITUDE = 0.5VIDEO_NTSC_FPS = 60VIDEO_PAL_FPS = 50.3846153846153847RAM_FRY_ZERO_BITS = 120RAM_FRY_ONE_BITS = 25RAM_FRY_VARIANCE = 0.3BUS_DATA_RETENTION = trueCONSOLE_FAST_SPEED_FACTOR = 15# SCREEN SETTINSG# 0 = External Synch (useful for VSynch), -1 = Auto FPS (On Demand)SCREEN_DEFAULT_FPS = -1SCREEN_BUFFER_VSYNC = 0SCREEN_DEFAULT_ORIGIN_X = 68SCREEN_DEFAULT_ORIGIN_Y_PCT = 12.4SCREEN_DEFAULT_WIDTH = 160SCREEN_DEFAULT_HEIGHT_PCT = 81.5SCREEN_DEFAULT_SCALE_X = 4SCREEN_DEFAULT_SCALE_Y = 2SCREEN_DEFAULT_SCALE_ASPECT_X = 2SCREEN_BORDER_SIZE = 3SCREEN_OSD_FRAMES = 160SCREEN_VSYNC_TOLERANCE = 16SCREEN_QUALITY_RENDERING = falseSCREEN_CRT_MODE = 0SCREEN_CRT_RETENTION_ALPHA = 0.75SCREEN_SCANLINES_STRENGTH = 0.5SCREEN_MULTI_BUFFERING = 2SCREEN_PAGE_FLIPPING = trueSCREEN_FRAME_ACCELERATION = -1SCREEN_INTERM_FRAME_ACCELERATION = -1SCREEN_SCANLINES_ACCELERATION = -1 SCREEN_FIXED_SIZE = falseSCREEN_FULLSCREEN = falseSCREEN_USE_FSEM = -1SCREEN_EMBEDDED_POPUP = trueSCREEN_CARTRIDGE_CHANGE = true# SPEAKER SETTINGS# 0 = External Synch, -1 = Auto FPS (On Demand)SPEAKER_DEFAULT_FPS = -1SPEAKER_INPUT_BUFFER_SIZE = 1536SPEAKER_OUTPUT_BUFFER_SIZE = 1024SPEAKER_OUTPUT_BUFFER_FULL_SLEEP_TIME = 6SPEAKER_NO_DATA_SLEEP_TIME = 6SPEAKER_ADDED_THREAD_PRIORITY = 0# NETWORK SETTINGSMULTIPLAYER_UI = trueSERVER_SERVICE_PORT = 9998SERVER_MAX_UPDATES_PENDING = 20CLIENT_MAX_UPDATES_PENDING = 20# CARTRIDGE SETTINGS# Leave blank to use defaults/auto detectionCARTRIDGE_NAME =CARTRIDGE_LABEL =CARTRIDGE_LABEL_COLORS =CARTRIDGE_PADDLES =CARTRIDGE_CRT_MODE =CARTRIDGE_FORMAT =# CONTROLS SETTINGSPADDLES_MODE =JOYSTICK_UPDATE_RATE = 120
Expand Down
2 changes: 1 addition & 1 deletion javatari/src/javatari.single.properties
@@ -1 +1 @@
# CONSOLE SETTINGS# 0 = No Forced Clock, -1 = Full Speed (useful for VSynch). *** TIA Real Clock = 3584160 ***TIA_FORCED_CLOCK = 0TIA_SYNC_WITH_AUDIO_MONITOR = trueTIA_SYNC_WITH_VIDEO_MONITOR = trueTIA_AUDIO_SAMPLE_RATE = 31430TIA_AUDIO_MAX_AMPLITUDE = 0.5VIDEO_NTSC_FPS = 60VIDEO_PAL_FPS = 50.384615RAM_FRY_ZERO_BITS = 120RAM_FRY_ONE_BITS = 25RAM_FRY_VARIANCE = 0.3BUS_DATA_RETENTION = trueCONSOLE_FAST_SPEED_FACTOR = 15# SCREEN SETTINSG# 0 = External Synch (useful for VSynch), -1 = Auto FPS (On Demand)SCREEN_DEFAULT_FPS = 0SCREEN_BUFFER_VSYNC = 0SCREEN_DEFAULT_ORIGIN_X = 68SCREEN_DEFAULT_ORIGIN_Y_PCT = 12.4SCREEN_DEFAULT_WIDTH = 160SCREEN_DEFAULT_HEIGHT_PCT = 81.5SCREEN_DEFAULT_SCALE_X = 4SCREEN_DEFAULT_SCALE_Y = 2SCREEN_DEFAULT_SCALE_ASPECT_X = 2SCREEN_BORDER_SIZE = 3SCREEN_OSD_FRAMES = 160SCREEN_VSYNC_TOLERANCE = 16SCREEN_QUALITY_RENDERING = falseSCREEN_CRT_MODE = 0SCREEN_CRT_RETENTION_ALPHA = 0.75SCREEN_SCANLINES_STRENGTH = 0.5SCREEN_MULTI_BUFFERING = 2SCREEN_PAGE_FLIPPING = trueSCREEN_FRAME_ACCELERATION = -1SCREEN_INTERM_FRAME_ACCELERATION = -1SCREEN_SCANLINES_ACCELERATION = -1 SCREEN_FIXED_SIZE = falseSCREEN_FULLSCREEN = falseSCREEN_USE_FSEM = -1SCREEN_EMBEDDED_POPUP = trueSCREEN_CARTRIDGE_CHANGE = true# SPEAKER SETTINGS# 0 = External Synch, -1 = Auto FPS (On Demand)SPEAKER_DEFAULT_FPS = 0SPEAKER_INPUT_BUFFER_SIZE = 1536SPEAKER_OUTPUT_BUFFER_SIZE = 1536SPEAKER_OUTPUT_BUFFER_FULL_SLEEP_TIME = 5SPEAKER_NO_DATA_SLEEP_TIME = 10SPEAKER_ADDED_THREAD_PRIORITY = 0# NETWORK SETTINGSMULTIPLAYER_UI = trueSERVER_SERVICE_PORT = 9998SERVER_MAX_UPDATES_PENDING = 20CLIENT_MAX_UPDATES_PENDING = 20# CARTRIDGE SETTINGS# Leave blank to use defaults/auto detectionCARTRIDGE_NAME =CARTRIDGE_LABEL =CARTRIDGE_LABEL_COLORS =CARTRIDGE_PADDLES =CARTRIDGE_CRT_MODE =CARTRIDGE_FORMAT =# CONTROLS SETTINGSPADDLES_MODE = -1JOYSTICK_UPDATE_RATE = 120
# CONSOLE SETTINGS# 0 = No Forced Clock, -1 = Full Speed (useful for VSynch). *** TIA Real Clock = 3584160 ***TIA_FORCED_CLOCK = 0TIA_SYNC_WITH_AUDIO_MONITOR = trueTIA_SYNC_WITH_VIDEO_MONITOR = trueTIA_AUDIO_SAMPLE_RATE = 31440TIA_AUDIO_MAX_AMPLITUDE = 0.5VIDEO_NTSC_FPS = 60VIDEO_PAL_FPS = 50.3846153846153847RAM_FRY_ZERO_BITS = 120RAM_FRY_ONE_BITS = 25RAM_FRY_VARIANCE = 0.3BUS_DATA_RETENTION = trueCONSOLE_FAST_SPEED_FACTOR = 15# SCREEN SETTINSG# 0 = External Synch (useful for VSynch), -1 = Auto FPS (On Demand)SCREEN_DEFAULT_FPS = 0SCREEN_BUFFER_VSYNC = 0SCREEN_DEFAULT_ORIGIN_X = 68SCREEN_DEFAULT_ORIGIN_Y_PCT = 12.4SCREEN_DEFAULT_WIDTH = 160SCREEN_DEFAULT_HEIGHT_PCT = 81.5SCREEN_DEFAULT_SCALE_X = 4SCREEN_DEFAULT_SCALE_Y = 2SCREEN_DEFAULT_SCALE_ASPECT_X = 2SCREEN_BORDER_SIZE = 3SCREEN_OSD_FRAMES = 160SCREEN_VSYNC_TOLERANCE = 16SCREEN_QUALITY_RENDERING = falseSCREEN_CRT_MODE = 0SCREEN_CRT_RETENTION_ALPHA = 0.75SCREEN_SCANLINES_STRENGTH = 0.5SCREEN_MULTI_BUFFERING = 2SCREEN_PAGE_FLIPPING = trueSCREEN_FRAME_ACCELERATION = -1SCREEN_INTERM_FRAME_ACCELERATION = -1SCREEN_SCANLINES_ACCELERATION = -1 SCREEN_FIXED_SIZE = falseSCREEN_FULLSCREEN = falseSCREEN_USE_FSEM = -1SCREEN_EMBEDDED_POPUP = trueSCREEN_CARTRIDGE_CHANGE = true# SPEAKER SETTINGS# 0 = External Synch, -1 = Auto FPS (On Demand)SPEAKER_DEFAULT_FPS = 0SPEAKER_INPUT_BUFFER_SIZE = 1536SPEAKER_OUTPUT_BUFFER_SIZE = 1536SPEAKER_OUTPUT_BUFFER_FULL_SLEEP_TIME = 6SPEAKER_NO_DATA_SLEEP_TIME = 6SPEAKER_ADDED_THREAD_PRIORITY = 0# NETWORK SETTINGSMULTIPLAYER_UI = trueSERVER_SERVICE_PORT = 9998SERVER_MAX_UPDATES_PENDING = 20CLIENT_MAX_UPDATES_PENDING = 20# CARTRIDGE SETTINGS# Leave blank to use defaults/auto detectionCARTRIDGE_NAME =CARTRIDGE_LABEL =CARTRIDGE_LABEL_COLORS =CARTRIDGE_PADDLES =CARTRIDGE_CRT_MODE =CARTRIDGE_FORMAT =# CONTROLS SETTINGSPADDLES_MODE = -1JOYSTICK_UPDATE_RATE = 120
Expand Down
2 changes: 1 addition & 1 deletion javatari/src/org/javatari/atari/tia/TIA.java
Expand Up @@ -116,7 +116,7 @@ public void clockPulse() {
videoOutputVSynched = videoOutput.nextLine(linePixels, vSyncOn);
} while (!videoOutputVSynched && powerOn);
if (powerOn) {
audioOutput.sendSamplesFrameToMonitor();
audioOutput.finishFrame();
// If needed, synch with audio and video output after each frame
if (SYNC_WITH_AUDIO_MONITOR) audioOutput.monitor().synchOutput();
if (SYNC_WITH_VIDEO_MONITOR) videoOutput.monitor().synchOutput();
Expand Down
39 changes: 27 additions & 12 deletions javatari/src/org/javatari/atari/tia/audio/AudioGenerator.java
Expand Up @@ -18,7 +18,12 @@ public void connectMonitor(AudioMonitor monitor) {

@Override
public void clockPulse() {
if (generatedSamples < samplesPerFrame) generateNextSamples(1);
if (frameSamples < samplesPerFrame) generateNextSamples(1);
if (generatedSamples >= 106) sendGeneratedSamples();
}

public AudioMonitor monitor() {
return monitor;
}

public ChannelStream channel0() {
Expand All @@ -29,33 +34,43 @@ public ChannelStream channel1() {
return channel1;
}

public void sendSamplesFrameToMonitor() {
int missingSamples = samplesPerFrame - generatedSamples;
if (missingSamples > 0) generateNextSamples(missingSamples);
if (monitor != null) monitor.nextSamples(samples, generatedSamples);
generatedSamples = 0;
public void videoStandard(VideoStandard standard) {
// Perfect amount is 2 sample per scanline = 31440, 524 for NTSC(60Hz) and 624 for PAL(50hz)
samplesPerFrame = (int) Math.round(SAMPLE_RATE / standard.fps);
}

public void signalOff() {
generatedSamples = 0;
frameSamples = 0;
if (monitor != null) monitor.nextSamples(null, 0);
}

public AudioMonitor monitor() {
return monitor;
public void finishFrame() {
int missingSamples = samplesPerFrame - frameSamples;
if (missingSamples > 0) generateNextSamples(missingSamples);
sendGeneratedSamples();
frameSamples = 0;
}

public void videoStandard(VideoStandard standard) {
// Perfect amount is 2 sample per scanline = 31440, 524 for NTSC(60Hz) and 624 for PAL(50hz)
samplesPerFrame = (int) Math.round(SAMPLE_RATE / standard.fps);
private void sendGeneratedSamples() {
if (monitor != null) {
int more = monitor.nextSamples(samples, generatedSamples);
if (more > 0) {
generateNextSamples(more);
monitor.nextSamples(samples, generatedSamples);
}
}
generatedSamples = 0;
}

protected abstract void generateNextSamples(int min);
protected abstract void generateNextSamples(int quant);


protected final ChannelStream channel0 = new ChannelStream();
protected final ChannelStream channel1 = new ChannelStream();
protected final byte[] samples = new byte[2048]; // More than enough samples for a frame
protected int generatedSamples = 0;
protected int frameSamples = 0;
private int samplesPerFrame = 0;

private AudioMonitor monitor;
Expand Down
Expand Up @@ -18,10 +18,17 @@ protected void generateNextSamples(int quant) {
}

samples[generatedSamples++] = (byte) (mixedSample * MAX_AMPLITUDE * 127);
frameSamples++;
}
}

private float lastSample;
@Override
public void signalOff() {
lastSample = 0;
super.signalOff();
}

private float lastSample = 0;

private static final float MAX_AMPLITUDE = Parameters.TIA_AUDIO_MAX_AMPLITUDE;

Expand Down
Expand Up @@ -4,7 +4,7 @@

public interface AudioMonitor {

public void nextSamples(byte[] samples, int quant);
public int nextSamples(byte[] samples, int quant);

public void synchOutput();

Expand Down
4 changes: 4 additions & 0 deletions javatari/src/org/javatari/main/TestStandalone.java
Expand Up @@ -35,5 +35,9 @@ public static void main(String[] args) {
}}).start();

}

// TODO Test Java7
// TODO Monitor optimizations
// TODO Keyboard Input Components and Focus

}
8 changes: 4 additions & 4 deletions javatari/src/org/javatari/parameters/Parameters.java
Expand Up @@ -337,11 +337,11 @@ public static void setCartridgeLabelColors(String colorsSpec) {
public static boolean TIA_SYNC_WITH_AUDIO_MONITOR = false;
public static boolean TIA_SYNC_WITH_VIDEO_MONITOR = false;

public static int TIA_AUDIO_SAMPLE_RATE = 31430; // A little less than TIA Scanline frequency * 2 = 31440
public static int TIA_AUDIO_SAMPLE_RATE = 31440; // A little less than TIA Scanline frequency * 2 = 31440
public static float TIA_AUDIO_MAX_AMPLITUDE = 0.5f;

public static double VIDEO_NTSC_FPS = 60;
public static double VIDEO_PAL_FPS = 50.384615;
public static double VIDEO_PAL_FPS = 50.3846153846153847;

public static int RAM_FRY_ZERO_BITS = 120; // Quantity of bits to change
public static int RAM_FRY_ONE_BITS = 25;
Expand Down Expand Up @@ -380,8 +380,8 @@ public static void setCartridgeLabelColors(String colorsSpec) {
public static double SPEAKER_DEFAULT_FPS = -1; // 0 = External Synch, -1 = Auto FPS (On Demand)
public static int SPEAKER_INPUT_BUFFER_SIZE = 1536; // In frames (samples)
public static int SPEAKER_OUTPUT_BUFFER_SIZE = 1024; // In frames (samples)
public static int SPEAKER_OUTPUT_BUFFER_FULL_SLEEP_TIME = 5; // In milliseconds
public static int SPEAKER_NO_DATA_SLEEP_TIME = 10; // In milliseconds
public static int SPEAKER_OUTPUT_BUFFER_FULL_SLEEP_TIME = 6; // In milliseconds
public static int SPEAKER_NO_DATA_SLEEP_TIME = 6; // In milliseconds
public static int SPEAKER_ADDED_THREAD_PRIORITY = 0;

public static boolean MULTIPLAYER_UI = true;
Expand Down
8 changes: 5 additions & 3 deletions javatari/src/org/javatari/pc/screen/DesktopScreenWindow.java
Expand Up @@ -302,13 +302,15 @@ public void canvasSetRenderingMode() {
new ImageCapabilities(true), new ImageCapabilities(true),
Monitor.PAGE_FLIPPING ? FlipContents.BACKGROUND : null
);
// First try with vSync option
Class<?> extBufCapClass = null;
try {
// Creates ExtendedBufferCapabilities via reflection to avoid problems with AccessControl
extBufCapClass = Class.forName("sun.java2d.pipe.hw.ExtendedBufferCapabilities");
} catch (Exception ex) {}
// First try with vSync option
if (Monitor.BUFFER_VSYNC != -1)
try {
// TODO Extract extBufCapClass creation to alwaus display granted VSYNC state at the end
// Creates ExtendedBufferCapabilities via reflection to avoid problems with AccessControl
extBufCapClass = Class.forName("sun.java2d.pipe.hw.ExtendedBufferCapabilities");
Class<?> vSyncTypeClass = Class.forName("sun.java2d.pipe.hw.ExtendedBufferCapabilities$VSyncType");
Constructor<?> extBufCapConstructor = extBufCapClass.getConstructor(
new Class[] { BufferCapabilities.class, vSyncTypeClass }
Expand Down
36 changes: 23 additions & 13 deletions javatari/src/org/javatari/pc/speaker/Speaker.java
Expand Up @@ -2,7 +2,6 @@

package org.javatari.pc.speaker;


import java.nio.ByteBuffer;

import javax.sound.sampled.AudioFormat;
Expand All @@ -26,6 +25,7 @@ public void connect(AudioSignal signal) { // Must be powered off to connect a si
public void powerOn(){
if (!triedToGetLine) getLine();
if (dataLine == null) return;
currOutputBufferPosition = 0;
dataLine.start();
clock.go();
}
Expand All @@ -35,6 +35,7 @@ public void powerOff(){
clock.pause();
dataLine.flush();
dataLine.stop();
currOutputBufferPosition = 0;
}

public void destroy() {
Expand All @@ -45,19 +46,23 @@ public void destroy() {
}

@Override
public synchronized void nextSamples(byte[] buffer, int quant) {
if (dataLine == null) return;
public synchronized int nextSamples(byte[] buffer, int quant) {
if (dataLine == null) return -1;
if (buffer == null) { // Signal is off
dataLine.flush();
return;
return -1;
}
// Drop samples that don't fit the input buffer available capacity
int ava = inputBuffer.remaining();
if (ava > quant)
ava = quant;
// else
// System.out.println(">>>> DROPPED: " + (quant - ava));
else
if (ava < quant) System.out.println(">>>> DROPPED: " + quant + " - " + ava + " = " + (quant - ava));
inputBuffer.put(buffer, 0, ava);
// if (currOutputBufferPosition < 400)
// return 20;
// else
return -1;
}

@Override
Expand Down Expand Up @@ -101,23 +106,27 @@ private synchronized int getFromInputBuffer(byte[] buffer, int quant) {
private void refresh() {
if (dataLine == null) return;
int ava = dataLine.available(); // this is a little expensive... :-(

currOutputBufferPosition = OUTPUT_BUFFER_SIZE - ava;
// System.out.println(">> Out: " + currOutputBufferPosition + "\tIn: " + inputBuffer.position());

if (ava == 0) {
if (OUTPUT_BUFFER_FULL_SLEEP_TIME > 0 && FPS < 0) {
// System.out.println("Buffer Full, sleeping...");
// System.out.println("+ OutputBuffer FULL");
if (OUTPUT_BUFFER_FULL_SLEEP_TIME > 0 && FPS < 0)
try { Thread.sleep(OUTPUT_BUFFER_FULL_SLEEP_TIME, 0); } catch (InterruptedException e) { }
}
return;
}
int data = getFromInputBuffer(tempBuffer, ava);
// System.out.println(ava + ", " + data + ", " + inputBuffer.remaining());
if (data == 0) {
if (NO_DATA_SLEEP_TIME > 0 && FPS < 0) {
// System.out.println("NO DATA, sleeping...");
// System.out.println("- InputBuffer EMPTY, OutputBuffer: " + ava);
if (NO_DATA_SLEEP_TIME > 0 && FPS < 0)
try { Thread.sleep(NO_DATA_SLEEP_TIME, 0); } catch (InterruptedException e) { }
}
return;
}
// System.out.println(">> " + ava + ", data avail: " + data + ", InputBuffer: " + inputBuffer.remaining());
dataLine.write(tempBuffer, 0, data);
if (FPS < 0)
try { Thread.sleep(OUTPUT_BUFFER_FULL_SLEEP_TIME, 0); } catch (InterruptedException e) { }
}


Expand All @@ -127,6 +136,7 @@ private void refresh() {
private ByteBuffer inputBuffer;
private byte[] tempBuffer;
private boolean triedToGetLine = false;
private int currOutputBufferPosition;

private final AudioFormat AUDIO_FORMAT = new AudioFormat(SAMPLE_RATE, 8, 1, true, false);

Expand Down

0 comments on commit 2c5ebbd

Please sign in to comment.