Initial static info.

Fills in initial values for all required static info
fields for LIMITED devices. Currently fakes entries
that will eventually be queried from the device (open
bug https://b/29394024).

BUG: https://b/29214526, https://b/29221641
Change-Id: I6b4bfa172c882df22159da63378902cea7cc76fd
diff --git a/modules/camera/3_4/Camera.cpp b/modules/camera/3_4/Camera.cpp
index 6e9e12a..0014a39 100644
--- a/modules/camera/3_4/Camera.cpp
+++ b/modules/camera/3_4/Camera.cpp
@@ -60,7 +60,7 @@
     memset(&mTemplates, 0, sizeof(mTemplates));
     memset(&mDevice, 0, sizeof(mDevice));
     mDevice.common.tag    = HARDWARE_DEVICE_TAG;
-    mDevice.common.version = CAMERA_DEVICE_API_VERSION_3_0;
+    mDevice.common.version = CAMERA_DEVICE_API_VERSION_3_4;
     mDevice.common.close  = close_device;
     mDevice.ops           = const_cast<camera3_device_ops_t*>(&sOps);
     mDevice.priv          = this;
@@ -109,9 +109,10 @@
     info->device_version = mDevice.common.version;
     initDeviceInfo(info);
     if (mStaticInfo == NULL) {
-        mStaticInfo = initStaticInfo();
+      if (initStaticInfo(&mStaticInfo)) {
+        return -ENODEV;
+      }
     }
-
     info->static_camera_characteristics = mStaticInfo;
     return 0;
 }
@@ -319,7 +320,7 @@
 
 bool Camera::isValidTemplateType(int type)
 {
-    return type < 1 || type >= CAMERA3_TEMPLATE_COUNT;
+    return type > 0 && type < CAMERA3_TEMPLATE_COUNT;
 }
 
 const camera_metadata_t* Camera::constructDefaultRequestSettings(int type)
@@ -514,7 +515,7 @@
     return "Invalid template type!";
 }
 
-int Camera::setTemplate(int type, camera_metadata_t *settings)
+int Camera::setTemplate(int type, const camera_metadata_t *settings)
 {
     android::Mutex::Autolock al(mDeviceLock);
 
@@ -558,6 +559,7 @@
     return camdev_to_camera(dev)->configureStreams(stream_list);
 }
 
+  // TODO: remove
 static int register_stream_buffers(const camera3_device_t *dev,
         const camera3_stream_buffer_set_t *buffer_set)
 {
@@ -592,7 +594,7 @@
 const camera3_device_ops_t Camera::sOps = {
     .initialize = default_camera_hal::initialize,
     .configure_streams = default_camera_hal::configure_streams,
-    .register_stream_buffers = default_camera_hal::register_stream_buffers,
+    .register_stream_buffers = nullptr,
     .construct_default_request_settings
         = default_camera_hal::construct_default_request_settings,
     .process_capture_request = default_camera_hal::process_capture_request,