android camera编程,Android Camera 流程学习记录(二)—— Camera Open 调用流程

::android::binder::Status BpCameraService::connect(const ::android::sp<::android::hardware::icameraclient>& client,

int32_t cameraId, const ::android::String16& opPackageName,

int32_t clientUid, int32_t clientPid,

::android::sp<::android::hardware::icamera>* _aidl_return)

{

::android::Parcel _aidl_data;

::android::Parcel _aidl_reply;

::android::status_t _aidl_ret_status = ::android::OK;

::android::binder::Status _aidl_status;

_aidl_ret_status = _aidl_data.writeInterfaceToken(getInterfaceDescriptor());

/***** NOTE THIS *****/

if (((_aidl_ret_status) != (::android::OK))) {

goto _aidl_error;

}

_aidl_ret_status = _aidl_data.writeStrongBinder(::android::hardware::ICameraClient::asBinder(client));

if (((_aidl_ret_status) != (::android::OK))) {

goto _aidl_error;

}

_aidl_ret_status = _aidl_data.writeInt32(cameraId);

if (((_aidl_ret_status) != (::android::OK))) {

goto _aidl_error;

}

_aidl_ret_status = _aidl_data.writeString16(opPackageName);

if (((_aidl_ret_status) != (::android::OK))) {

goto _aidl_error;

}

_aidl_ret_status = _aidl_data.writeInt32(clientUid);

if (((_aidl_ret_status) != (::android::OK))) {

goto _aidl_error;

}

_aidl_ret_status = _aidl_data.writeInt32(clientPid);

if (((_aidl_ret_status) != (::android::OK))) {

goto _aidl_error;

}

/***** NOTE THIS *****/

_aidl_ret_status = remote()->transact(ICameraService::CONNECT, _aidl_data, &_aidl_reply);

if (((_aidl_ret_status) != (::android::OK))) {

goto _aidl_error;

}

_aidl_ret_status = _aidl_status.readFromParcel(_aidl_reply);

if (((_aidl_ret_status) != (::android::OK))) {

goto _aidl_error;

}

if (!_aidl_status.isOk()) {

return _aidl_status;

}

_aidl_ret_status = _aidl_reply.readStrongBinder(_aidl_return);

if (((_aidl_ret_status) != (::android::OK))) {

goto _aidl_error;

}

_aidl_error:

_aidl_status.setFromStatusT(_aidl_ret_status);

return _aidl_status;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值