SapBayer.h 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. ////////////////////////////////////////////////////////////////////////////////////
  2. // //////
  3. // WARNING! //////
  4. // //////
  5. // THIS CLASS IS NOW OBSOLETE. //////
  6. // IT IS KEPT FOR COMPATIBILITY PURPOSES. //////
  7. // //////
  8. // PLEASE USE THE COLOR CONVERSION FACILITY INSTEAD. //////
  9. // THAT IS, SapColorConversion Class. //////
  10. // //////
  11. // //////
  12. ////////////////////////////////////////////////////////////////////////////////////
  13. #ifndef _SAPBAYER_H_
  14. #define _SAPBAYER_H_
  15. // SapBayer.h: interface for the SapBayer class.
  16. //
  17. #include "SapClassBasicDef.h"
  18. //
  19. // SapBayer class declaration
  20. //
  21. class SAPCLASSBASIC_CLASS SapBayer : public SapManager
  22. {
  23. public:
  24. typedef int Align;
  25. enum _Align
  26. {
  27. AlignGBRG = CORBAYER_ALIGN_GB_RG,
  28. AlignBGGR = CORBAYER_ALIGN_BG_GR,
  29. AlignRGGB = CORBAYER_ALIGN_RG_GB,
  30. AlignGRBG = CORBAYER_ALIGN_GR_BG,
  31. AlignAll = CORBAYER_ALIGN_MASK
  32. };
  33. typedef int Method;
  34. enum _Method
  35. {
  36. Method1 = CORBAYER_METHOD_1,
  37. Method2 = CORBAYER_METHOD_2,
  38. Method3 = CORBAYER_METHOD_3,
  39. Method4 = CORBAYER_METHOD_4,
  40. Method5 = CORBAYER_METHOD_5,
  41. Method6 = CORBAYER_METHOD_6,
  42. MethodInterpolate = CORBAYER_METHOD_1,
  43. MethodGoldenEagle = CORBAYER_METHOD_2,
  44. MethodEagle = CORBAYER_METHOD_3,
  45. MethodAll= CORBAYER_METHOD_MASK
  46. };
  47. public:
  48. SapBayer();
  49. SapBayer(SapAcquisition *pAcq, SapBuffer* pBuffer);
  50. SapBayer(SapBuffer *pBuffer);
  51. SapBayer(const SapBayer &bayer);
  52. virtual ~SapBayer();
  53. SapBayer &operator= (const SapBayer &bayer);
  54. // Creation/destruction
  55. virtual BOOL Create();
  56. virtual BOOL Destroy();
  57. public:
  58. // Access to implementation
  59. SapAcquisition*GetAcquisition() const { return m_pAcq; }
  60. SapBuffer* GetBuffer() const { return m_pBuffer; }
  61. SapBuffer* GetBayerBuffer() const;
  62. BOOL IsEnabled() const { return m_IsEnabled; }
  63. BOOL IsSoftware() const { return !m_IsHardware || !m_IsHardwareEnabled;}
  64. Align GetAlign() const { return m_Align; }
  65. Method GetMethod() const { return m_Method; }
  66. SapDataFRGB GetWBGain() const { return m_WBGain; }
  67. SapDataFRGB GetWBOffset() const { return m_WBOffset; }
  68. float GetGamma() const { return m_Gamma; }
  69. SapFormat GetOutputFormat() const ;
  70. Align GetAvailAlign() const { return m_AlignCap; }
  71. Method GetAvailMethod() const { return m_MethodCap; }
  72. int GetBayerBufferCount() const { return m_BayerBufferCount;}
  73. virtual BOOL SetAcquisition(SapAcquisition *pAcq);
  74. virtual BOOL SetBuffer(SapBuffer *pBuffer);
  75. virtual BOOL SetAlign(Align align);
  76. virtual BOOL SetMethod(Method method);
  77. virtual BOOL SetWBGain(SapDataFRGB wbGain);
  78. virtual BOOL SetWBOffset(SapDataFRGB wbOffset);
  79. virtual BOOL SetGamma(float gamma);
  80. virtual BOOL SetOutputFormat( SapFormat format);
  81. virtual BOOL SetBayerBufferCount( int bayerBufferCount);
  82. // Execution control
  83. virtual BOOL Enable( BOOL enable = TRUE, BOOL useHardware= TRUE);
  84. virtual BOOL WhiteBalance(int x, int y, int width, int height);
  85. virtual BOOL WhiteBalance(SapBuffer *pBuffer, int x, int y, int width, int height);
  86. virtual BOOL Convert();
  87. virtual BOOL Convert(int srcIndex);
  88. virtual BOOL Convert(int srcIndex, int dstIndex);
  89. // Look-up table management
  90. SapLut* GetLut() const { return m_pLut; }
  91. BOOL IsLutEnabled() const { return m_IsLutEnabled; }
  92. BOOL IsAcqLut() const { return m_IsAcqLut; }
  93. virtual BOOL EnableLut(BOOL enable = TRUE);
  94. protected:
  95. // Utility methods
  96. virtual void Construct(SapAcquisition *pAcq, SapBuffer *pBuffer);
  97. virtual BOOL SetAlignImmediate(Align align);
  98. virtual BOOL SetMethodImmediate(Method method);
  99. virtual BOOL SetWBGainImmediate(SapDataFRGB& wbGain);
  100. virtual BOOL GetWBGainLimits(SapDataFRGB *gainMin, SapDataFRGB *gainMax);
  101. virtual BOOL SetWBOffsetImmediate(SapDataFRGB& wbOffset);
  102. virtual BOOL SetGammaImmediate(float gamma);
  103. virtual BOOL SetAcqOutputFormat( BOOL enable, BOOL useHardware);
  104. protected:
  105. SapAcquisition *m_pAcq;
  106. SapBuffer *m_pBuffer;
  107. SapBufferRoi *m_pBufferRoi;
  108. SapBuffer *m_pBayerBuffer;
  109. int m_BayerBufferCount;
  110. Align m_AlignCap;
  111. Method m_MethodCap;
  112. SapDataFRGB m_GainMin;
  113. SapDataFRGB m_GainMax;
  114. float m_OffsetMin;
  115. float m_OffsetMax;
  116. BOOL m_IsEnabled;
  117. BOOL m_IsHardware;
  118. BOOL m_IsHardwareEnabled;
  119. SapFormat m_colorOutputFormat;
  120. int m_pixelDepth;
  121. Align m_Align;
  122. Method m_Method;
  123. SapDataFRGB m_WBGain;
  124. SapDataFRGB m_WBOffset;
  125. float m_Gamma;
  126. BOOL m_IsDefaultGain;
  127. BOOL m_IsDefaultOffset;
  128. // Look-up table management
  129. SapLut *m_pLut;
  130. BOOL m_IsLutEnabled;
  131. BOOL m_IsAcqLut;
  132. };
  133. #endif