From a6d5b193aa6c6d525828e9de7677701f3e4b1252 Mon Sep 17 00:00:00 2001
From: am0ebe <am0ebe@gmx.de>
Date: Wed, 31 Jan 2024 17:52:59 +0100
Subject: [PATCH] print and printlist(), integrate versionstring in new arch,
 mark current cam [*] <-- selected. others [], fix c++ bug in VmbCommonTypes

---
 src/cmd/console.cpp                      |  56 +++++++--
 src/cmd/console.h                        |  17 ++-
 src/cmd/core.cpp                         |  61 ++++++----
 src/cmd/core.h                           |   7 +-
 src/cmd/main.cpp                         |  15 ++-
 src/utils.cpp                            |   1 -
 src/utils.h                              |   2 +
 vimbax/api/include/VmbC/VmbCommonTypes.h | 148 +++++++++++------------
 8 files changed, 190 insertions(+), 117 deletions(-)

diff --git a/src/cmd/console.cpp b/src/cmd/console.cpp
index 2187e78..f0f65f6 100644
--- a/src/cmd/console.cpp
+++ b/src/cmd/console.cpp
@@ -1,5 +1,8 @@
 #include "console.h"
 #include "qcoreapplication.h"
+#include "qnamespace.h"
+
+#include "../utils.h"
 
 #include <QDebug>
 #include <QCoreApplication>
@@ -20,18 +23,30 @@ void Console::listenKeys()
 	}
 }
 
-void Console::updateCam(const QStringList& camInfo )
+void Console::print(const QString& str )
+{
+	qDebug() << str;
+}
+
+void Console::printList(QStringList& list )
 {
-	qDebug() << camInfo;
+
+	for ( auto& str : list  )
+	{
+		str.replace(DELIM," ");
+		qDebug() << str << " ";
+	}
 }
 
 Controller::Controller()
 {
-	Console *console = new Console;
+	Console* console = new Console;
 	console->moveToThread(&thread);
 	connect(&thread, &QThread::finished, console, &QObject::deleteLater);
 	connect(this, &Controller::operate, console, &Console::listenKeys);
 	connect(console, &Console::keyPressed, this, &Controller::keyPress);
+	connect(this, &Controller::print, console, &Console::print, Qt::DirectConnection); //just delegate to console
+	connect(this, &Controller::printList, console, &Console::printList, Qt::DirectConnection); //just delegate to console
 	thread.start();
 }
 
@@ -44,14 +59,33 @@ Controller::~Controller()
 
 void Controller::keyPress(const QChar& key)
 {
-	qDebug() << __FUNCTION__ << "u pressed " << key;
-	switch (key.unicode())
+
+	qDebug() << __FUNCTION__ << ": " << key;
+	if ( key.isDigit() )
 	{
-		case 'l':
-			emit listCams();
-			break;
-		case 'q':
-			qApp->quit();
-			break;
+		emit selectCam(key.digitValue());
 	}
+	else
+	{
+		switch (key.unicode())
+		{
+			case 'h':
+				emit printHelp();
+				break;
+			case 'o':
+				emit openCam();
+				break;
+			case 'l':
+				emit listCams();
+				break;
+			case 'v':
+				emit printVersion();
+				break;
+			case 'q':
+				qApp->quit();
+				break;
+		}
+	}
+
 }
+
diff --git a/src/cmd/console.h b/src/cmd/console.h
index ada47cf..c52ae7c 100644
--- a/src/cmd/console.h
+++ b/src/cmd/console.h
@@ -11,8 +11,10 @@ class Console : public QObject
 	Q_OBJECT
 
 	public slots:
-		void updateCam(const QStringList &);
 		void listenKeys();
+		void print(const QString&);
+		void printList(QStringList&);
+		// ...
 
 	signals:
 		void keyPressed(const QChar &key);
@@ -33,8 +35,21 @@ class Controller : public QObject
 
 	signals:
 		void operate();
+		void print(const QString&);
+		void printList(QStringList&);
 		void listCams();
 		void printVersion();
+
+		void openCam();
+		void printHelp();
+		void selectCam(int);
+
+		// void openCam();
+		// void calibrateCam();
+		// void startRecording();
+		// void stopRecording();
+		// void loadSettings();
+		// void storeSettings();
 		// ... more signals here
 
 };
diff --git a/src/cmd/core.cpp b/src/cmd/core.cpp
index 44ad4cb..2cf95de 100644
--- a/src/cmd/core.cpp
+++ b/src/cmd/core.cpp
@@ -6,7 +6,6 @@
 
 #include <VmbCPP/VmbCPP.h>
 
-// #include "qglobal.h"
 #include <QDebug>
 
 using namespace VmbCPP;
