mirror of
https://github.com/kichikuou/system3-sdl2.git
synced 2026-09-30 10:58:07 +03:00
Android: Add system menu items for switching FM / MIDI
This commit is contained in:
@@ -43,6 +43,7 @@ class GameActivity : SDLActivity() {
|
||||
private lateinit var gameRoot: File
|
||||
private lateinit var cdda: CddaPlayer
|
||||
private val midi = MidiPlayer()
|
||||
private var useFM = true
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
@@ -70,7 +71,8 @@ class GameActivity : SDLActivity() {
|
||||
override fun getArguments(): Array<String> {
|
||||
return arrayOf(
|
||||
"-gamedir", intent.getStringExtra(EXTRA_GAME_ROOT),
|
||||
"-savedir", intent.getStringExtra(EXTRA_SAVE_DIR) + "/@")
|
||||
"-savedir", intent.getStringExtra(EXTRA_SAVE_DIR) + "/@",
|
||||
"-fm")
|
||||
}
|
||||
|
||||
override fun setTitle(title: CharSequence?) {
|
||||
@@ -110,9 +112,10 @@ class GameActivity : SDLActivity() {
|
||||
menuShown = true
|
||||
}
|
||||
|
||||
override fun onCreateContextMenu(menu: ContextMenu?, v: View?, menuInfo: ContextMenu.ContextMenuInfo?) {
|
||||
override fun onCreateContextMenu(menu: ContextMenu, v: View?, menuInfo: ContextMenu.ContextMenuInfo?) {
|
||||
super.onCreateContextMenu(menu, v, menuInfo)
|
||||
menuInflater.inflate(R.menu.game_menu, menu)
|
||||
menu.findItem(if (useFM) R.id.fm_sound else R.id.midi_sound).isChecked = true
|
||||
}
|
||||
|
||||
override fun onContextItemSelected(item: MenuItem): Boolean {
|
||||
@@ -121,6 +124,16 @@ class GameActivity : SDLActivity() {
|
||||
finish()
|
||||
true
|
||||
}
|
||||
R.id.fm_sound -> {
|
||||
selectSynthesizer(true)
|
||||
useFM = true
|
||||
true
|
||||
}
|
||||
R.id.midi_sound -> {
|
||||
selectSynthesizer(false)
|
||||
useFM = false
|
||||
true
|
||||
}
|
||||
else -> super.onOptionsItemSelected(item)
|
||||
}
|
||||
}
|
||||
@@ -130,6 +143,9 @@ class GameActivity : SDLActivity() {
|
||||
menuShown = false
|
||||
}
|
||||
|
||||
// C functions we call
|
||||
private external fun selectSynthesizer(use_fm: Boolean)
|
||||
|
||||
// The functions below are called in the SDL thread by JNI.
|
||||
@Suppress("unused") fun cddaStart(track: Int, loop: Boolean) = cdda.start(track, loop)
|
||||
@Suppress("unused") fun cddaStop() = cdda.stop()
|
||||
|
||||
Reference in New Issue
Block a user