diff options
Diffstat (limited to 'backends/platform/android/org')
| -rw-r--r-- | backends/platform/android/org/inodes/gus/scummvm/ScummVM.java | 13 | ||||
| -rw-r--r-- | backends/platform/android/org/inodes/gus/scummvm/ScummVMActivity.java | 42 | 
2 files changed, 37 insertions, 18 deletions
| diff --git a/backends/platform/android/org/inodes/gus/scummvm/ScummVM.java b/backends/platform/android/org/inodes/gus/scummvm/ScummVM.java index 75407c66cc..ffb0109e6c 100644 --- a/backends/platform/android/org/inodes/gus/scummvm/ScummVM.java +++ b/backends/platform/android/org/inodes/gus/scummvm/ScummVM.java @@ -44,6 +44,7 @@ public abstract class ScummVM implements SurfaceHolder.Callback, Runnable {  	final private native void destroy();  	final private native void setSurface(int width, int height);  	final private native int main(String[] args); +	final private native void pauseEngine(boolean pause);  	// Set scummvm config options  	final public native void enableZoning(boolean enable); @@ -134,12 +135,14 @@ public abstract class ScummVM implements SurfaceHolder.Callback, Runnable {  		System.exit(res);  	} -	public void pause() { -		// TODO -	} +	public void pause(boolean pause) { +		if (audio_track != null && !pause) +			audio_track.play(); + +		pauseEngine(pause); -	public void resume() { -		// TODO +		if (audio_track != null && pause) +			audio_track.stop();  	}  	final private void initEGL() throws Exception { diff --git a/backends/platform/android/org/inodes/gus/scummvm/ScummVMActivity.java b/backends/platform/android/org/inodes/gus/scummvm/ScummVMActivity.java index 92247dea96..22ccaf0b62 100644 --- a/backends/platform/android/org/inodes/gus/scummvm/ScummVMActivity.java +++ b/backends/platform/android/org/inodes/gus/scummvm/ScummVMActivity.java @@ -161,30 +161,46 @@ public class ScummVMActivity extends Activity {  		scummvm_thread.start();  	} -	private boolean was_paused = false; -  	@Override -	public void onPause() { -		if (scummvm != null) { -			was_paused = true; -			scummvm.pause(); -		} +	public void onStart() { +		Log.d(ScummVM.LOG_TAG, "onStart"); -		super.onPause(); +		super.onStart();  	}  	@Override  	public void onResume() { +		Log.d(ScummVM.LOG_TAG, "onResume"); +  		super.onResume(); -		if (scummvm != null && was_paused) -			scummvm.resume(); +		if (scummvm != null) +			scummvm.pause(false); +	} + +	@Override +	public void onPause() { +		Log.d(ScummVM.LOG_TAG, "onPause"); + +		super.onPause(); -		was_paused = false; +		if (scummvm != null) +			scummvm.pause(true);  	}  	@Override  	public void onStop() { +		Log.d(ScummVM.LOG_TAG, "onStop"); + +		super.onStop(); +	} + +	@Override +	public void onDestroy() { +		Log.d(ScummVM.LOG_TAG, "onDestroy"); + +		super.onDestroy(); +  		if (scummvm != null) {  			scummvm.pushEvent(new Event(Event.EVENT_QUIT)); @@ -194,9 +210,9 @@ public class ScummVMActivity extends Activity {  			} catch (InterruptedException e) {  				Log.i(ScummVM.LOG_TAG, "Error while joining ScummVM thread", e);  			} -		} -		super.onStop(); +			scummvm = null; +		}  	}  	static final int MSG_MENU_LONG_PRESS = 1; | 
