IMediaRecorderClient.cpp revision e53b9ead781c36e96d6b6f012ddffc93a3d80f0d
137047fceba836f341d0108beed0991b0f8dfc543James Dong/* 237047fceba836f341d0108beed0991b0f8dfc543James Dong** 337047fceba836f341d0108beed0991b0f8dfc543James Dong** Copyright 2010, The Android Open Source Project 437047fceba836f341d0108beed0991b0f8dfc543James Dong** 537047fceba836f341d0108beed0991b0f8dfc543James Dong** Licensed under the Apache License, Version 2.0 (the "License"); 637047fceba836f341d0108beed0991b0f8dfc543James Dong** you may not use this file except in compliance with the License. 737047fceba836f341d0108beed0991b0f8dfc543James Dong** You may obtain a copy of the License at 837047fceba836f341d0108beed0991b0f8dfc543James Dong** 937047fceba836f341d0108beed0991b0f8dfc543James Dong** http://www.apache.org/licenses/LICENSE-2.0 1037047fceba836f341d0108beed0991b0f8dfc543James Dong** 1137047fceba836f341d0108beed0991b0f8dfc543James Dong** Unless required by applicable law or agreed to in writing, software 1237047fceba836f341d0108beed0991b0f8dfc543James Dong** distributed under the License is distributed on an "AS IS" BASIS, 1337047fceba836f341d0108beed0991b0f8dfc543James Dong** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1437047fceba836f341d0108beed0991b0f8dfc543James Dong** See the License for the specific language governing permissions and 1537047fceba836f341d0108beed0991b0f8dfc543James Dong** limitations under the License. 1637047fceba836f341d0108beed0991b0f8dfc543James Dong*/ 1737047fceba836f341d0108beed0991b0f8dfc543James Dong 1837047fceba836f341d0108beed0991b0f8dfc543James Dong#include <utils/RefBase.h> 1937047fceba836f341d0108beed0991b0f8dfc543James Dong#include <binder/IInterface.h> 2037047fceba836f341d0108beed0991b0f8dfc543James Dong#include <binder/Parcel.h> 2137047fceba836f341d0108beed0991b0f8dfc543James Dong 2237047fceba836f341d0108beed0991b0f8dfc543James Dong#include <media/IMediaRecorderClient.h> 2337047fceba836f341d0108beed0991b0f8dfc543James Dong 2437047fceba836f341d0108beed0991b0f8dfc543James Dongnamespace android { 2537047fceba836f341d0108beed0991b0f8dfc543James Dong 2637047fceba836f341d0108beed0991b0f8dfc543James Dongenum { 2737047fceba836f341d0108beed0991b0f8dfc543James Dong NOTIFY = IBinder::FIRST_CALL_TRANSACTION, 2837047fceba836f341d0108beed0991b0f8dfc543James Dong}; 2937047fceba836f341d0108beed0991b0f8dfc543James Dong 3037047fceba836f341d0108beed0991b0f8dfc543James Dongclass BpMediaRecorderClient: public BpInterface<IMediaRecorderClient> 3137047fceba836f341d0108beed0991b0f8dfc543James Dong{ 3237047fceba836f341d0108beed0991b0f8dfc543James Dongpublic: 3337047fceba836f341d0108beed0991b0f8dfc543James Dong BpMediaRecorderClient(const sp<IBinder>& impl) 3437047fceba836f341d0108beed0991b0f8dfc543James Dong : BpInterface<IMediaRecorderClient>(impl) 3537047fceba836f341d0108beed0991b0f8dfc543James Dong { 3637047fceba836f341d0108beed0991b0f8dfc543James Dong } 3737047fceba836f341d0108beed0991b0f8dfc543James Dong 3837047fceba836f341d0108beed0991b0f8dfc543James Dong virtual void notify(int msg, int ext1, int ext2) 3937047fceba836f341d0108beed0991b0f8dfc543James Dong { 4037047fceba836f341d0108beed0991b0f8dfc543James Dong Parcel data, reply; 4137047fceba836f341d0108beed0991b0f8dfc543James Dong data.writeInterfaceToken(IMediaRecorderClient::getInterfaceDescriptor()); 4237047fceba836f341d0108beed0991b0f8dfc543James Dong data.writeInt32(msg); 4337047fceba836f341d0108beed0991b0f8dfc543James Dong data.writeInt32(ext1); 4437047fceba836f341d0108beed0991b0f8dfc543James Dong data.writeInt32(ext2); 4537047fceba836f341d0108beed0991b0f8dfc543James Dong remote()->transact(NOTIFY, data, &reply, IBinder::FLAG_ONEWAY); 4637047fceba836f341d0108beed0991b0f8dfc543James Dong } 4737047fceba836f341d0108beed0991b0f8dfc543James Dong}; 4837047fceba836f341d0108beed0991b0f8dfc543James Dong 4937047fceba836f341d0108beed0991b0f8dfc543James DongIMPLEMENT_META_INTERFACE(MediaRecorderClient, "android.media.IMediaRecorderClient"); 5037047fceba836f341d0108beed0991b0f8dfc543James Dong 5137047fceba836f341d0108beed0991b0f8dfc543James Dong// ---------------------------------------------------------------------- 5237047fceba836f341d0108beed0991b0f8dfc543James Dong 5337047fceba836f341d0108beed0991b0f8dfc543James Dongstatus_t BnMediaRecorderClient::onTransact( 5437047fceba836f341d0108beed0991b0f8dfc543James Dong uint32_t code, const Parcel& data, Parcel* reply, uint32_t flags) 5537047fceba836f341d0108beed0991b0f8dfc543James Dong{ 56e53b9ead781c36e96d6b6f012ddffc93a3d80f0dGlenn Kasten switch (code) { 5737047fceba836f341d0108beed0991b0f8dfc543James Dong case NOTIFY: { 5837047fceba836f341d0108beed0991b0f8dfc543James Dong CHECK_INTERFACE(IMediaRecorderClient, data, reply); 5937047fceba836f341d0108beed0991b0f8dfc543James Dong int msg = data.readInt32(); 6037047fceba836f341d0108beed0991b0f8dfc543James Dong int ext1 = data.readInt32(); 6137047fceba836f341d0108beed0991b0f8dfc543James Dong int ext2 = data.readInt32(); 6237047fceba836f341d0108beed0991b0f8dfc543James Dong notify(msg, ext1, ext2); 6337047fceba836f341d0108beed0991b0f8dfc543James Dong return NO_ERROR; 6437047fceba836f341d0108beed0991b0f8dfc543James Dong } break; 6537047fceba836f341d0108beed0991b0f8dfc543James Dong default: 6637047fceba836f341d0108beed0991b0f8dfc543James Dong return BBinder::onTransact(code, data, reply, flags); 6737047fceba836f341d0108beed0991b0f8dfc543James Dong } 6837047fceba836f341d0108beed0991b0f8dfc543James Dong} 6937047fceba836f341d0108beed0991b0f8dfc543James Dong 7037047fceba836f341d0108beed0991b0f8dfc543James Dong}; // namespace android 71