summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2012-09-17 12:20:29 -0700
committerJeff Brown <jeffbrown@google.com>2012-09-17 12:24:43 -0700
commitc9bd4ca005768cb30aaaa44c1171e113c13cd107 (patch)
treee3e4088be59a7888bb4b6a575b39d859f39e726d /services/java/com/android/server
parenta41d5db2350108c1d2eceb83b677faed6b7893a8 (diff)
downloadframeworks_base-c9bd4ca005768cb30aaaa44c1171e113c13cd107.zip
frameworks_base-c9bd4ca005768cb30aaaa44c1171e113c13cd107.tar.gz
frameworks_base-c9bd4ca005768cb30aaaa44c1171e113c13cd107.tar.bz2
Swap remote submix initialization order.
Need to turn the submix on before connecting and off after disconnecting. Change-Id: I53389c3b61e6d663855accd0461eed42a67d9d2b
Diffstat (limited to 'services/java/com/android/server')
-rw-r--r--services/java/com/android/server/display/WifiDisplayController.java21
1 files changed, 15 insertions, 6 deletions
diff --git a/services/java/com/android/server/display/WifiDisplayController.java b/services/java/com/android/server/display/WifiDisplayController.java
index 141cbd7..87e11e6 100644
--- a/services/java/com/android/server/display/WifiDisplayController.java
+++ b/services/java/com/android/server/display/WifiDisplayController.java
@@ -129,6 +129,9 @@ final class WifiDisplayController implements DumpUtils.Dump {
// True if RTSP has connected.
private boolean mRemoteDisplayConnected;
+ // True if the remote submix is enabled.
+ private boolean mRemoteSubmixOn;
+
public WifiDisplayController(Context context, Handler handler, Listener listener) {
mContext = context;
mHandler = handler;
@@ -160,6 +163,7 @@ final class WifiDisplayController implements DumpUtils.Dump {
pw.println("mRemoteDisplay=" + mRemoteDisplay);
pw.println("mRemoteDisplayInterface=" + mRemoteDisplayInterface);
pw.println("mRemoteDisplayConnected=" + mRemoteDisplayConnected);
+ pw.println("mRemoteSubmixOn=" + mRemoteSubmixOn);
pw.println("mKnownWifiDisplayPeers: size=" + mKnownWifiDisplayPeers.size());
for (WifiP2pDevice device : mKnownWifiDisplayPeers) {
@@ -390,16 +394,14 @@ final class WifiDisplayController implements DumpUtils.Dump {
Slog.i(TAG, "Stopped listening for RTSP connection on " + mRemoteDisplayInterface
+ " from Wifi display: " + mConnectedDevice.deviceName);
- if (mRemoteDisplayConnected) {
- mAudioManager.setRemoteSubmixOn(false, REMOTE_SUBMIX_ADDRESS);
- }
-
mRemoteDisplay.dispose();
mRemoteDisplay = null;
mRemoteDisplayInterface = null;
mRemoteDisplayConnected = false;
mHandler.removeCallbacks(mRtspTimeout);
+ setRemoteSubmixOn(false);
+
mHandler.post(new Runnable() {
@Override
public void run() {
@@ -527,6 +529,8 @@ final class WifiDisplayController implements DumpUtils.Dump {
return; // done
}
+ setRemoteSubmixOn(true);
+
final WifiP2pDevice oldDevice = mConnectedDevice;
final int port = getPortNumber(mConnectedDevice);
final String iface = addr.getHostAddress() + ":" + port;
@@ -545,8 +549,6 @@ final class WifiDisplayController implements DumpUtils.Dump {
mRemoteDisplayConnected = true;
mHandler.removeCallbacks(mRtspTimeout);
- mAudioManager.setRemoteSubmixOn(true, REMOTE_SUBMIX_ADDRESS);
-
final WifiDisplay display = createWifiDisplay(mConnectedDevice);
mHandler.post(new Runnable() {
@Override
@@ -583,6 +585,13 @@ final class WifiDisplayController implements DumpUtils.Dump {
}
}
+ private void setRemoteSubmixOn(boolean on) {
+ if (mRemoteSubmixOn != on) {
+ mRemoteSubmixOn = on;
+ mAudioManager.setRemoteSubmixOn(on, REMOTE_SUBMIX_ADDRESS);
+ }
+ }
+
private void handleStateChanged(boolean enabled) {
if (mWifiP2pEnabled != enabled) {
mWifiP2pEnabled = enabled;