diff options
author | Andreas Huber <andih@google.com> | 2012-09-05 10:26:52 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2012-09-05 10:26:52 -0700 |
commit | 0b73d4730202fcad53aefc4314a06e7b95f442f0 (patch) | |
tree | 49f1e28def31a204301280175e731cd82aebc203 /media/libmediaplayerservice | |
parent | e104596061b219e9bce6d4db49a9d15242f8d2e5 (diff) | |
download | frameworks_av-0b73d4730202fcad53aefc4314a06e7b95f442f0.zip frameworks_av-0b73d4730202fcad53aefc4314a06e7b95f442f0.tar.gz frameworks_av-0b73d4730202fcad53aefc4314a06e7b95f442f0.tar.bz2 |
Expose an IRemoteDisplay to trigger wifi display connections setup and feedback.
Change-Id: I7602cda0e38073c9f0e63fa4de238ca0d4b4ce8e
Diffstat (limited to 'media/libmediaplayerservice')
-rw-r--r-- | media/libmediaplayerservice/MediaPlayerService.cpp | 15 | ||||
-rw-r--r-- | media/libmediaplayerservice/RemoteDisplay.cpp | 21 | ||||
-rw-r--r-- | media/libmediaplayerservice/RemoteDisplay.h | 11 |
3 files changed, 17 insertions, 30 deletions
diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp index ae55642..9005500 100644 --- a/media/libmediaplayerservice/MediaPlayerService.cpp +++ b/media/libmediaplayerservice/MediaPlayerService.cpp @@ -283,8 +283,7 @@ sp<ICrypto> MediaPlayerService::makeCrypto() { sp<IRemoteDisplay> MediaPlayerService::listenForRemoteDisplay( const sp<IRemoteDisplayClient>& client, const String8& iface) { - // TODO: implement me! - return NULL; + return new RemoteDisplay(client, iface.string());; } status_t MediaPlayerService::enableRemoteDisplay(const char *iface) { @@ -295,20 +294,12 @@ status_t MediaPlayerService::enableRemoteDisplay(const char *iface) { return INVALID_OPERATION; } - mRemoteDisplay = new RemoteDisplay; - - status_t err = mRemoteDisplay->start(iface); - - if (err != OK) { - mRemoteDisplay.clear(); - return err; - } - + mRemoteDisplay = new RemoteDisplay(NULL /* client */, iface); return OK; } if (mRemoteDisplay != NULL) { - mRemoteDisplay->stop(); + mRemoteDisplay->disconnect(); mRemoteDisplay.clear(); } diff --git a/media/libmediaplayerservice/RemoteDisplay.cpp b/media/libmediaplayerservice/RemoteDisplay.cpp index 49f7278..1cc605e 100644 --- a/media/libmediaplayerservice/RemoteDisplay.cpp +++ b/media/libmediaplayerservice/RemoteDisplay.cpp @@ -19,29 +19,27 @@ #include "ANetworkSession.h" #include "source/WifiDisplaySource.h" +#include <media/IRemoteDisplayClient.h> + namespace android { -RemoteDisplay::RemoteDisplay() - : mInitCheck(NO_INIT), - mLooper(new ALooper), +RemoteDisplay::RemoteDisplay( + const sp<IRemoteDisplayClient> &client, const char *iface) + : mLooper(new ALooper), mNetSession(new ANetworkSession), - mSource(new WifiDisplaySource(mNetSession)) { + mSource(new WifiDisplaySource(mNetSession, client)) { mLooper->registerHandler(mSource); -} - -RemoteDisplay::~RemoteDisplay() { -} -status_t RemoteDisplay::start(const char *iface) { mNetSession->start(); mLooper->start(); mSource->start(iface); +} - return OK; +RemoteDisplay::~RemoteDisplay() { } -status_t RemoteDisplay::stop() { +status_t RemoteDisplay::disconnect() { mSource->stop(); mLooper->stop(); @@ -51,4 +49,3 @@ status_t RemoteDisplay::stop() { } } // namespace android - diff --git a/media/libmediaplayerservice/RemoteDisplay.h b/media/libmediaplayerservice/RemoteDisplay.h index 3607d06..63c5286 100644 --- a/media/libmediaplayerservice/RemoteDisplay.h +++ b/media/libmediaplayerservice/RemoteDisplay.h @@ -18,6 +18,7 @@ #define REMOTE_DISPLAY_H_ +#include <media/IRemoteDisplay.h> #include <media/stagefright/foundation/ABase.h> #include <utils/Errors.h> #include <utils/RefBase.h> @@ -26,20 +27,18 @@ namespace android { struct ALooper; struct ANetworkSession; +struct IRemoteDisplayClient; struct WifiDisplaySource; -struct RemoteDisplay : public RefBase { - RemoteDisplay(); +struct RemoteDisplay : public BnRemoteDisplay { + RemoteDisplay(const sp<IRemoteDisplayClient> &client, const char *iface); - status_t start(const char *iface); - status_t stop(); + virtual status_t disconnect(); protected: virtual ~RemoteDisplay(); private: - status_t mInitCheck; - sp<ALooper> mNetLooper; sp<ALooper> mLooper; sp<ANetworkSession> mNetSession; |