summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jean-Michel Trivi <jmtrivi@google.com> 2017-02-01 14:55:51 -0800
committer Jean-Michel Trivi <jmtrivi@google.com> 2017-02-01 15:58:23 -0800
commit1c76277338e832384aa734c55436b97837771a15 (patch)
tree0381f466c85b6048ab1c61bdadf71704f640e258
parent7fe71e59ad3055e1a80d8043449b8a056bc92236 (diff)
IPlayer interface: resync with Java interface definition
Add pan and start delay methods in IPlayer native definition Test: adb shell clpac 0, then control pan/vol of an SL player Bug 30258418 Change-Id: Ifebdfe5c7e376b3bf183ae00dfcc3d8041de21c0
-rw-r--r--include/audiomanager/IPlayer.h4
-rw-r--r--services/audiomanager/IPlayer.cpp29
2 files changed, 32 insertions, 1 deletions
diff --git a/include/audiomanager/IPlayer.h b/include/audiomanager/IPlayer.h
index efcac74229..94afae545d 100644
--- a/include/audiomanager/IPlayer.h
+++ b/include/audiomanager/IPlayer.h
@@ -41,6 +41,10 @@ public:
virtual void setVolume(float vol) = 0;
+ virtual void setPan(float pan) = 0;
+
+ virtual void setStartDelayMs(int delayMs) = 0;
+
};
// ----------------------------------------------------------------------------
diff --git a/services/audiomanager/IPlayer.cpp b/services/audiomanager/IPlayer.cpp
index 3b0b4e9991..47edc4bd31 100644
--- a/services/audiomanager/IPlayer.cpp
+++ b/services/audiomanager/IPlayer.cpp
@@ -33,6 +33,8 @@ enum {
PAUSE = IBinder::FIRST_CALL_TRANSACTION + 1,
STOP = IBinder::FIRST_CALL_TRANSACTION + 2,
SET_VOLUME = IBinder::FIRST_CALL_TRANSACTION + 3,
+ SET_PAN = IBinder::FIRST_CALL_TRANSACTION + 4,
+ SET_START_DELAY_MS = IBinder::FIRST_CALL_TRANSACTION + 5,
};
class BpPlayer : public BpInterface<IPlayer>
@@ -71,6 +73,21 @@ public:
data.writeFloat(vol);
remote()->transact(SET_VOLUME, data, &reply);
}
+
+ virtual void setPan(float pan)
+ {
+ Parcel data, reply;
+ data.writeInterfaceToken(IPlayer::getInterfaceDescriptor());
+ data.writeFloat(pan);
+ remote()->transact(SET_PAN, data, &reply);
+ }
+
+ virtual void setStartDelayMs(int32_t delayMs) {
+ Parcel data, reply;
+ data.writeInterfaceToken(IPlayer::getInterfaceDescriptor());
+ data.writeInt32(delayMs);
+ remote()->transact(SET_START_DELAY_MS, data, &reply);
+ }
};
IMPLEMENT_META_INTERFACE(Player, "android.media.IPlayer");
@@ -100,7 +117,17 @@ status_t BnPlayer::onTransact(
CHECK_INTERFACE(IPlayer, data, reply);
setVolume(data.readFloat());
return NO_ERROR;
- }
+ } break;
+ case SET_PAN: {
+ CHECK_INTERFACE(IPlayer, data, reply);
+ setPan(data.readFloat());
+ return NO_ERROR;
+ } break;
+ case SET_START_DELAY_MS: {
+ CHECK_INTERFACE(IPlayer, data, reply);
+ setStartDelayMs(data.readInt32());
+ return NO_ERROR;
+ } break;
default:
return BBinder::onTransact(code, data, reply, flags);
}