From 6b74d671a1321a6ecc4a40b6c87beedfecc1ec44 Mon Sep 17 00:00:00 2001 From: Marco Nelissen Date: Tue, 28 Feb 2012 16:07:44 -0800 Subject: Gapless playback, step 1. Currently able to play Ogg Vorbis, PCM WAV and other lossless files seamlessly by reusing the initial AudioTrack for subsequent players. Change-Id: Ie7cf6b9076bdf4f9211574456d192c02c04fecc7 --- media/libmedia/IMediaPlayer.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'media/libmedia/IMediaPlayer.cpp') diff --git a/media/libmedia/IMediaPlayer.cpp b/media/libmedia/IMediaPlayer.cpp index c47fa41..16ba484 100644 --- a/media/libmedia/IMediaPlayer.cpp +++ b/media/libmedia/IMediaPlayer.cpp @@ -55,6 +55,7 @@ enum { SET_PARAMETER, GET_PARAMETER, SET_RETRANSMIT_ENDPOINT, + SET_NEXT_PLAYER, }; class BpMediaPlayer: public BpInterface @@ -307,7 +308,15 @@ public: if (OK != err) { return err; } + return reply.readInt32(); + } + status_t setNextPlayer(const sp& player) { + Parcel data, reply; + data.writeInterfaceToken(IMediaPlayer::getInterfaceDescriptor()); + sp b(player->asBinder()); + data.writeStrongBinder(b); + remote()->transact(SET_NEXT_PLAYER, data, &reply); return reply.readInt32(); } }; @@ -489,7 +498,11 @@ status_t BnMediaPlayer::onTransact( } else { reply->writeInt32(setRetransmitEndpoint(NULL)); } - + return NO_ERROR; + } break; + case SET_NEXT_PLAYER: { + CHECK_INTERFACE(IMediaPlayer, data, reply); + reply->writeInt32(setNextPlayer(interface_cast(data.readStrongBinder()))); return NO_ERROR; } break; default: -- cgit v1.1