diff options
Diffstat (limited to 'media/libstagefright/wifi-display/source/WifiDisplaySource.cpp')
-rw-r--r-- | media/libstagefright/wifi-display/source/WifiDisplaySource.cpp | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/media/libstagefright/wifi-display/source/WifiDisplaySource.cpp b/media/libstagefright/wifi-display/source/WifiDisplaySource.cpp index a998dcd..0786f2b 100644 --- a/media/libstagefright/wifi-display/source/WifiDisplaySource.cpp +++ b/media/libstagefright/wifi-display/source/WifiDisplaySource.cpp @@ -22,6 +22,9 @@ #include "PlaybackSession.h" #include "ParsedMessage.h" +#include <gui/ISurfaceTexture.h> + +#include <media/IRemoteDisplayClient.h> #include <media/stagefright/foundation/ABuffer.h> #include <media/stagefright/foundation/ADebug.h> #include <media/stagefright/foundation/AMessage.h> @@ -32,8 +35,11 @@ namespace android { -WifiDisplaySource::WifiDisplaySource(const sp<ANetworkSession> &netSession) +WifiDisplaySource::WifiDisplaySource( + const sp<ANetworkSession> &netSession, + const sp<IRemoteDisplayClient> &client) : mNetSession(netSession), + mClient(client), mSessionID(0), mReaperPending(false), mNextCSeq(1) { @@ -201,6 +207,10 @@ void WifiDisplaySource::onMessageReceived(const sp<AMessage> &msg) { mPlaybackSessions.removeItemsAt(i); } + if (mClient != NULL) { + mClient->onDisplayDisconnected(); + } + status_t err = OK; sp<AMessage> response = new AMessage; @@ -768,7 +778,8 @@ void WifiDisplaySource::onSetupRequest( notify->setInt32("sessionID", sessionID); sp<PlaybackSession> playbackSession = - new PlaybackSession(mNetSession, notify); + new PlaybackSession( + mNetSession, notify, mClient == NULL /* legacyMode */); looper()->registerHandler(playbackSession); @@ -869,6 +880,14 @@ void WifiDisplaySource::onPlayRequest( err = mNetSession->sendRequest(sessionID, response.c_str()); CHECK_EQ(err, (status_t)OK); + + if (mClient != NULL) { + mClient->onDisplayConnected( + playbackSession->getSurfaceTexture(), + playbackSession->width(), + playbackSession->height(), + 0 /* flags */); + } } void WifiDisplaySource::onPauseRequest( |