From f295db5b53132cf28678607f65a5477aa7a864d8 Mon Sep 17 00:00:00 2001
From: Angel Santamaria-Navarro <asantamaria@iri.upc.edu>
Date: Mon, 12 Dec 2016 19:03:09 +0100
Subject: [PATCH] wip

---
 src/examples/mvbluefox3_test.cpp |   2 +-
 src/mvbluefox3.cpp               |  12 ++-
 src/mvbluefox3.h                 |  19 ++++-
 src/mvbluefox3_settings.cpp      | 133 +++++++++++++++----------------
 src/mvbluefox3_settings.h        |  73 +++++++++--------
 5 files changed, 131 insertions(+), 108 deletions(-)

diff --git a/src/examples/mvbluefox3_test.cpp b/src/examples/mvbluefox3_test.cpp
index 21ed8e4..6a9fdb3 100644
--- a/src/examples/mvbluefox3_test.cpp
+++ b/src/examples/mvbluefox3_test.cpp
@@ -37,7 +37,7 @@ double duration;
     {
 t.restart();
       cv::Mat image;
-      cam_ptr->GetImage(image);
+      cam_ptr->GetImageCV(image);
       cv::imshow( WINDOW_NAME, image );
       if(cv::waitKey(30) >= 0) break;
 // std::cout << '\r' << "fps:" << 1.0/t.elapsed() << std::flush;
diff --git a/src/mvbluefox3.cpp b/src/mvbluefox3.cpp
index be8a387..b887b6b 100644
--- a/src/mvbluefox3.cpp
+++ b/src/mvbluefox3.cpp
@@ -195,7 +195,7 @@ void CMvbluefox3::GetImage(char **image)
 }
 
 #ifdef HAVE_OPENCV_H
-void CMvbluefox3::GetImage(cv::Mat &image)
+void CMvbluefox3::GetImageCV(cv::Mat &image)
 {
   char *image_raw=NULL;
   GetImage(&image_raw);
@@ -249,6 +249,16 @@ void CMvbluefox3::GetImageReqFormat(mvIMPACT::acquire::Request *request)
                                            this->bytes_per_pixel_);
 }
 
+int CMvbluefox3::GetChDepth(void)
+{
+  return this->depth_;
+}
+
+int CMvbluefox3::GetBytesXPixel(void)
+{
+  return this->bytes_per_pixel_;
+}
+
 int CMvbluefox3::ReqExposeUs(void) 
 {
   if (this->request_ == NULL || !this->request_->isOK()) 
diff --git a/src/mvbluefox3.h b/src/mvbluefox3.h
index 9272fdb..d24adc0 100644
--- a/src/mvbluefox3.h
+++ b/src/mvbluefox3.h
@@ -27,7 +27,7 @@ private:
   void init(void)
   { 
     // Image format
-    pixel_format = MONO8;
+    pixel_format = mono8;
     width = 1280;
     height = 960;
     img_rot_angle = 0.0;
@@ -406,7 +406,7 @@ class CMvbluefox3
      */
     void GetImage(char **image);
 #ifdef HAVE_OPENCV_H
-    void GetImage(cv::Mat &image);
+    void GetImageCV(cv::Mat &image);
 #endif
 
     /**
@@ -429,6 +429,21 @@ class CMvbluefox3
      *  Get main camera parameters.
      */    
     CParams GetConfig(void); 
+
+    /**
+     * \brief Get channel's depth 
+     *
+     *  Get channel's depth.
+     */ 
+    int GetChDepth(void);
+
+    /**
+     * \brief Get bytes-pixel 
+     *
+     *  Get bytes-pixel.
+     */ 
+    int GetBytesXPixel(void);
+
 };
 
 } // End of CMvbluefox3 namespace
