Camera: Switch camera2 to auto-gen C++ binder interfaces
- Move camera service AIDL files to frameworks/av
- Build C++ interface stubs with AIDL tools
- Add necessary native-side parcelables and update existing ones
- Remove manually-written stubs, rearrange remaining manual stubs
- Adjust implementations to work with auto-generated stubs
- Adjust method signatures for auto-gen differences
- Add rich error messages using binder::Status
Bug: 25091611
Change-Id: I6f69f34b9d1a3f8d1fb7db87357363f8fa8483ff
diff --git a/camera/ndk/impl/ACameraDevice.h b/camera/ndk/impl/ACameraDevice.h
index b73e621..46243b9 100644
--- a/camera/ndk/impl/ACameraDevice.h
+++ b/camera/ndk/impl/ACameraDevice.h
@@ -26,20 +26,18 @@
#include <utils/List.h>
#include <utils/Vector.h>
+#include <android/hardware/camera2/BnCameraDeviceCallbacks.h>
+#include <android/hardware/camera2/ICameraDeviceUser.h>
#include <media/stagefright/foundation/ALooper.h>
#include <media/stagefright/foundation/AHandler.h>
#include <media/stagefright/foundation/AMessage.h>
#include <camera/CaptureResult.h>
-#include <camera/camera2/ICameraDeviceCallbacks.h>
-#include <camera/camera2/ICameraDeviceUser.h>
#include <camera/camera2/OutputConfiguration.h>
#include <camera/camera2/CaptureRequest.h>
#include <NdkCameraDevice.h>
#include "ACameraMetadata.h"
-using namespace android;
-
namespace android {
// Wrap ACameraCaptureFailure so it can be ref-counter
@@ -64,24 +62,26 @@
/*out*/ACameraCaptureSession** session);
// Callbacks from camera service
- class ServiceCallback : public BnCameraDeviceCallbacks {
+ class ServiceCallback : public hardware::camera2::BnCameraDeviceCallbacks {
public:
ServiceCallback(CameraDevice* device) : mDevice(device) {}
- void onDeviceError(CameraErrorCode errorCode,
+ binder::Status onDeviceError(int32_t errorCode,
const CaptureResultExtras& resultExtras) override;
- void onDeviceIdle() override;
- void onCaptureStarted(const CaptureResultExtras& resultExtras,
+ binder::Status onDeviceIdle() override;
+ binder::Status onCaptureStarted(const CaptureResultExtras& resultExtras,
int64_t timestamp) override;
- void onResultReceived(const CameraMetadata& metadata,
+ binder::Status onResultReceived(const CameraMetadata& metadata,
const CaptureResultExtras& resultExtras) override;
- void onPrepared(int streamId) override;
+ binder::Status onPrepared(int streamId) override;
private:
const wp<CameraDevice> mDevice;
};
- inline sp<ICameraDeviceCallbacks> getServiceCallback() { return mServiceCallback; };
+ inline sp<hardware::camera2::ICameraDeviceCallbacks> getServiceCallback() {
+ return mServiceCallback;
+ };
// Camera device is only functional after remote being set
- void setRemoteDevice(sp<ICameraDeviceUser> remote);
+ void setRemoteDevice(sp<hardware::camera2::ICameraDeviceUser> remote);
inline ACameraDevice* getWrapper() const { return mWrapper; };
@@ -155,14 +155,14 @@
bool mInError;
camera_status_t mError;
void onCaptureErrorLocked(
- ICameraDeviceCallbacks::CameraErrorCode errorCode,
+ int32_t errorCode,
const CaptureResultExtras& resultExtras);
bool mIdle;
// This will avoid a busy session being deleted before it's back to idle state
sp<ACameraCaptureSession> mBusySession;
- sp<ICameraDeviceUser> mRemote;
+ sp<hardware::camera2::ICameraDeviceUser> mRemote;
// Looper thread to handle callback to app
sp<ALooper> mCbLooper;
@@ -294,17 +294,17 @@
/***********************
* Device interal APIs *
***********************/
- inline sp<ICameraDeviceCallbacks> getServiceCallback() {
+ inline android::sp<android::hardware::camera2::ICameraDeviceCallbacks> getServiceCallback() {
return mDevice->getServiceCallback();
};
// Camera device is only functional after remote being set
- inline void setRemoteDevice(sp<ICameraDeviceUser> remote) {
+ inline void setRemoteDevice(android::sp<android::hardware::camera2::ICameraDeviceUser> remote) {
mDevice->setRemoteDevice(remote);
}
private:
- sp<CameraDevice> mDevice;
+ android::sp<android::CameraDevice> mDevice;
};
#endif // _ACAMERA_DEVICE_H