diff --git a/project/java/Audio.java b/project/java/Audio.java index 17df707b0..a37db04f3 100644 --- a/project/java/Audio.java +++ b/project/java/Audio.java @@ -20,12 +20,12 @@ import java.lang.Thread; class AudioThread { - private Activity mParent; + private MainActivity mParent; private AudioTrack mAudio; private byte[] mAudioBuffer; private int mVirtualBufSize; - public AudioThread(Activity parent) + public AudioThread(MainActivity parent) { mParent = parent; mAudio = null; @@ -35,13 +35,15 @@ class AudioThread { public int fillBuffer() { - if( Globals.AudioBufferConfig == 0 && mAudio.getPlaybackHeadPosition() * 1000 / mAudio.getPlaybackRate() >= 30 ) + if( Globals.AudioBufferConfig == 0 ) + mAudio.flush(); + mAudio.write( mAudioBuffer, 0, mVirtualBufSize ); + if( mParent.isPaused() ) { try{ - Thread.sleep(10); - } catch(InterruptedException e) {} + Thread.sleep(200); + } catch (InterruptedException e) {} } - mAudio.write( mAudioBuffer, 0, mVirtualBufSize ); return 1; } diff --git a/project/java/MainActivity.java b/project/java/MainActivity.java index 82348038a..cc8895c5b 100644 --- a/project/java/MainActivity.java +++ b/project/java/MainActivity.java @@ -170,6 +170,7 @@ public class MainActivity extends Activity { downloader.setStatusField(null); } } + _isPaused = true; if( mGLView != null ) mGLView.onPause(); super.onPause(); @@ -188,6 +189,12 @@ public class MainActivity extends Activity { initSDL(); } } + _isPaused = false; + } + + public boolean isPaused() + { + return _isPaused; } @Override @@ -358,5 +365,6 @@ public class MainActivity extends Activity { private EditText _screenKeyboard = null; private boolean sdlInited = false; public Settings.TouchMeasurementTool _touchMeasurementTool = null; + boolean _isPaused = false; } diff --git a/project/java/Video.java b/project/java/Video.java index 923caaae8..7b2f75dda 100644 --- a/project/java/Video.java +++ b/project/java/Video.java @@ -300,6 +300,10 @@ class DemoGLSurfaceView extends GLSurfaceView_SDL { super.onPause(); mRenderer.mPaused = true; }; + + public boolean isPaused() { + return mRenderer.mPaused; + } @Override public void onResume() { diff --git a/project/jni/application/src b/project/jni/application/src index 550b7b622..706424f94 120000 --- a/project/jni/application/src +++ b/project/jni/application/src @@ -1 +1 @@ -openttd \ No newline at end of file +sc2 \ No newline at end of file