Allow to specify list of supported input configurations.

... and populate corresponding metadata entries / perform
validation based on these.

Bug: 301023410
Test: atest virtual_camera_tests
Change-Id: I66f3cf2b013d5845b6fa7429294a1ed2157318f8
diff --git a/services/camera/virtualcamera/VirtualCameraSession.h b/services/camera/virtualcamera/VirtualCameraSession.h
index 440720e..6df5d58 100644
--- a/services/camera/virtualcamera/VirtualCameraSession.h
+++ b/services/camera/virtualcamera/VirtualCameraSession.h
@@ -34,6 +34,8 @@
 namespace companion {
 namespace virtualcamera {
 
+class VirtualCameraDevice;
+
 // Implementation of ICameraDeviceSession AIDL interface to allow camera
 // framework to read image data from open virtual camera device. This class
 // encapsulates possibly several image streams for the same session.
@@ -44,7 +46,7 @@
   // When virtualCameraClientCallback is null, the input surface will be filled
   // with test pattern.
   VirtualCameraSession(
-      const std::string& cameraId,
+      VirtualCameraDevice& mCameraDevice,
       std::shared_ptr<
           ::aidl::android::hardware::camera::device::ICameraDeviceCallback>
           cameraDeviceCallback,
@@ -114,7 +116,7 @@
       const ::aidl::android::hardware::camera::device::CaptureRequest& request)
       EXCLUDES(mLock);
 
-  const std::string mCameraId;
+  VirtualCameraDevice& mCameraDevice;
 
   mutable std::mutex mLock;