summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/wifi-display/source/WifiDisplaySource.h
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2012-10-01 11:26:30 -0700
committerAndreas Huber <andih@google.com>2012-10-01 11:26:30 -0700
commitad0d97c7cf620e96a0b088dd9461645a3f8900b7 (patch)
tree83c354a2a43102ce1e58a191c1abc41b19b4dd69 /media/libstagefright/wifi-display/source/WifiDisplaySource.h
parent0e1d71641624c641a0a1abe4098943f5a42c6f94 (diff)
downloadframeworks_av-ad0d97c7cf620e96a0b088dd9461645a3f8900b7.zip
frameworks_av-ad0d97c7cf620e96a0b088dd9461645a3f8900b7.tar.gz
frameworks_av-ad0d97c7cf620e96a0b088dd9461645a3f8900b7.tar.bz2
Perform an orderly shutdown if possible, force disconnect if necessary
wait for up to 2 secs for the dongle to send us a "TEARDOWN", after that forcibly shutdown the connection. Change-Id: Ie049857cd468b7af6986d6305f725c54571b2276 related-to-bug: 7258622
Diffstat (limited to 'media/libstagefright/wifi-display/source/WifiDisplaySource.h')
-rw-r--r--media/libstagefright/wifi-display/source/WifiDisplaySource.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/media/libstagefright/wifi-display/source/WifiDisplaySource.h b/media/libstagefright/wifi-display/source/WifiDisplaySource.h
index ade623a..8c043cd 100644
--- a/media/libstagefright/wifi-display/source/WifiDisplaySource.h
+++ b/media/libstagefright/wifi-display/source/WifiDisplaySource.h
@@ -55,6 +55,18 @@ private:
struct HDCPObserver;
#endif
+ enum State {
+ INITIALIZED,
+ AWAITING_CLIENT_CONNECTION,
+ AWAITING_CLIENT_SETUP,
+ AWAITING_CLIENT_PLAY,
+ ABOUT_TO_PLAY,
+ PLAYING,
+ AWAITING_CLIENT_TEARDOWN,
+ STOPPING,
+ STOPPED,
+ };
+
enum {
kWhatStart,
kWhatRTSPNotify,
@@ -64,6 +76,7 @@ private:
kWhatKeepAlive,
kWhatHDCPNotify,
kWhatFinishStop2,
+ kWhatTeardownTriggerTimedOut,
};
struct ResponseID {
@@ -82,11 +95,18 @@ private:
static const int64_t kReaperIntervalUs = 1000000ll;
+ // We request that the dongle send us a "TEARDOWN" in order to
+ // perform an orderly shutdown. We're willing to wait up to 2 secs
+ // for this message to arrive, after that we'll force a disconnect
+ // instead.
+ static const int64_t kTeardownTriggerTimeouSecs = 2;
+
static const int64_t kPlaybackSessionTimeoutSecs = 30;
static const int64_t kPlaybackSessionTimeoutUs =
kPlaybackSessionTimeoutSecs * 1000000ll;
+ State mState;
sp<ANetworkSession> mNetSession;
sp<IRemoteDisplayClient> mClient;
struct in_addr mInterfaceAddr;