@@ -15,20 +14,18 @@ Core::Core() :
 	apiStarted( false ),
 	sys( VmbSystem::GetInstance() ), // Create and get Vimba singleton
 	cameras( CameraPtrVector() ), // Holds camera handles
-	camIdx(0)
+	camIdx(-1),
+	curCam(NULL)
 {
-	if ( VmbErrorSuccess == sys.Startup() )
-	{
-		apiStarted = true;
-		qDebug() << "init API :)";
-	}
-	else
+	if ( VmbErrorSuccess != sys.Startup() )
 	{
 		qDebug() << "Couldn't initialize API";
+		exit(1); //add err code
 	}
 
+	apiStarted = true;
+	qDebug() << "init API :)";
 	initCams();
-
 }
 
 
@@ -37,6 +34,12 @@ void Core::initCams()
 	if ( VmbErrorSuccess == sys.GetCameras( cameras ) )
 	{
 		qDebug() << "found " << cameras.size() << " cameras";
+		if (cameras.size())
+		{
+			camIdx = 0; //dflt to 1rst
+			curCam = cameras.at(camIdx);
+		}
+
 	}
 	else
 	{
@@ -71,48 +74,60 @@ void Core::setCam(ulong idx)
 void Core::listCams()
 {
 
-	qDebug() << __FUNCTION__ << "():" << __LINE__;
 	if( !apiStarted )
 		return;
 
-	// id,name,model,serial,interfaceID
-	std::for_each( cameras.begin(), cameras.end(), [this](const CameraPtr & camera)
+	// id,name,model,serial,interfaceID,state
+	QStringList allCamInfo;
+	auto idx=0UL;
+	for ( auto camera : cameras  )
 	{
 		std::string str;
-		QStringList camInfo;
+		QString curCamInfo;
+
+		if (idx == camIdx )
+			curCamInfo += "[*]" + DELIM;
+		else
+			curCamInfo += "[ ]" + DELIM;
 
 		VmbErrorType err = camera->GetID( str );
 		if( VmbErrorSuccess != err )
 			str =  errorCodeToMessage(err).toStdString();
-		camInfo << QString::fromStdString(str);
+		curCamInfo += QString::fromStdString(str) + DELIM;
 
 		err = camera->GetName( str );
 		if( VmbErrorSuccess != err )
 			str =  errorCodeToMessage(err).toStdString();
-		camInfo << QString::fromStdString(str);
+		curCamInfo += QString::fromStdString(str) + DELIM;
 
 		err = camera->GetModel( str );
 		if( VmbErrorSuccess != err )
 			str =  errorCodeToMessage(err).toStdString();
-		camInfo << QString::fromStdString(str);
+		curCamInfo += QString::fromStdString(str) + DELIM;
 
 		err = camera->GetSerialNumber( str );
 		if( VmbErrorSuccess != err )
 			str =  errorCodeToMessage(err).toStdString();
-		camInfo << QString::fromStdString(str);
+		curCamInfo += QString::fromStdString(str) + DELIM;
 
 		err = camera->GetInterfaceID( str );
 		if( VmbErrorSuccess != err )
 			str =  errorCodeToMessage(err).toStdString();
-		camInfo << QString::fromStdString(str);
-
-		camInfo << "closed"; //initially cams are closed, right?
+		curCamInfo += QString::fromStdString(str) + DELIM;
+		curCamInfo += "closed"; //initially cams are closed, right? XXX how to find out?
 
-		qDebug() << camInfo;
-		emit camsDetected(camInfo);
-	} );
+		allCamInfo << curCamInfo;
+		idx++;
+	}
 
+	// qDebug() << __LINE__ << "-" << __PRETTY_FUNCTION__ << allCamInfo;
+	emit camsListed(allCamInfo);
 }
 
+void Core::printVersion()
+{
+	auto version = getVersionString();
+	emit versionPrinted(version);
+}
 
 
diff --git a/src/cmd/core.h b/src/cmd/core.h
index 6f6a59c..0a6628f 100644
--- a/src/cmd/core.h
+++ b/src/cmd/core.h
@@ -1,5 +1,6 @@
 #pragma once
 
+#include "VmbCPP/SharedPointerDefines.h"
 #include "qglobal.h"
 #include <QObject>
 #include <VmbCPP/Interface.h>
@@ -19,9 +20,12 @@ class Core : public QObject
 
 	public slots:
 		void listCams();
+		void printVersion();
 
 	signals:
-		void camsDetected(const QStringList &);
+		void camsListed(QStringList &);
+		void versionPrinted(const QString &);
+		// ... more signals here
 
 	private:
 		void initCams();
@@ -33,4 +37,5 @@ class Core : public QObject
 		VmbCPP::VmbSystem& sys;
 		VmbCPP::CameraPtrVector cameras;
 		ulong camIdx;
+		CameraPtr curCam;
 };
