Camera service: Initialization for camera2 clients and devices

- Refactor initialization code to hide device type from CameraService
- Add metadata queue class to Camera2Device
- Initialization of Camera2Device, Camera2Client
- Conversion from HAL2 device static metadata to camera API
  parameters.

Bug: 6243944
Change-Id: I524145b45438e906d8493dae202704ce8f090aeb
diff --git a/services/camera/libcameraservice/Camera2Client.h b/services/camera/libcameraservice/Camera2Client.h
index 709de0b..4f0fcf0 100644
--- a/services/camera/libcameraservice/Camera2Client.h
+++ b/services/camera/libcameraservice/Camera2Client.h
@@ -19,6 +19,7 @@
 
 #include "Camera2Device.h"
 #include "CameraService.h"
+#include "camera/CameraParameters.h"
 
 namespace android {
 
@@ -55,17 +56,25 @@
     // Interface used by CameraService
     Camera2Client(const sp<CameraService>& cameraService,
             const sp<ICameraClient>& cameraClient,
-            const sp<Camera2Device>& device,
             int cameraId,
             int cameraFacing,
             int clientPid);
     ~Camera2Client();
 
+    status_t initialize(camera_module_t *module);
+
     virtual status_t dump(int fd, const Vector<String16>& args);
 
 private:
+    CameraParameters *mParams;
+    sp<Camera2Device> mDevice;
 
+    // Convert static camera info from a camera2 device to the
+    // old API parameter map.
+    status_t buildDefaultParameters();
 
+    // Free parameters for mapping from new to old HAL
+    static const unsigned int kNumZoomSteps = 10;
 };
 
 }; // namespace android