Merge "SpatializerHelper: head tracking init / dump"
This commit is contained in:
committed by
Android (Google) Code Review
commit
c6cc21d891
@@ -214,6 +214,29 @@ public class Spatializer {
|
||||
@RequiresPermission(android.Manifest.permission.MODIFY_DEFAULT_AUDIO_EFFECTS)
|
||||
public static final int HEAD_TRACKING_MODE_RELATIVE_DEVICE = 2;
|
||||
|
||||
/**
|
||||
* @hide
|
||||
* Head tracking mode to string conversion
|
||||
* @param mode a valid head tracking mode
|
||||
* @return a string containing the matching constant name
|
||||
*/
|
||||
public static final String headtrackingModeToString(int mode) {
|
||||
switch(mode) {
|
||||
case HEAD_TRACKING_MODE_UNSUPPORTED:
|
||||
return "HEAD_TRACKING_MODE_UNSUPPORTED";
|
||||
case HEAD_TRACKING_MODE_DISABLED:
|
||||
return "HEAD_TRACKING_MODE_DISABLED";
|
||||
case HEAD_TRACKING_MODE_OTHER:
|
||||
return "HEAD_TRACKING_MODE_OTHER";
|
||||
case HEAD_TRACKING_MODE_RELATIVE_WORLD:
|
||||
return "HEAD_TRACKING_MODE_RELATIVE_WORLD";
|
||||
case HEAD_TRACKING_MODE_RELATIVE_DEVICE:
|
||||
return "HEAD_TRACKING_MODE_RELATIVE_DEVICE";
|
||||
default:
|
||||
return "head tracking mode unknown " + mode;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the level of support for the spatialization feature on this device.
|
||||
* This level of support is independent of whether the {@code Spatializer} is currently
|
||||
|
||||
@@ -9408,6 +9408,7 @@ public class AudioService extends IAudioService.Stub
|
||||
pw.println("mHasSpatializerEffect:" + mHasSpatializerEffect);
|
||||
pw.println("isSpatializerEnabled:" + isSpatializerEnabled());
|
||||
pw.println("isSpatialAudioEnabled:" + isSpatialAudioEnabled());
|
||||
mSpatializerHelper.dump(pw);
|
||||
|
||||
mAudioSystem.dump(pw);
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@ import android.os.RemoteCallbackList;
|
||||
import android.os.RemoteException;
|
||||
import android.util.Log;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
@@ -84,7 +85,7 @@ public class SpatializerHelper {
|
||||
private int mSpatLevel = Spatializer.SPATIALIZER_IMMERSIVE_LEVEL_NONE;
|
||||
private int mCapableSpatLevel = Spatializer.SPATIALIZER_IMMERSIVE_LEVEL_NONE;
|
||||
private int mActualHeadTrackingMode = Spatializer.HEAD_TRACKING_MODE_UNSUPPORTED;
|
||||
private int mDesiredHeadTrackingMode = Spatializer.HEAD_TRACKING_MODE_UNSUPPORTED;
|
||||
private int mDesiredHeadTrackingMode = Spatializer.HEAD_TRACKING_MODE_RELATIVE_WORLD;
|
||||
private int mSpatOutput = 0;
|
||||
private @Nullable ISpatializer mSpat;
|
||||
private @Nullable SpatializerCallback mSpatCallback;
|
||||
@@ -681,12 +682,13 @@ public class SpatializerHelper {
|
||||
return;
|
||||
}
|
||||
try {
|
||||
if (mode != mDesiredHeadTrackingMode) {
|
||||
mSpat.setDesiredHeadTrackingMode(spatializerIntToHeadTrackingModeType(mode));
|
||||
if (mDesiredHeadTrackingMode != mode) {
|
||||
mDesiredHeadTrackingMode = mode;
|
||||
dispatchDesiredHeadTrackingMode(mode);
|
||||
}
|
||||
|
||||
if (mode != headTrackingModeTypeToSpatializerInt(mSpat.getActualHeadTrackingMode())) {
|
||||
mSpat.setDesiredHeadTrackingMode(spatializerIntToHeadTrackingModeType(mode));
|
||||
}
|
||||
} catch (RemoteException e) {
|
||||
Log.e(TAG, "Error calling setDesiredHeadTrackingMode", e);
|
||||
}
|
||||
@@ -937,6 +939,7 @@ public class SpatializerHelper {
|
||||
} catch (Exception e) {
|
||||
Log.e(TAG, "Error calling setHeadSensor:" + headHandle, e);
|
||||
}
|
||||
setDesiredHeadTrackingMode(mDesiredHeadTrackingMode);
|
||||
}
|
||||
|
||||
//------------------------------------------------------
|
||||
@@ -983,4 +986,22 @@ public class SpatializerHelper {
|
||||
throw(new IllegalArgumentException("Unexpected spatializer level:" + level));
|
||||
}
|
||||
}
|
||||
|
||||
void dump(PrintWriter pw) {
|
||||
pw.println("SpatializerHelper:");
|
||||
pw.println("\tmState:" + mState);
|
||||
pw.println("\tmSpatLevel:" + mSpatLevel);
|
||||
pw.println("\tmCapableSpatLevel:" + mCapableSpatLevel);
|
||||
pw.println("\tmActualHeadTrackingMode:"
|
||||
+ Spatializer.headtrackingModeToString(mActualHeadTrackingMode));
|
||||
pw.println("\tmDesiredHeadTrackingMode:"
|
||||
+ Spatializer.headtrackingModeToString(mDesiredHeadTrackingMode));
|
||||
String modesString = "";
|
||||
int[] modes = getSupportedHeadTrackingModes();
|
||||
for (int mode : modes) {
|
||||
modesString += Spatializer.headtrackingModeToString(mode) + " ";
|
||||
}
|
||||
pw.println("\tsupported head tracking modes:" + modesString);
|
||||
pw.println("\tmSpatOutput:" + mSpatOutput);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user