diff --git a/src/cmd/main.cpp b/src/cmd/main.cpp
index bcf6af0..ce36fc4 100644
--- a/src/cmd/main.cpp
+++ b/src/cmd/main.cpp
@@ -48,16 +48,19 @@ bool maybeCreateDir(QDir out_dir)
 	QCoreApplication::setApplicationName("recorder");
 
 	Controller controller;
-	QTimer::singleShot(0, &controller, SIGNAL(operate()));
-
 	Core core;
-	QObject::connect(&controller, &Controller::listCams, &core, &Core::listCams);
 
-	QObject::connect(&core, &Core::camsDetected, &console, &Console::updateCam);
+	//ui (controller) -> vmb (core)
+	QObject::connect(&controller, &Controller::listCams, &core, &Core::listCams);
+	QObject::connect(&controller, &Controller::printVersion, &core, &Core::printVersion);
 
+	//vmb (core) -> ui (controller)
+	QObject::connect(&core, &Core::camsListed, &controller, &Controller::printList);
+	QObject::connect(&core, &Core::versionPrinted, &controller, &Controller::print);
 
-	// for testing:
-	QTimer::singleShot(0, &core, SLOT(listCams()));
+	QTimer::singleShot(0, &controller, SIGNAL(operate()));
+	QTimer::singleShot(10, &core, SLOT(printVersion())); // for testing
+	QTimer::singleShot(15, &core, SLOT(listCams())); // for testing
 
 
 
diff --git a/src/utils.cpp b/src/utils.cpp
index 890f152..f3e9822 100644
--- a/src/utils.cpp
+++ b/src/utils.cpp
@@ -28,7 +28,6 @@ const QString getVersionString()
     return s;
 }
 
-
 const QString errorCodeToMessage( VmbError_t err )
 {
     QString msg = "error: ";
diff --git a/src/utils.h b/src/utils.h
index 6ab86e5..41958f1 100644
--- a/src/utils.h
+++ b/src/utils.h
@@ -8,4 +8,6 @@ const QString getVersionString();
 const QString errorCodeToMessage( VmbError_t );
 QString randomString();
 
+const QChar DELIM='|';
+
 #endif
diff --git a/vimbax/api/include/VmbC/VmbCommonTypes.h b/vimbax/api/include/VmbC/VmbCommonTypes.h
index 9551769..360b8fa 100644
--- a/vimbax/api/include/VmbC/VmbCommonTypes.h
+++ b/vimbax/api/include/VmbC/VmbCommonTypes.h
@@ -342,89 +342,89 @@ extern "C" {
     typedef enum VmbPixelFormatType
     {
          // mono formats
-        VmbPixelFormatMono8                   = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy8Bit)  | 0x0001,  //!< Monochrome, 8 bits (PFNC:  Mono8)
-        VmbPixelFormatMono10                  = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0003,  //!< Monochrome, 10 bits in 16 bits (PFNC:  Mono10)
-        VmbPixelFormatMono10p                 = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy10Bit) | 0x0046,  //!< Monochrome, 10 bits in 16 bits (PFNC:  Mono10p)
-        VmbPixelFormatMono12                  = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0005,  //!< Monochrome, 12 bits in 16 bits (PFNC:  Mono12)
-        VmbPixelFormatMono12Packed            = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x0006,  //!< Monochrome, 2x12 bits in 24 bits (GEV:Mono12Packed)
-        VmbPixelFormatMono12p                 = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x0047,  //!< Monochrome, 2x12 bits in 24 bits (PFNC:  MonoPacked)
-        VmbPixelFormatMono14                  = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0025,  //!< Monochrome, 14 bits in 16 bits (PFNC:  Mono14)
-        VmbPixelFormatMono16                  = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0007,  //!< Monochrome, 16 bits (PFNC:  Mono16)
+        VmbPixelFormatMono8                   = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy8Bit)  | 0x0001,  //!< Monochrome, 8 bits (PFNC:  Mono8)
+        VmbPixelFormatMono10                  = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0003,  //!< Monochrome, 10 bits in 16 bits (PFNC:  Mono10)
+        VmbPixelFormatMono10p                 = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy10Bit) | 0x0046,  //!< Monochrome, 10 bits in 16 bits (PFNC:  Mono10p)
+        VmbPixelFormatMono12                  = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0005,  //!< Monochrome, 12 bits in 16 bits (PFNC:  Mono12)
+        VmbPixelFormatMono12Packed            = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x0006,  //!< Monochrome, 2x12 bits in 24 bits (GEV:Mono12Packed)
+        VmbPixelFormatMono12p                 = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x0047,  //!< Monochrome, 2x12 bits in 24 bits (PFNC:  MonoPacked)
+        VmbPixelFormatMono14                  = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0025,  //!< Monochrome, 14 bits in 16 bits (PFNC:  Mono14)
+        VmbPixelFormatMono16                  = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0007,  //!< Monochrome, 16 bits (PFNC:  Mono16)
 
         // bayer formats
