Files
2024-05-18 23:53:26 +08:00

160 lines
5.2 KiB
C++

////////////////////////////////////////////////////////////////////////////////////
// //////
// WARNING! //////
// //////
// THIS CLASS IS NOW OBSOLETE. //////
// IT IS KEPT FOR COMPATIBILITY PURPOSES. //////
// //////
// PLEASE USE THE COLOR CONVERSION FACILITY INSTEAD. //////
// THAT IS, SapColorConversion Class. //////
// //////
// //////
////////////////////////////////////////////////////////////////////////////////////
#ifndef _SAPBAYER_H_
#define _SAPBAYER_H_
// SapBayer.h: interface for the SapBayer class.
//
#include "SapClassBasicDef.h"
//
// SapBayer class declaration
//
class SAPCLASSBASIC_CLASS SapBayer : public SapManager
{
public:
typedef int Align;
enum _Align
{
AlignGBRG = CORBAYER_ALIGN_GB_RG,
AlignBGGR = CORBAYER_ALIGN_BG_GR,
AlignRGGB = CORBAYER_ALIGN_RG_GB,
AlignGRBG = CORBAYER_ALIGN_GR_BG,
AlignAll = CORBAYER_ALIGN_MASK
};
typedef int Method;
enum _Method
{
Method1 = CORBAYER_METHOD_1,
Method2 = CORBAYER_METHOD_2,
Method3 = CORBAYER_METHOD_3,
Method4 = CORBAYER_METHOD_4,
Method5 = CORBAYER_METHOD_5,
Method6 = CORBAYER_METHOD_6,
MethodInterpolate = CORBAYER_METHOD_1,
MethodGoldenEagle = CORBAYER_METHOD_2,
MethodEagle = CORBAYER_METHOD_3,
MethodAll= CORBAYER_METHOD_MASK
};
public:
SapBayer();
SapBayer(SapAcquisition *pAcq, SapBuffer* pBuffer);
SapBayer(SapBuffer *pBuffer);
SapBayer(const SapBayer &bayer);
virtual ~SapBayer();
SapBayer &operator= (const SapBayer &bayer);
// Creation/destruction
virtual BOOL Create();
virtual BOOL Destroy();
public:
// Access to implementation
SapAcquisition*GetAcquisition() const { return m_pAcq; }
SapBuffer* GetBuffer() const { return m_pBuffer; }
SapBuffer* GetBayerBuffer() const;
BOOL IsEnabled() const { return m_IsEnabled; }
BOOL IsSoftware() const { return !m_IsHardware || !m_IsHardwareEnabled;}
Align GetAlign() const { return m_Align; }
Method GetMethod() const { return m_Method; }
SapDataFRGB GetWBGain() const { return m_WBGain; }
SapDataFRGB GetWBOffset() const { return m_WBOffset; }
float GetGamma() const { return m_Gamma; }
SapFormat GetOutputFormat() const ;
Align GetAvailAlign() const { return m_AlignCap; }
Method GetAvailMethod() const { return m_MethodCap; }
int GetBayerBufferCount() const { return m_BayerBufferCount;}
virtual BOOL SetAcquisition(SapAcquisition *pAcq);
virtual BOOL SetBuffer(SapBuffer *pBuffer);
virtual BOOL SetAlign(Align align);
virtual BOOL SetMethod(Method method);
virtual BOOL SetWBGain(SapDataFRGB wbGain);
virtual BOOL SetWBOffset(SapDataFRGB wbOffset);
virtual BOOL SetGamma(float gamma);
virtual BOOL SetOutputFormat( SapFormat format);
virtual BOOL SetBayerBufferCount( int bayerBufferCount);
// Execution control
virtual BOOL Enable( BOOL enable = TRUE, BOOL useHardware= TRUE);
virtual BOOL WhiteBalance(int x, int y, int width, int height);
virtual BOOL WhiteBalance(SapBuffer *pBuffer, int x, int y, int width, int height);
virtual BOOL Convert();
virtual BOOL Convert(int srcIndex);
virtual BOOL Convert(int srcIndex, int dstIndex);
// Look-up table management
SapLut* GetLut() const { return m_pLut; }
BOOL IsLutEnabled() const { return m_IsLutEnabled; }
BOOL IsAcqLut() const { return m_IsAcqLut; }
virtual BOOL EnableLut(BOOL enable = TRUE);
protected:
// Utility methods
virtual void Construct(SapAcquisition *pAcq, SapBuffer *pBuffer);
virtual BOOL SetAlignImmediate(Align align);
virtual BOOL SetMethodImmediate(Method method);
virtual BOOL SetWBGainImmediate(SapDataFRGB& wbGain);
virtual BOOL GetWBGainLimits(SapDataFRGB *gainMin, SapDataFRGB *gainMax);
virtual BOOL SetWBOffsetImmediate(SapDataFRGB& wbOffset);
virtual BOOL SetGammaImmediate(float gamma);
virtual BOOL SetAcqOutputFormat( BOOL enable, BOOL useHardware);
protected:
SapAcquisition *m_pAcq;
SapBuffer *m_pBuffer;
SapBufferRoi *m_pBufferRoi;
SapBuffer *m_pBayerBuffer;
int m_BayerBufferCount;
Align m_AlignCap;
Method m_MethodCap;
SapDataFRGB m_GainMin;
SapDataFRGB m_GainMax;
float m_OffsetMin;
float m_OffsetMax;
BOOL m_IsEnabled;
BOOL m_IsHardware;
BOOL m_IsHardwareEnabled;
SapFormat m_colorOutputFormat;
int m_pixelDepth;
Align m_Align;
Method m_Method;
SapDataFRGB m_WBGain;
SapDataFRGB m_WBOffset;
float m_Gamma;
BOOL m_IsDefaultGain;
BOOL m_IsDefaultOffset;
// Look-up table management
SapLut *m_pLut;
BOOL m_IsLutEnabled;
BOOL m_IsAcqLut;
};
#endif