summaryrefslogtreecommitdiffstats
path: root/media/libmediaplayerservice
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2012-09-05 10:26:52 -0700
committerAndreas Huber <andih@google.com>2012-09-05 10:26:52 -0700
commit0b73d4730202fcad53aefc4314a06e7b95f442f0 (patch)
tree49f1e28def31a204301280175e731cd82aebc203 /media/libmediaplayerservice
parente104596061b219e9bce6d4db49a9d15242f8d2e5 (diff)
downloadframeworks_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.cpp15
-rw-r--r--media/libmediaplayerservice/RemoteDisplay.cpp21
-rw-r--r--media/libmediaplayerservice/RemoteDisplay.h11
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;