-        VmbPixelFormatBayerGR8                = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy8Bit)  | 0x0008,  //!< Bayer-color, 8 bits, starting with GR line (PFNC:  BayerGR8)
-        VmbPixelFormatBayerRG8                = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy8Bit)  | 0x0009,  //!< Bayer-color, 8 bits, starting with RG line (PFNC:  BayerRG8)
-        VmbPixelFormatBayerGB8                = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy8Bit)  | 0x000A,  //!< Bayer-color, 8 bits, starting with GB line (PFNC:  BayerGB8)
-        VmbPixelFormatBayerBG8                = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy8Bit)  | 0x000B,  //!< Bayer-color, 8 bits, starting with BG line (PFNC:  BayerBG8)
-        VmbPixelFormatBayerGR10               = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x000C,  //!< Bayer-color, 10 bits in 16 bits, starting with GR line (PFNC:  BayerGR10)
-        VmbPixelFormatBayerRG10               = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x000D,  //!< Bayer-color, 10 bits in 16 bits, starting with RG line (PFNC:  BayerRG10)
-        VmbPixelFormatBayerGB10               = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x000E,  //!< Bayer-color, 10 bits in 16 bits, starting with GB line (PFNC:  BayerGB10)
-        VmbPixelFormatBayerBG10               = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x000F,  //!< Bayer-color, 10 bits in 16 bits, starting with BG line (PFNC:  BayerBG10)
-        VmbPixelFormatBayerGR12               = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0010,  //!< Bayer-color, 12 bits in 16 bits, starting with GR line (PFNC:  BayerGR12)
-        VmbPixelFormatBayerRG12               = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0011,  //!< Bayer-color, 12 bits in 16 bits, starting with RG line (PFNC:  BayerRG12)
-        VmbPixelFormatBayerGB12               = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0012,  //!< Bayer-color, 12 bits in 16 bits, starting with GB line (PFNC:  BayerGB12)
-        VmbPixelFormatBayerBG12               = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0013,  //!< Bayer-color, 12 bits in 16 bits, starting with BG line (PFNC:  BayerBG12)
-        VmbPixelFormatBayerGR12Packed         = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x002A,  //!< Bayer-color, 2x12 bits in 24 bits, starting with GR line (GEV:BayerGR12Packed)
-        VmbPixelFormatBayerRG12Packed         = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x002B,  //!< Bayer-color, 2x12 bits in 24 bits, starting with RG line (GEV:BayerRG12Packed)
-        VmbPixelFormatBayerGB12Packed         = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x002C,  //!< Bayer-color, 2x12 bits in 24 bits, starting with GB line (GEV:BayerGB12Packed)
-        VmbPixelFormatBayerBG12Packed         = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x002D,  //!< Bayer-color, 2x12 bits in 24 bits, starting with BG line (GEV:BayerBG12Packed)
-        VmbPixelFormatBayerGR10p              = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy10Bit) | 0x0056,  //!< Bayer-color, 10 bits continuous packed, starting with GR line (PFNC:  BayerGR10p)
-        VmbPixelFormatBayerRG10p              = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy10Bit) | 0x0058,  //!< Bayer-color, 10 bits continuous packed, starting with RG line (PFNC:  BayerRG10p)
-        VmbPixelFormatBayerGB10p              = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy10Bit) | 0x0054,  //!< Bayer-color, 10 bits continuous packed, starting with GB line (PFNC:  BayerGB10p)
-        VmbPixelFormatBayerBG10p              = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy10Bit) | 0x0052,  //!< Bayer-color, 10 bits continuous packed, starting with BG line (PFNC:  BayerBG10p)
-        VmbPixelFormatBayerGR12p              = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x0057,  //!< Bayer-color, 12 bits continuous packed, starting with GR line (PFNC:  BayerGR12p)
-        VmbPixelFormatBayerRG12p              = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x0059,  //!< Bayer-color, 12 bits continuous packed, starting with RG line (PFNC:  BayerRG12p)
-        VmbPixelFormatBayerGB12p              = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x0055,  //!< Bayer-color, 12 bits continuous packed, starting with GB line (PFNC:  BayerGB12p)
-        VmbPixelFormatBayerBG12p              = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x0053,  //!< Bayer-color, 12 bits continuous packed, starting with BG line (PFNC: BayerBG12p)
-        VmbPixelFormatBayerGR16               = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x002E,  //!< Bayer-color, 16 bits, starting with GR line (PFNC: BayerGR16)
-        VmbPixelFormatBayerRG16               = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x002F,  //!< Bayer-color, 16 bits, starting with RG line (PFNC: BayerRG16)
-        VmbPixelFormatBayerGB16               = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0030,  //!< Bayer-color, 16 bits, starting with GB line (PFNC: BayerGB16)
-        VmbPixelFormatBayerBG16               = static_cast<uint8_t>(VmbPixelMono)  | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0031,  //!< Bayer-color, 16 bits, starting with BG line (PFNC: BayerBG16)
+        VmbPixelFormatBayerGR8                = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy8Bit)  | 0x0008,  //!< Bayer-color, 8 bits, starting with GR line (PFNC:  BayerGR8)
+        VmbPixelFormatBayerRG8                = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy8Bit)  | 0x0009,  //!< Bayer-color, 8 bits, starting with RG line (PFNC:  BayerRG8)
+        VmbPixelFormatBayerGB8                = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy8Bit)  | 0x000A,  //!< Bayer-color, 8 bits, starting with GB line (PFNC:  BayerGB8)
+        VmbPixelFormatBayerBG8                = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy8Bit)  | 0x000B,  //!< Bayer-color, 8 bits, starting with BG line (PFNC:  BayerBG8)
+        VmbPixelFormatBayerGR10               = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x000C,  //!< Bayer-color, 10 bits in 16 bits, starting with GR line (PFNC:  BayerGR10)
+        VmbPixelFormatBayerRG10               = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x000D,  //!< Bayer-color, 10 bits in 16 bits, starting with RG line (PFNC:  BayerRG10)
+        VmbPixelFormatBayerGB10               = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x000E,  //!< Bayer-color, 10 bits in 16 bits, starting with GB line (PFNC:  BayerGB10)
+        VmbPixelFormatBayerBG10               = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x000F,  //!< Bayer-color, 10 bits in 16 bits, starting with BG line (PFNC:  BayerBG10)
+        VmbPixelFormatBayerGR12               = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0010,  //!< Bayer-color, 12 bits in 16 bits, starting with GR line (PFNC:  BayerGR12)
+        VmbPixelFormatBayerRG12               = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0011,  //!< Bayer-color, 12 bits in 16 bits, starting with RG line (PFNC:  BayerRG12)
+        VmbPixelFormatBayerGB12               = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0012,  //!< Bayer-color, 12 bits in 16 bits, starting with GB line (PFNC:  BayerGB12)
+        VmbPixelFormatBayerBG12               = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0013,  //!< Bayer-color, 12 bits in 16 bits, starting with BG line (PFNC:  BayerBG12)
+        VmbPixelFormatBayerGR12Packed         = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x002A,  //!< Bayer-color, 2x12 bits in 24 bits, starting with GR line (GEV:BayerGR12Packed)
+        VmbPixelFormatBayerRG12Packed         = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x002B,  //!< Bayer-color, 2x12 bits in 24 bits, starting with RG line (GEV:BayerRG12Packed)
+        VmbPixelFormatBayerGB12Packed         = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x002C,  //!< Bayer-color, 2x12 bits in 24 bits, starting with GB line (GEV:BayerGB12Packed)
+        VmbPixelFormatBayerBG12Packed         = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x002D,  //!< Bayer-color, 2x12 bits in 24 bits, starting with BG line (GEV:BayerBG12Packed)
+        VmbPixelFormatBayerGR10p              = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy10Bit) | 0x0056,  //!< Bayer-color, 10 bits continuous packed, starting with GR line (PFNC:  BayerGR10p)
+        VmbPixelFormatBayerRG10p              = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy10Bit) | 0x0058,  //!< Bayer-color, 10 bits continuous packed, starting with RG line (PFNC:  BayerRG10p)
+        VmbPixelFormatBayerGB10p              = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy10Bit) | 0x0054,  //!< Bayer-color, 10 bits continuous packed, starting with GB line (PFNC:  BayerGB10p)
+        VmbPixelFormatBayerBG10p              = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy10Bit) | 0x0052,  //!< Bayer-color, 10 bits continuous packed, starting with BG line (PFNC:  BayerBG10p)
+        VmbPixelFormatBayerGR12p              = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x0057,  //!< Bayer-color, 12 bits continuous packed, starting with GR line (PFNC:  BayerGR12p)
+        VmbPixelFormatBayerRG12p              = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x0059,  //!< Bayer-color, 12 bits continuous packed, starting with RG line (PFNC:  BayerRG12p)
+        VmbPixelFormatBayerGB12p              = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x0055,  //!< Bayer-color, 12 bits continuous packed, starting with GB line (PFNC:  BayerGB12p)
+        VmbPixelFormatBayerBG12p              = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x0053,  //!< Bayer-color, 12 bits continuous packed, starting with BG line (PFNC: BayerBG12p)
+        VmbPixelFormatBayerGR16               = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x002E,  //!< Bayer-color, 16 bits, starting with GR line (PFNC: BayerGR16)
+        VmbPixelFormatBayerRG16               = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x002F,  //!< Bayer-color, 16 bits, starting with RG line (PFNC: BayerRG16)
+        VmbPixelFormatBayerGB16               = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0030,  //!< Bayer-color, 16 bits, starting with GB line (PFNC: BayerGB16)
+        VmbPixelFormatBayerBG16               = static_cast<VmbUint8_t>(VmbPixelMono)  | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0031,  //!< Bayer-color, 16 bits, starting with BG line (PFNC: BayerBG16)
 
          // rgb formats
