Merge "spatial audio: fix spatialization level control" into tm-dev
This commit is contained in:
@@ -327,15 +327,29 @@ public class SpatializerHelper {
|
|||||||
setDispatchAvailableState(false);
|
setDispatchAvailableState(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (able && enabledAvailable.first) {
|
boolean enabled = able && enabledAvailable.first;
|
||||||
|
if (enabled) {
|
||||||
loglogi("Enabling Spatial Audio since enabled for media device:"
|
loglogi("Enabling Spatial Audio since enabled for media device:"
|
||||||
+ ROUTING_DEVICES[0]);
|
+ ROUTING_DEVICES[0]);
|
||||||
} else {
|
} else {
|
||||||
loglogi("Disabling Spatial Audio since disabled for media device:"
|
loglogi("Disabling Spatial Audio since disabled for media device:"
|
||||||
+ ROUTING_DEVICES[0]);
|
+ ROUTING_DEVICES[0]);
|
||||||
}
|
}
|
||||||
setDispatchFeatureEnabledState(able && enabledAvailable.first,
|
if (mSpat != null) {
|
||||||
"onRoutingUpdated");
|
byte level = enabled ? (byte) Spatializer.SPATIALIZER_IMMERSIVE_LEVEL_MULTICHANNEL
|
||||||
|
: (byte) Spatializer.SPATIALIZER_IMMERSIVE_LEVEL_NONE;
|
||||||
|
loglogi("Setting spatialization level to: " + level);
|
||||||
|
try {
|
||||||
|
mSpat.setLevel(level);
|
||||||
|
} catch (RemoteException e) {
|
||||||
|
Log.e(TAG, "Can't set spatializer level", e);
|
||||||
|
mState = STATE_NOT_SUPPORTED;
|
||||||
|
mCapableSpatLevel = Spatializer.SPATIALIZER_IMMERSIVE_LEVEL_NONE;
|
||||||
|
enabled = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
setDispatchFeatureEnabledState(enabled, "onRoutingUpdated");
|
||||||
|
|
||||||
if (mDesiredHeadTrackingMode != Spatializer.HEAD_TRACKING_MODE_UNSUPPORTED
|
if (mDesiredHeadTrackingMode != Spatializer.HEAD_TRACKING_MODE_UNSUPPORTED
|
||||||
&& mDesiredHeadTrackingMode != Spatializer.HEAD_TRACKING_MODE_DISABLED) {
|
&& mDesiredHeadTrackingMode != Spatializer.HEAD_TRACKING_MODE_DISABLED) {
|
||||||
@@ -635,7 +649,6 @@ public class SpatializerHelper {
|
|||||||
init(true);
|
init(true);
|
||||||
}
|
}
|
||||||
setSpatializerEnabledInt(true);
|
setSpatializerEnabledInt(true);
|
||||||
onRoutingUpdated();
|
|
||||||
} else {
|
} else {
|
||||||
setSpatializerEnabledInt(false);
|
setSpatializerEnabledInt(false);
|
||||||
}
|
}
|
||||||
@@ -657,6 +670,7 @@ public class SpatializerHelper {
|
|||||||
case STATE_DISABLED_AVAILABLE:
|
case STATE_DISABLED_AVAILABLE:
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
createSpat();
|
createSpat();
|
||||||
|
onRoutingUpdated();
|
||||||
break;
|
break;
|
||||||
} else {
|
} else {
|
||||||
// already in disabled state
|
// already in disabled state
|
||||||
@@ -823,14 +837,13 @@ public class SpatializerHelper {
|
|||||||
mSpatHeadTrackingCallback = new SpatializerHeadTrackingCallback();
|
mSpatHeadTrackingCallback = new SpatializerHeadTrackingCallback();
|
||||||
mSpat = AudioSystem.getSpatializer(mSpatCallback);
|
mSpat = AudioSystem.getSpatializer(mSpatCallback);
|
||||||
try {
|
try {
|
||||||
mSpat.setLevel((byte) Spatializer.SPATIALIZER_IMMERSIVE_LEVEL_MULTICHANNEL);
|
|
||||||
mIsHeadTrackingSupported = mSpat.isHeadTrackingSupported();
|
mIsHeadTrackingSupported = mSpat.isHeadTrackingSupported();
|
||||||
//TODO: register heatracking callback only when sensors are registered
|
//TODO: register heatracking callback only when sensors are registered
|
||||||
if (mIsHeadTrackingSupported) {
|
if (mIsHeadTrackingSupported) {
|
||||||
mSpat.registerHeadTrackingCallback(mSpatHeadTrackingCallback);
|
mSpat.registerHeadTrackingCallback(mSpatHeadTrackingCallback);
|
||||||
}
|
}
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
Log.e(TAG, "Can't set spatializer level", e);
|
Log.e(TAG, "Can't configure head tracking", e);
|
||||||
mState = STATE_NOT_SUPPORTED;
|
mState = STATE_NOT_SUPPORTED;
|
||||||
mCapableSpatLevel = Spatializer.SPATIALIZER_IMMERSIVE_LEVEL_NONE;
|
mCapableSpatLevel = Spatializer.SPATIALIZER_IMMERSIVE_LEVEL_NONE;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user