diff --git a/src/mvbluefox3_settings.cpp b/src/mvbluefox3_settings.cpp
index 7ea298c..253cc22 100644
--- a/src/mvbluefox3_settings.cpp
+++ b/src/mvbluefox3_settings.cpp
@@ -12,35 +12,34 @@ codings_t MVFormatToEncoding(const TImageDestinationPixelFormat& pixel_format)
 
   switch (pixel_format) 
   {
-    case idpfAuto : coding = AUTO; break;  //*
-    case idpfRaw: coding = RAW; break;
-    case idpfMono8: coding = MONO8; break;
-    case idpfMono10: coding = MONO10; break; //* 
-    case idpfMono12: coding = MONO12; break; //*  
-    case idpfMono12Packed_V1: coding = MONO12V1; break; //*  
-    case idpfMono12Packed_V2: coding = MONO12V2; break; //*  
-    case idpfMono14: coding = MONO14; break; //*            
-    case idpfMono16: coding = MONO16; break;  
-    case idpfBGR888Packed: coding = BGR8; break;
-    case idpfRGB888Planar: coding = RGB8P; break; //*  
-    case idpfRGBx888Planar: coding = RGBA8P; break; //*  
-    case idpfBGR101010Packed_V2: coding = BGR10V2; break; //*
-    case idpfRGB888Packed: coding = RGB8; break;
-    case idpfRGB101010Packed: coding = RGB10; break; //*
-    case idpfRGB121212Packed: coding = RGB12; break; //*
-    case idpfRGB141414Packed: coding = RGB14; break; //*
-    case idpfRGB161616Packed: coding = RGB16; break;
-    case idpfRGBx888Packed: coding = RGBA8; break;
-    case idpfYUV411_UYYVYY_Packed: coding = YUV411UYYVYY; break; //*
-    case idpfYUV422Packed: coding = YUV422; break;  
-    case idpfYUV422Planar: coding = YUV422P; break; //*
-    case idpfYUV422_10Packed: coding = YUV42210; break; //*  
-    case idpfYUV422_UYVYPacked: coding = YUV422UYVY; break; //*  
-    case idpfYUV422_UYVY_10Packed: coding = YUV422UYVY10; break; //*  
-    case idpfYUV444Packed: coding = YUV444; break; //*
-    case idpfYUV444_10Packed: coding = YUV44410P; break; //*
-    case idpfYUV444_UYVPacked: coding = YUV444UYV; break; //*
-    case idpfYUV444_UYV_10Packed: coding = YUV444UYV10; break; //*
+    case idpfAuto : coding = raw; break;  //*
+    case idpfRaw: coding = raw; break;
+    case idpfMono8: coding = mono8; break;
+    case idpfMono10: coding = mono10; break; //* 
+    case idpfMono12: coding = mono12; break; //*  
+    case idpfMono12Packed_V1: coding = mono12v1; break; //*  
+    case idpfMono12Packed_V2: coding = mono12v2; break; //*  
+    case idpfMono14: coding = mono14; break; //*            
+    case idpfMono16: coding = mono16; break;  
+    case idpfBGR888Packed: coding = bgr8; break;
+    case idpfRGB888Planar: coding = rgb8p; break; //*  
+    case idpfRGBx888Planar: coding = rgba8p; break; //*  
+    case idpfRGB888Packed: coding = rgb8; break;
+    case idpfRGB101010Packed: coding = rgb10; break; //*
+    case idpfRGB121212Packed: coding = rgb12; break; //*
+    case idpfRGB141414Packed: coding = rgb14; break; //*
+    case idpfRGB161616Packed: coding = rgb16; break;
+    case idpfRGBx888Packed: coding = rgba8; break;
+    case idpfYUV411_UYYVYY_Packed: coding = yuv411uyyvyy; break; //*
+    case idpfYUV422Packed: coding = yuv422; break;  
+    case idpfYUV422Planar: coding = yuv422p; break; //*
+    case idpfYUV422_10Packed: coding = yuv42210; break; //*  
+    case idpfYUV422_UYVYPacked: coding = yuv422uyvy; break; //*  
+    case idpfYUV422_UYVY_10Packed: coding = yuv422uyvy10; break; //*  
+    case idpfYUV444Packed: coding = yuv444; break; //*
+    case idpfYUV444_10Packed: coding = yuv44410p; break; //*
+    case idpfYUV444_UYVPacked: coding = yuv444uyv; break; //*
+    case idpfYUV444_UYV_10Packed: coding = yuv444uyv10; break; //*
   }
   return coding;
 }