-        VmbPixelFormatRgb8                    = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy24Bit) | 0x0014,  //!< RGB, 8 bits x 3 (PFNC: RGB8)
-        VmbPixelFormatBgr8                    = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy24Bit) | 0x0015,  //!< BGR, 8 bits x 3 (PFNC: BGR8)
-        VmbPixelFormatRgb10                   = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy48Bit) | 0x0018,  //!< RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)
-        VmbPixelFormatBgr10                   = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy48Bit) | 0x0019,  //!< RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)
-        VmbPixelFormatRgb12                   = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy48Bit) | 0x001A,  //!< RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)
-        VmbPixelFormatBgr12                   = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy48Bit) | 0x001B,  //!< RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)
-        VmbPixelFormatRgb14                   = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy48Bit) | 0x005E,  //!< RGB, 14 bits in 16 bits x 3 (PFNC: RGB12)
-        VmbPixelFormatBgr14                   = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy48Bit) | 0x004A,  //!< RGB, 14 bits in 16 bits x 3 (PFNC: RGB12)
-        VmbPixelFormatRgb16                   = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy48Bit) | 0x0033,  //!< RGB, 16 bits x 3 (PFNC: RGB16)
-        VmbPixelFormatBgr16                   = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy48Bit) | 0x004B,  //!< RGB, 16 bits x 3 (PFNC: RGB16)
+        VmbPixelFormatRgb8                    = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy24Bit) | 0x0014,  //!< RGB, 8 bits x 3 (PFNC: RGB8)
+        VmbPixelFormatBgr8                    = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy24Bit) | 0x0015,  //!< BGR, 8 bits x 3 (PFNC: BGR8)
+        VmbPixelFormatRgb10                   = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy48Bit) | 0x0018,  //!< RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)
+        VmbPixelFormatBgr10                   = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy48Bit) | 0x0019,  //!< RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)
+        VmbPixelFormatRgb12                   = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy48Bit) | 0x001A,  //!< RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)
+        VmbPixelFormatBgr12                   = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy48Bit) | 0x001B,  //!< RGB, 12 bits in 16 bits x 3 (PFNC: RGB12)
+        VmbPixelFormatRgb14                   = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy48Bit) | 0x005E,  //!< RGB, 14 bits in 16 bits x 3 (PFNC: RGB12)
+        VmbPixelFormatBgr14                   = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy48Bit) | 0x004A,  //!< RGB, 14 bits in 16 bits x 3 (PFNC: RGB12)
+        VmbPixelFormatRgb16                   = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy48Bit) | 0x0033,  //!< RGB, 16 bits x 3 (PFNC: RGB16)
+        VmbPixelFormatBgr16                   = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy48Bit) | 0x004B,  //!< RGB, 16 bits x 3 (PFNC: RGB16)
 
          // rgba formats
