mirror of
https://github.com/libretro/RetroArch
synced 2025-02-03 17:54:04 +00:00
Check for hardware sampling rate automatically.
This commit is contained in:
parent
88e59454a5
commit
d8ee306b61
@ -11,4 +11,4 @@
|
||||
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
|
||||
|
||||
# Project target.
|
||||
target=android-16
|
||||
target=android-17
|
||||
|
@ -10,6 +10,7 @@ import android.content.res.AssetManager;
|
||||
import android.annotation.TargetApi;
|
||||
import android.app.*;
|
||||
import android.media.AudioManager;
|
||||
import android.media.AudioTrack;
|
||||
import android.net.Uri;
|
||||
import android.os.*;
|
||||
import android.preference.PreferenceManager;
|
||||
@ -351,10 +352,27 @@ public class RetroArch extends Activity implements
|
||||
return "/mnt/sd/retroarch.cfg";
|
||||
}
|
||||
|
||||
@TargetApi(android.os.Build.VERSION_CODES.JELLY_BEAN_MR1)
|
||||
private int getLowLatencyOptimalSamplingRate() {
|
||||
AudioManager manager = (AudioManager)getApplicationContext().getSystemService(Context.AUDIO_SERVICE);
|
||||
return Integer.parseInt(manager.getProperty(AudioManager.PROPERTY_OUTPUT_SAMPLE_RATE));
|
||||
}
|
||||
|
||||
private int getOptimalSamplingRate() {
|
||||
int ret;
|
||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN_MR1)
|
||||
ret = getLowLatencyOptimalSamplingRate();
|
||||
else
|
||||
ret = AudioTrack.getNativeOutputSampleRate(AudioManager.STREAM_MUSIC);
|
||||
|
||||
Log.i(TAG, "Using sampling rate: " + ret + " Hz");
|
||||
return ret;
|
||||
}
|
||||
|
||||
private void updateConfigFile() {
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
|
||||
config.setBoolean("audio_rate_control", prefs.getBoolean("audio_rate_control", true));
|
||||
config.setInt("audio_out_rate", 44100); // Much better than 48000 on Nexus 10, need to investigate. Could fix most audio issues on Android.
|
||||
config.setInt("audio_out_rate", getOptimalSamplingRate());
|
||||
config.setBoolean("audio_enable", prefs.getBoolean("audio_enable", true));
|
||||
config.setBoolean("video_smooth", prefs.getBoolean("video_smooth", true));
|
||||
config.setBoolean("video_allow_rotate", prefs.getBoolean("video_allow_rotate", true));
|
||||
|
Loading…
x
Reference in New Issue
Block a user