diff options
author | Jeff Brown <jeffbrown@google.com> | 2012-09-04 21:38:42 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2012-09-05 08:47:36 -0700 |
commit | 2013a54981d4ffb036dff279b88cc9f08c0ee1c2 (patch) | |
tree | 0be5853ec89f5d075763a8228513a6e98a27a30e /media/libmedia/IMediaPlayerService.cpp | |
parent | 62a1904e6beaa8848eddd2b635053536fbe5e804 (diff) | |
download | frameworks_av-2013a54981d4ffb036dff279b88cc9f08c0ee1c2.zip frameworks_av-2013a54981d4ffb036dff279b88cc9f08c0ee1c2.tar.gz frameworks_av-2013a54981d4ffb036dff279b88cc9f08c0ee1c2.tar.bz2 |
Implement remote display service stubs.
Change-Id: I582ed000026bba6d116db8304e15a3c52f8a9a01
Diffstat (limited to 'media/libmedia/IMediaPlayerService.cpp')
-rw-r--r-- | media/libmedia/IMediaPlayerService.cpp | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/media/libmedia/IMediaPlayerService.cpp b/media/libmedia/IMediaPlayerService.cpp index d3e2e19..c2ec439 100644 --- a/media/libmedia/IMediaPlayerService.cpp +++ b/media/libmedia/IMediaPlayerService.cpp @@ -24,9 +24,12 @@ #include <media/IMediaPlayerService.h> #include <media/IMediaRecorder.h> #include <media/IOMX.h> +#include <media/IRemoteDisplay.h> +#include <media/IRemoteDisplayClient.h> #include <media/IStreamSource.h> #include <utils/Errors.h> // for status_t +#include <utils/String8.h> namespace android { @@ -40,7 +43,8 @@ enum { MAKE_CRYPTO, ENABLE_REMOTE_DISPLAY, ADD_BATTERY_DATA, - PULL_BATTERY_DATA + PULL_BATTERY_DATA, + LISTEN_FOR_REMOTE_DISPLAY, }; class BpMediaPlayerService: public BpInterface<IMediaPlayerService> @@ -148,6 +152,17 @@ public: data.writeInterfaceToken(IMediaPlayerService::getInterfaceDescriptor()); return remote()->transact(PULL_BATTERY_DATA, data, reply); } + + virtual sp<IRemoteDisplay> listenForRemoteDisplay(const sp<IRemoteDisplayClient>& client, + const String8& iface) + { + Parcel data, reply; + data.writeInterfaceToken(IMediaPlayerService::getInterfaceDescriptor()); + data.writeStrongBinder(client->asBinder()); + data.writeString8(iface); + remote()->transact(LISTEN_FOR_REMOTE_DISPLAY, data, &reply); + return interface_cast<IRemoteDisplay>(reply.readStrongBinder()); + } }; IMPLEMENT_META_INTERFACE(MediaPlayerService, "android.media.IMediaPlayerService"); @@ -242,6 +257,15 @@ status_t BnMediaPlayerService::onTransact( pullBatteryData(reply); return NO_ERROR; } break; + case LISTEN_FOR_REMOTE_DISPLAY: { + CHECK_INTERFACE(IMediaPlayerService, data, reply); + sp<IRemoteDisplayClient> client( + interface_cast<IRemoteDisplayClient>(data.readStrongBinder())); + String8 iface(data.readString8()); + sp<IRemoteDisplay> display(listenForRemoteDisplay(client, iface)); + reply->writeStrongBinder(display->asBinder()); + return NO_ERROR; + } break; default: return BBinder::onTransact(code, data, reply, flags); } |