summaryrefslogtreecommitdiff
path: root/Source/Android/app/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Android/app/src/main/java')
-rw-r--r--Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AudioUtils.kt28
1 files changed, 28 insertions, 0 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AudioUtils.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AudioUtils.kt
new file mode 100644
index 0000000000..68e3573fa5
--- /dev/null
+++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/utils/AudioUtils.kt
@@ -0,0 +1,28 @@
+package org.dolphinemu.dolphinemu.utils
+
+import android.content.Context
+import android.media.AudioManager
+import androidx.annotation.Keep
+import org.dolphinemu.dolphinemu.DolphinApplication
+
+object AudioUtils {
+ @JvmStatic @Keep
+ fun getSampleRate(): Int =
+ getAudioServiceProperty(AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE, 48000)
+
+ @JvmStatic @Keep
+ fun getFramesPerBuffer(): Int =
+ getAudioServiceProperty(AudioManager.PROPERTY_OUTPUT_FRAMES_PER_BUFFER, 256)
+
+ private fun getAudioServiceProperty(property: String, fallback: Int): Int {
+ return try {
+ val context = DolphinApplication.getAppContext()
+ val am = context.getSystemService(Context.AUDIO_SERVICE) as AudioManager
+ Integer.parseUnsignedInt(am.getProperty(property))
+ } catch (e: NullPointerException) {
+ fallback
+ } catch (e: NumberFormatException) {
+ fallback
+ }
+ }
+}