Loading include/audiomanager/IPlayer.h +4 −0 Original line number Original line Diff line number Diff line Loading @@ -41,6 +41,10 @@ public: virtual void setVolume(float vol) = 0; virtual void setVolume(float vol) = 0; virtual void setPan(float pan) = 0; virtual void setStartDelayMs(int delayMs) = 0; }; }; // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- Loading services/audiomanager/IPlayer.cpp +28 −1 Original line number Original line Diff line number Diff line Loading @@ -33,6 +33,8 @@ enum { PAUSE = IBinder::FIRST_CALL_TRANSACTION + 1, PAUSE = IBinder::FIRST_CALL_TRANSACTION + 1, STOP = IBinder::FIRST_CALL_TRANSACTION + 2, STOP = IBinder::FIRST_CALL_TRANSACTION + 2, SET_VOLUME = IBinder::FIRST_CALL_TRANSACTION + 3, 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> class BpPlayer : public BpInterface<IPlayer> Loading Loading @@ -71,6 +73,21 @@ public: data.writeFloat(vol); data.writeFloat(vol); remote()->transact(SET_VOLUME, data, &reply); 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"); IMPLEMENT_META_INTERFACE(Player, "android.media.IPlayer"); Loading Loading @@ -100,7 +117,17 @@ status_t BnPlayer::onTransact( CHECK_INTERFACE(IPlayer, data, reply); CHECK_INTERFACE(IPlayer, data, reply); setVolume(data.readFloat()); setVolume(data.readFloat()); return NO_ERROR; 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: default: return BBinder::onTransact(code, data, reply, flags); return BBinder::onTransact(code, data, reply, flags); } } Loading Loading
include/audiomanager/IPlayer.h +4 −0 Original line number Original line Diff line number Diff line Loading @@ -41,6 +41,10 @@ public: virtual void setVolume(float vol) = 0; virtual void setVolume(float vol) = 0; virtual void setPan(float pan) = 0; virtual void setStartDelayMs(int delayMs) = 0; }; }; // ---------------------------------------------------------------------------- // ---------------------------------------------------------------------------- Loading
services/audiomanager/IPlayer.cpp +28 −1 Original line number Original line Diff line number Diff line Loading @@ -33,6 +33,8 @@ enum { PAUSE = IBinder::FIRST_CALL_TRANSACTION + 1, PAUSE = IBinder::FIRST_CALL_TRANSACTION + 1, STOP = IBinder::FIRST_CALL_TRANSACTION + 2, STOP = IBinder::FIRST_CALL_TRANSACTION + 2, SET_VOLUME = IBinder::FIRST_CALL_TRANSACTION + 3, 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> class BpPlayer : public BpInterface<IPlayer> Loading Loading @@ -71,6 +73,21 @@ public: data.writeFloat(vol); data.writeFloat(vol); remote()->transact(SET_VOLUME, data, &reply); 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"); IMPLEMENT_META_INTERFACE(Player, "android.media.IPlayer"); Loading Loading @@ -100,7 +117,17 @@ status_t BnPlayer::onTransact( CHECK_INTERFACE(IPlayer, data, reply); CHECK_INTERFACE(IPlayer, data, reply); setVolume(data.readFloat()); setVolume(data.readFloat()); return NO_ERROR; 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: default: return BBinder::onTransact(code, data, reply, flags); return BBinder::onTransact(code, data, reply, flags); } } Loading