-        VmbPixelFormatArgb8                   = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy32Bit) | 0x0016,  //!< ARGB, 8 bits x 4 (PFNC: RGBa8)
+        VmbPixelFormatArgb8                   = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy32Bit) | 0x0016,  //!< ARGB, 8 bits x 4 (PFNC: RGBa8)
         VmbPixelFormatRgba8                   = VmbPixelFormatArgb8,                           //!< RGBA, 8 bits x 4, legacy name
-        VmbPixelFormatBgra8                   = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy32Bit) | 0x0017,  //!< BGRA, 8 bits x 4 (PFNC: BGRa8)
-        VmbPixelFormatRgba10                  = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy64Bit) | 0x005F,  //!< RGBA, 8 bits x 4, legacy name
-        VmbPixelFormatBgra10                  = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy64Bit) | 0x004C,  //!< RGBA, 8 bits x 4, legacy name
-        VmbPixelFormatRgba12                  = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy64Bit) | 0x0061,  //!< RGBA, 8 bits x 4, legacy name
-        VmbPixelFormatBgra12                  = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy64Bit) | 0x004E,  //!< RGBA, 8 bits x 4, legacy name
-        VmbPixelFormatRgba14                  = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy64Bit) | 0x0063,  //!< RGBA, 8 bits x 4, legacy name
-        VmbPixelFormatBgra14                  = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy64Bit) | 0x0050,  //!< RGBA, 8 bits x 4, legacy name
-        VmbPixelFormatRgba16                  = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy64Bit) | 0x0064,  //!< RGBA, 8 bits x 4, legacy name
-        VmbPixelFormatBgra16                  = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy64Bit) | 0x0051,  //!< RGBA, 8 bits x 4, legacy name
+        VmbPixelFormatBgra8                   = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy32Bit) | 0x0017,  //!< BGRA, 8 bits x 4 (PFNC: BGRa8)
+        VmbPixelFormatRgba10                  = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy64Bit) | 0x005F,  //!< RGBA, 8 bits x 4, legacy name
+        VmbPixelFormatBgra10                  = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy64Bit) | 0x004C,  //!< RGBA, 8 bits x 4, legacy name
+        VmbPixelFormatRgba12                  = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy64Bit) | 0x0061,  //!< RGBA, 8 bits x 4, legacy name
+        VmbPixelFormatBgra12                  = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy64Bit) | 0x004E,  //!< RGBA, 8 bits x 4, legacy name
+        VmbPixelFormatRgba14                  = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy64Bit) | 0x0063,  //!< RGBA, 8 bits x 4, legacy name
+        VmbPixelFormatBgra14                  = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy64Bit) | 0x0050,  //!< RGBA, 8 bits x 4, legacy name
+        VmbPixelFormatRgba16                  = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy64Bit) | 0x0064,  //!< RGBA, 8 bits x 4, legacy name
+        VmbPixelFormatBgra16                  = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy64Bit) | 0x0051,  //!< RGBA, 8 bits x 4, legacy name
 
          // yuv/ycbcr formats