@@ -51,34 +50,34 @@ TImageDestinationPixelFormat EncodingToMVFormat(const codings_t& coding)
   switch (coding)
   {
     default: idpf = idpfAuto; break;  //*
-    case RAW: idpf = idpfRaw; break;
-    case MONO8: idpf = idpfMono8; break;
-    case MONO10: idpf = idpfMono10; break; //* 
-    case MONO12: idpf = idpfMono12; break; //*  
-    case MONO12V1: idpf = idpfMono12Packed_V1; break; //*  
-    case MONO12V2: idpf = idpfMono12Packed_V2; break; //*  
-    case MONO14: idpf = idpfMono14; break; //*            
-    case MONO16: idpf = idpfMono16; break;  
-    case BGR8: idpf = idpfBGR888Packed; break;
-    case RGB8P: idpf = idpfRGB888Planar; break; //*  
-    case RGBA8P: idpf = idpfRGBx888Planar; break; //*  
-    case BGR10V2: idpf = idpfBGR101010Packed_V2; break; //*
-    case RGB8: idpf = idpfRGB888Packed; break;
-    case RGB10: idpf = idpfRGB101010Packed; break; //*
-    case RGB12: idpf = idpfRGB121212Packed; break; //*
-    case RGB14: idpf = idpfRGB141414Packed; break; //*
-    case RGB16: idpf = idpfRGB161616Packed; break;
-    case RGBA8: idpf = idpfRGBx888Packed; break;
-    case YUV411UYYVYY: idpf = idpfYUV411_UYYVYY_Packed; break; //*
-    case YUV422: idpf = idpfYUV422Packed; break;  
-    case YUV422P: idpf = idpfYUV422Planar; break; //*
-    case YUV42210: idpf = idpfYUV422_10Packed; break; //*  
-    case YUV422UYVY: idpf = idpfYUV422_UYVYPacked; break; //*  
-    case YUV422UYVY10: idpf = idpfYUV422_UYVY_10Packed; break; //*  
-    case YUV444: idpf = idpfYUV444Packed; break; //*
-    case YUV44410P: idpf = idpfYUV444_10Packed; break; //*
-    case YUV444UYV: idpf = idpfYUV444_UYVPacked; break; //*
-    case YUV444UYV10: idpf = idpfYUV444_UYV_10Packed; break; //*
+    case raw: idpf = idpfRaw; break;
+    case mono8: idpf = idpfMono8; break;
+    case mono10: idpf = idpfMono10; break; //* 
+    case mono12: idpf = idpfMono12; break; //*  
+    case mono12v1: idpf = idpfMono12Packed_V1; break; //*  
+    case mono12v2: idpf = idpfMono12Packed_V2; break; //*  
+    case mono14: idpf = idpfMono14; break; //*            
+    case mono16: idpf = idpfMono16; break;  
+    case bgr8: idpf = idpfBGR888Packed; break;
+    case rgb8p: idpf = idpfRGB888Planar; break; //*  
+    case rgba8p: idpf = idpfRGBx888Planar; break; //*  
+    case bgr10v2: idpf = idpfBGR101010Packed_V2; break; //*
+    case rgb8: idpf = idpfRGB888Packed; break;
+    case rgb10: idpf = idpfRGB101010Packed; break; //*
+    case rgb12: idpf = idpfRGB121212Packed; break; //*
+    case rgb14: idpf = idpfRGB141414Packed; break; //*
+    case rgb16: idpf = idpfRGB161616Packed; break;
+    case rgba8: idpf = idpfRGBx888Packed; break;
+    case yuv411uyyvyy: idpf = idpfYUV411_UYYVYY_Packed; break; //*
+    case yuv422: idpf = idpfYUV422Packed; break;  
+    case yuv422p: idpf = idpfYUV422Planar; break; //*
+    case yuv42210: idpf = idpfYUV422_10Packed; break; //*  
+    case yuv422uyvy: idpf = idpfYUV422_UYVYPacked; break; //*  
+    case yuv422uyvy10: idpf = idpfYUV422_UYVY_10Packed; break; //*  
+    case yuv444: idpf = idpfYUV444Packed; break; //*
+    case yuv44410p: idpf = idpfYUV444_10Packed; break; //*
+    case yuv444uyv: idpf = idpfYUV444_UYVPacked; break; //*
+    case yuv444uyv10: idpf = idpfYUV444_UYV_10Packed; break; //*
   }
   return idpf;
 }
