<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Hi Niklas,<br>
    <br>
    <div class="moz-cite-prefix">On 9/25/20 8:37 PM, Niklas Söderlund
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20200925150743.1822226-7-niklas.soderlund@ragnatech.se">
      <pre class="moz-quote-pre" wrap="">Instead of only printing the camera ID which is not intended for humans
to read and parse create a more user friendly string when printing
camera names. The ID is still printed as it is one option used to select
camera using the --camera option.

Signed-off-by: Niklas Söderlund <a class="moz-txt-link-rfc2396E" href="mailto:niklas.soderlund@ragnatech.se"><niklas.soderlund@ragnatech.se></a>
Reviewed-by: Kieran Bingham <a class="moz-txt-link-rfc2396E" href="mailto:kieran.bingham@ideasonboard.com"><kieran.bingham@ideasonboard.com></a></pre>
    </blockquote>
    LGTM.<span style="color: rgb(34, 34, 34); font-family: arial,
      sans-serif; font-size: 16px; font-style: normal;
      font-variant-ligatures: normal; font-variant-caps: normal;
      font-weight: 400; letter-spacing: normal; orphans: 2; text-align:
      left; text-indent: 0px; text-transform: none; white-space: normal;
      widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px;
      background-color: rgb(255, 255, 255); text-decoration-style:
      initial; text-decoration-color: initial; display: inline
      !important; float: none;"> 👍</span><br>
    Reviewed-by: Umang Jain <a class="moz-txt-link-rfc2396E" href="mailto:email@uajain.com"><email@uajain.com></a> <br>
    <blockquote type="cite"
      cite="mid:20200925150743.1822226-7-niklas.soderlund@ragnatech.se">
      <pre class="moz-quote-pre" wrap="">
---
* Changes since v4
- Make cameraName() member ofr CamApp.

* Changes since v1
- Only print user-friendly names when listing cameras.
- Update format of user-friendly names printed.
- Update commit message.
---
 src/cam/main.cpp | 31 ++++++++++++++++++++++++++++++-
 1 file changed, 30 insertions(+), 1 deletion(-)

diff --git a/src/cam/main.cpp b/src/cam/main.cpp
index 244720b491f5c462..ed56d06c9d3386b9 100644
--- a/src/cam/main.cpp
+++ b/src/cam/main.cpp
@@ -45,6 +45,8 @@ private:
        int infoConfiguration();
        int run();
 
+       std::string cameraName(const Camera *camera);
+
        static CamApp *app_;
        OptionsParser::Options options_;
        CameraManager *cm_;
@@ -340,7 +342,7 @@ int CamApp::run()
 
                unsigned int index = 1;
                for (const std::shared_ptr<Camera> &cam : cm_->cameras()) {
-                       std::cout << index << ": " << cam->id() << std::endl;
+                       std::cout << index << ": " << cameraName(cam.get()) << std::endl;
                        index++;
                }
        }
@@ -378,6 +380,33 @@ int CamApp::run()
        return 0;
 }
 
+std::string CamApp::cameraName(const Camera *camera)
+{
+       const ControlList &props = camera->properties();
+       std::string name;
+
+       if (props.contains(properties::Location)) {
+               switch (props.get(properties::Location)) {
+               case properties::CameraLocationFront:
+                       name = "Internal front camera";
+                       break;
+               case properties::CameraLocationBack:
+                       name = "Internal back camera";
+                       break;
+               case properties::CameraLocationExternal:
+                       name = "External camera";
+                       break;
+               }
+       }
+
+       if (props.contains(properties::Model))
+               name += " " + props.get(properties::Model);
+
+       name += " (" + camera->id() + ")";
+
+       return name;
+}
+
 void signalHandler([[maybe_unused]] int signal)
 {
        std::cout << "Exiting" << std::endl;
</pre>
    </blockquote>
    <br>
  </body>
</html>