-        VmbPixelFormatYuv411                  = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x001E,  //!< YUV 4:1:1 with 8 bits (PFNC: YUV411_8_UYYVYY, GEV:YUV411Packed)
-        VmbPixelFormatYuv422                  = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x001F,  //!< YUV 4:2:2 with 8 bits (PFNC: YUV422_8_UYVY, GEV:YUV422Packed)
-        VmbPixelFormatYuv444                  = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy24Bit) | 0x0020,  //!< YUV 4:4:4 with 8 bits (PFNC: YUV8_UYV, GEV:YUV444Packed)
-        VmbPixelFormatYuv422_8                = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0032,  //!< YUV 4:2:2 with 8 bits Channel order YUYV (PFNC: YUV422_8)
-        VmbPixelFormatYCbCr8_CbYCr            = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy24Bit) | 0x003A,  //!< YCbCr 4:4:4 with 8 bits (PFNC: YCbCr8_CbYCr) - identical to VmbPixelFormatYuv444
-        VmbPixelFormatYCbCr422_8              = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x003B,  //!< YCbCr 4:2:2 8-bit YCbYCr (PFNC: YCbCr422_8)
-        VmbPixelFormatYCbCr411_8_CbYYCrYY     = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x003C,  //!< YCbCr 4:1:1 with 8 bits (PFNC: YCbCr411_8_CbYYCrYY) - identical to VmbPixelFormatYuv411
-        VmbPixelFormatYCbCr601_8_CbYCr        = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy24Bit) | 0x003D,  //!< YCbCr601 4:4:4 8-bit CbYCrt (PFNC: YCbCr601_8_CbYCr)
-        VmbPixelFormatYCbCr601_422_8          = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x003E,  //!< YCbCr601 4:2:2 8-bit YCbYCr (PFNC: YCbCr601_422_8)
-        VmbPixelFormatYCbCr601_411_8_CbYYCrYY = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x003F,  //!< YCbCr601 4:1:1 8-bit CbYYCrYY (PFNC: YCbCr601_411_8_CbYYCrYY)
-        VmbPixelFormatYCbCr709_8_CbYCr        = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy24Bit) | 0x0040,  //!< YCbCr709 4:4:4 8-bit CbYCr (PFNC: YCbCr709_8_CbYCr)
-        VmbPixelFormatYCbCr709_422_8          = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0041,  //!< YCbCr709 4:2:2 8-bit YCbYCr (PFNC: YCbCr709_422_8)
-        VmbPixelFormatYCbCr709_411_8_CbYYCrYY = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x0042,  //!< YCbCr709 4:1:1 8-bit CbYYCrYY (PFNC: YCbCr709_411_8_CbYYCrYY)
-        VmbPixelFormatYCbCr422_8_CbYCrY       = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0043,  //!< YCbCr 4:2:2 with 8 bits (PFNC: YCbCr422_8_CbYCrY) - identical to VmbPixelFormatYuv422
-        VmbPixelFormatYCbCr601_422_8_CbYCrY   = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0044,  //!< YCbCr601 4:2:2 8-bit CbYCrY (PFNC: YCbCr601_422_8_CbYCrY)
-        VmbPixelFormatYCbCr709_422_8_CbYCrY   = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy16Bit) | 0x0045,  //!< YCbCr709 4:2:2 8-bit CbYCrY (PFNC: YCbCr709_422_8_CbYCrY)
-        VmbPixelFormatYCbCr411_8              = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy12Bit) | 0x005A,  //!< YCbCr 4:1:1 8-bit YYCbYYCr (PFNC: YCbCr411_8)
-        VmbPixelFormatYCbCr8                  = static_cast<uint8_t>(VmbPixelColor) | static_cast<uint8_t>(VmbPixelOccupy24Bit) | 0x005B,  //!< YCbCr 4:4:4 8-bit YCbCr (PFNC: YCbCr8)
+        VmbPixelFormatYuv411                  = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x001E,  //!< YUV 4:1:1 with 8 bits (PFNC: YUV411_8_UYYVYY, GEV:YUV411Packed)
+        VmbPixelFormatYuv422                  = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x001F,  //!< YUV 4:2:2 with 8 bits (PFNC: YUV422_8_UYVY, GEV:YUV422Packed)
+        VmbPixelFormatYuv444                  = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy24Bit) | 0x0020,  //!< YUV 4:4:4 with 8 bits (PFNC: YUV8_UYV, GEV:YUV444Packed)
+        VmbPixelFormatYuv422_8                = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0032,  //!< YUV 4:2:2 with 8 bits Channel order YUYV (PFNC: YUV422_8)
+        VmbPixelFormatYCbCr8_CbYCr            = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy24Bit) | 0x003A,  //!< YCbCr 4:4:4 with 8 bits (PFNC: YCbCr8_CbYCr) - identical to VmbPixelFormatYuv444
+        VmbPixelFormatYCbCr422_8              = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x003B,  //!< YCbCr 4:2:2 8-bit YCbYCr (PFNC: YCbCr422_8)
+        VmbPixelFormatYCbCr411_8_CbYYCrYY     = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x003C,  //!< YCbCr 4:1:1 with 8 bits (PFNC: YCbCr411_8_CbYYCrYY) - identical to VmbPixelFormatYuv411
+        VmbPixelFormatYCbCr601_8_CbYCr        = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy24Bit) | 0x003D,  //!< YCbCr601 4:4:4 8-bit CbYCrt (PFNC: YCbCr601_8_CbYCr)
+        VmbPixelFormatYCbCr601_422_8          = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x003E,  //!< YCbCr601 4:2:2 8-bit YCbYCr (PFNC: YCbCr601_422_8)
+        VmbPixelFormatYCbCr601_411_8_CbYYCrYY = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x003F,  //!< YCbCr601 4:1:1 8-bit CbYYCrYY (PFNC: YCbCr601_411_8_CbYYCrYY)
+        VmbPixelFormatYCbCr709_8_CbYCr        = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy24Bit) | 0x0040,  //!< YCbCr709 4:4:4 8-bit CbYCr (PFNC: YCbCr709_8_CbYCr)
+        VmbPixelFormatYCbCr709_422_8          = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0041,  //!< YCbCr709 4:2:2 8-bit YCbYCr (PFNC: YCbCr709_422_8)
+        VmbPixelFormatYCbCr709_411_8_CbYYCrYY = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x0042,  //!< YCbCr709 4:1:1 8-bit CbYYCrYY (PFNC: YCbCr709_411_8_CbYYCrYY)
+        VmbPixelFormatYCbCr422_8_CbYCrY       = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0043,  //!< YCbCr 4:2:2 with 8 bits (PFNC: YCbCr422_8_CbYCrY) - identical to VmbPixelFormatYuv422
+        VmbPixelFormatYCbCr601_422_8_CbYCrY   = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0044,  //!< YCbCr601 4:2:2 8-bit CbYCrY (PFNC: YCbCr601_422_8_CbYCrY)
+        VmbPixelFormatYCbCr709_422_8_CbYCrY   = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy16Bit) | 0x0045,  //!< YCbCr709 4:2:2 8-bit CbYCrY (PFNC: YCbCr709_422_8_CbYCrY)
+        VmbPixelFormatYCbCr411_8              = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy12Bit) | 0x005A,  //!< YCbCr 4:1:1 8-bit YYCbYYCr (PFNC: YCbCr411_8)
+        VmbPixelFormatYCbCr8                  = static_cast<VmbUint8_t>(VmbPixelColor) | static_cast<VmbUint8_t>(VmbPixelOccupy24Bit) | 0x005B,  //!< YCbCr 4:4:4 8-bit YCbCr (PFNC: YCbCr8)
 
         VmbPixelFormatLast,
     } VmbPixelFormatType;
-- 
GitLab