@@ -91,22 +90,22 @@ codings_t BayerPatternToEncoding(const TBayerMosaicParity& bayer_pattern,
   {
     switch (bayer_pattern) 
     {
-      case bmpRG: coding = BAYER_RGGB8; break;
-      case bmpGB: coding = BAYER_GBRG8; break;
-      case bmpGR: coding = BAYER_GRBG8; break;
-      case bmpBG: coding = BAYER_BGGR8; break;
-      default: coding = MONO8; break;
+      case bmpRG: coding = bayer_rggb8; break;
+      case bmpGB: coding = bayer_gbrg8; break;
+      case bmpGR: coding = bayer_grbg8; break;
+      case bmpBG: coding = bayer_bggr8; break;
+      default: coding = mono8; break;
     }
   } 
   else if (bytes_per_pixel == 2) 
   {
     switch (bayer_pattern) 
     {
-      case bmpRG: coding = BAYER_RGGB16; break;
-      case bmpGB: coding = BAYER_GBRG16; break;
-      case bmpGR: coding = BAYER_GRBG16; break;
-      case bmpBG: coding = BAYER_BGGR16; break;
-      default: coding = MONO16; break;
+      case bmpRG: coding = bayer_rggb16; break;
+      case bmpGB: coding = bayer_gbrg16; break;
+      case bmpGR: coding = bayer_grbg16; break;
+      case bmpBG: coding = bayer_bggr16; break;
+      default: coding = mono16; break;
     }
   }
   return coding;
diff --git a/src/mvbluefox3_settings.h b/src/mvbluefox3_settings.h
index ab5f762..24af176 100644
--- a/src/mvbluefox3_settings.h
+++ b/src/mvbluefox3_settings.h
@@ -19,43 +19,42 @@ namespace CMvbluefox3 {
  * codings_str[codings_t].
  */
 #define FOREACH_ENCODING(ENCODING) \
-  ENCODING(AUTO) \
-  ENCODING(RAW) \
-  ENCODING(MONO8) \
-  ENCODING(MONO10) \
-  ENCODING(MONO12) \
-  ENCODING(MONO12V1) \
-  ENCODING(MONO12V2) \
-  ENCODING(MONO14) \
-  ENCODING(MONO16) \
-  ENCODING(RGB8) \
-  ENCODING(RGB8P) \
-  ENCODING(RGB10) \
-  ENCODING(RGB12) \
-  ENCODING(RGB14) \
-  ENCODING(RGB16) \
-  ENCODING(RGBA8) \
-  ENCODING(RGBA8P) \
-  ENCODING(BGR8) \
-  ENCODING(BGR10V2) \
-  ENCODING(YUV411UYYVYY) \
-  ENCODING(YUV422) \
-  ENCODING(YUV422P) \
-  ENCODING(YUV42210) \
-  ENCODING(YUV422UYVY) \
-  ENCODING(YUV422UYVY10) \
-  ENCODING(YUV444) \
-  ENCODING(YUV44410P) \
-  ENCODING(YUV444UYV) \
-  ENCODING(YUV444UYV10) \
-  ENCODING(BAYER_RGGB8) \
-  ENCODING(BAYER_GBRG8) \
-  ENCODING(BAYER_GRBG8) \
-  ENCODING(BAYER_BGGR8) \
-  ENCODING(BAYER_RGGB16) \
-  ENCODING(BAYER_GBRG16) \
-  ENCODING(BAYER_GRBG16) \
-  ENCODING(BAYER_BGGR16) 
+  ENCODING(raw) \
+  ENCODING(mono8) \
+  ENCODING(mono10) \
+  ENCODING(mono12) \
+  ENCODING(mono12v1) \
+  ENCODING(mono12v2) \
+  ENCODING(mono14) \
+  ENCODING(mono16) \
+  ENCODING(rgb8) \
+  ENCODING(rgb8p) \
+  ENCODING(rgb10) \
+  ENCODING(rgb12) \
+  ENCODING(rgb14) \
+  ENCODING(rgb16) \
+  ENCODING(rgba8) \
+  ENCODING(rgba8p) \
+  ENCODING(bgr8) \
+  ENCODING(bgr10v2) \
+  ENCODING(yuv411uyyvyy) \
+  ENCODING(yuv422) \
+  ENCODING(yuv422p) \
+  ENCODING(yuv42210) \
+  ENCODING(yuv422uyvy) \
+  ENCODING(yuv422uyvy10) \
+  ENCODING(yuv444) \
+  ENCODING(yuv44410p) \
+  ENCODING(yuv444uyv) \
+  ENCODING(yuv444uyv10) \
+  ENCODING(bayer_rggb8) \
+  ENCODING(bayer_gbrg8) \
+  ENCODING(bayer_grbg8) \
+  ENCODING(bayer_bggr8) \
+  ENCODING(bayer_rggb16) \
+  ENCODING(bayer_gbrg16) \
+  ENCODING(bayer_grbg16) \
+  ENCODING(bayer_bggr16) 
 #define GENERATE_ENUM_ENC(ENUM) ENUM,
 #define GENERATE_STRING_ENC(STRING) #STRING,
 enum codings_t { FOREACH_ENCODING(GENERATE_ENUM_ENC) };
-- 
GitLab