// get number of cameras available virtual int32_t getNumberOfCameras() { Parcel data, reply; data.writeInterfaceToken(ICameraService::getInterfaceDescriptor()); remote()->transact(BnCameraService::GET_NUMBER_OF_CAMERAS, data, &reply); if (readExceptionCode(reply)) return 0; return reply.readInt32(); }
virtual status_t removeListener(const sp<ICameraServiceListener>& listener) { Parcel data, reply; data.writeInterfaceToken(ICameraService::getInterfaceDescriptor()); data.writeStrongBinder(listener->asBinder()); remote()->transact(BnCameraService::REMOVE_LISTENER, data, &reply); if (readExceptionCode(reply)) return -EPROTO; return reply.readInt32(); }
virtual status_t unRegisterCamera1Device(NSCam::ICamDevice *device) { Parcel data, reply; data.writeInterfaceToken(IMMSdkService::getInterfaceDescriptor()); //data.writePointer(reinterpret_cast<intptr_t>(device)); data.write(reinterpret_cast<void*>(device), sizeof(NSCam::ICamDevice *)); remote()->transact(BnMMSdkService::UNREGISTER_CAMERA_1_DEVICE, data, &reply); if (readExceptionCode(reply)) return -EPROTO; status_t status = reply.readInt32(); return status; }
virtual status_t disconnectHeartrate() { Parcel data, reply; data.writeInterfaceToken(IMMSdkService::getInterfaceDescriptor()); remote()->transact(BnMMSdkService::DISCONNECT_HEARTRATE, data, &reply); if (readExceptionCode(reply)) return -EPROTO; status_t status = reply.readInt32(); return status; }
virtual status_t connectImageTransformUser(sp<NSImageTransform::IImageTransformUser>& client) { Parcel data, reply; data.writeInterfaceToken(IMMSdkService::getInterfaceDescriptor()); remote()->transact(BnMMSdkService::CONNECT_IMAGETRANSFORMUSER, data, &reply); if (readExceptionCode(reply)) return -EPROTO; status_t status = reply.readInt32(); if (reply.readInt32() != 0) { client = interface_cast<NSImageTransform::IImageTransformUser>(reply.readStrongBinder()); } return status; }
virtual status_t connectFeatureManager(sp<NSCam::IFeatureManager> & featureManager) { Parcel data, reply; data.writeInterfaceToken(IMMSdkService::getInterfaceDescriptor()); remote()->transact(BnMMSdkService::GET_MMSDK_FEAUTRE_MANAGER, data, &reply); if (readExceptionCode(reply)) return -EPROTO; status_t status = reply.readInt32(); if (reply.readInt32() != 0) { featureManager = interface_cast<NSCam::IFeatureManager>(reply.readStrongBinder()); } return status; }
virtual status_t connectHeartrate(sp<NSHeartrate::IHeartrateUser>& client) { Parcel data, reply; data.writeInterfaceToken(IMMSdkService::getInterfaceDescriptor()); remote()->transact(BnMMSdkService::CONNECT_HEARTRATE, data, &reply); if (readExceptionCode(reply)) return -EPROTO; status_t status = reply.readInt32(); if (reply.readInt32() != 0) { client = interface_cast<NSHeartrate::IHeartrateUser>(reply.readStrongBinder()); } return status; }
virtual status_t connectEffect(String16 const &clientName, sp<NSEffect::IEffectUser>& client ) { Parcel data, reply; data.writeInterfaceToken(IMMSdkService::getInterfaceDescriptor()); data.writeString16(clientName); remote()->transact(BnMMSdkService::CONNECT_EFFECT, data, &reply); if (readExceptionCode(reply)) return -EPROTO; status_t status = reply.readInt32(); if (reply.readInt32() != 0) { client = interface_cast<NSEffect::IEffectUser>(reply.readStrongBinder()); } return status; }
// get information about a camera virtual status_t getCameraInfo(int cameraId, struct CameraInfo* cameraInfo) { Parcel data, reply; data.writeInterfaceToken(ICameraService::getInterfaceDescriptor()); data.writeInt32(cameraId); remote()->transact(BnCameraService::GET_CAMERA_INFO, data, &reply); if (readExceptionCode(reply)) return -EPROTO; status_t result = reply.readInt32(); if (reply.readInt32() != 0) { cameraInfo->facing = reply.readInt32(); cameraInfo->orientation = reply.readInt32(); } return result; }
// connect to camera service (pro client) virtual status_t connectPro(const sp<IProCameraCallbacks>& cameraCb, int cameraId, const String16 &clientPackageName, int clientUid, /*out*/ sp<IProCameraUser>& device) { Parcel data, reply; data.writeInterfaceToken(ICameraService::getInterfaceDescriptor()); data.writeStrongBinder(cameraCb->asBinder()); data.writeInt32(cameraId); data.writeString16(clientPackageName); data.writeInt32(clientUid); remote()->transact(BnCameraService::CONNECT_PRO, data, &reply); if (readExceptionCode(reply)) return -EPROTO; status_t status = reply.readInt32(); if (reply.readInt32() != 0) { device = interface_cast<IProCameraUser>(reply.readStrongBinder()); } return status; }
// get camera characteristics (static metadata) virtual status_t getCameraCharacteristics(int cameraId, CameraMetadata* cameraInfo) { Parcel data, reply; data.writeInterfaceToken(ICameraService::getInterfaceDescriptor()); data.writeInt32(cameraId); remote()->transact(BnCameraService::GET_CAMERA_CHARACTERISTICS, data, &reply); if (readExceptionCode(reply)) return -EPROTO; status_t result = reply.readInt32(); CameraMetadata out; if (reply.readInt32() != 0) { out.readFromParcel(&reply); } if (cameraInfo != NULL) { cameraInfo->swap(out); } return result; }