dcd810d013
The android.hardware.ICamera string have not been changed (but is looks like the camera service and client one should undergo the same procedure) The implementation of the interface must provide a unique string for it's interface name. Currently all these strings in the media framework start with 'android.hardware' when it should really be 'android.media', the interface token has nothing to do with hardware.
71 lines
2.0 KiB
C++
71 lines
2.0 KiB
C++
/*
|
|
**
|
|
** Copyright 2008, The Android Open Source Project
|
|
**
|
|
** Licensed under the Apache License, Version 2.0 (the "License");
|
|
** you may not use this file except in compliance with the License.
|
|
** You may obtain a copy of the License at
|
|
**
|
|
** http://www.apache.org/licenses/LICENSE-2.0
|
|
**
|
|
** Unless required by applicable law or agreed to in writing, software
|
|
** distributed under the License is distributed on an "AS IS" BASIS,
|
|
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
** See the License for the specific language governing permissions and
|
|
** limitations under the License.
|
|
*/
|
|
|
|
#include <utils/RefBase.h>
|
|
#include <binder/IInterface.h>
|
|
#include <binder/Parcel.h>
|
|
|
|
#include <media/IMediaPlayerClient.h>
|
|
|
|
namespace android {
|
|
|
|
enum {
|
|
NOTIFY = IBinder::FIRST_CALL_TRANSACTION,
|
|
};
|
|
|
|
class BpMediaPlayerClient: public BpInterface<IMediaPlayerClient>
|
|
{
|
|
public:
|
|
BpMediaPlayerClient(const sp<IBinder>& impl)
|
|
: BpInterface<IMediaPlayerClient>(impl)
|
|
{
|
|
}
|
|
|
|
virtual void notify(int msg, int ext1, int ext2)
|
|
{
|
|
Parcel data, reply;
|
|
data.writeInterfaceToken(IMediaPlayerClient::getInterfaceDescriptor());
|
|
data.writeInt32(msg);
|
|
data.writeInt32(ext1);
|
|
data.writeInt32(ext2);
|
|
remote()->transact(NOTIFY, data, &reply, IBinder::FLAG_ONEWAY);
|
|
}
|
|
};
|
|
|
|
IMPLEMENT_META_INTERFACE(MediaPlayerClient, "android.media.IMediaPlayerClient");
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
status_t BnMediaPlayerClient::onTransact(
|
|
uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags)
|
|
{
|
|
switch(code) {
|
|
case NOTIFY: {
|
|
CHECK_INTERFACE(IMediaPlayerClient, data, reply);
|
|
int msg = data.readInt32();
|
|
int ext1 = data.readInt32();
|
|
int ext2 = data.readInt32();
|
|
notify(msg, ext1, ext2);
|
|
return NO_ERROR;
|
|
} break;
|
|
default:
|
|
return BBinder::onTransact(code, data, reply, flags);
|
|
}
|
|
}
|
|
|
|
}; // namespace android
|