1 // ApnCamData.cpp: implementation of the CApnCamData class.
3 // Copyright (c) 2003, 2004 Apogee Instruments, Inc.
4 //////////////////////////////////////////////////////////////////////
7 #include "ApnCamData.h"
13 //////////////////////////////////////////////////////////////////////
14 // Construction/Destruction
15 //////////////////////////////////////////////////////////////////////
17 CApnCamData::CApnCamData()
21 init_hpattern( &m_ClampPatternSixteen
);
22 init_hpattern( &m_SkipPatternSixteen
);
23 init_hpattern( &m_RoiPatternSixteen
);
25 init_hpattern( &m_ClampPatternTwelve
);
26 init_hpattern( &m_SkipPatternTwelve
);
27 init_hpattern( &m_RoiPatternTwelve
);
30 CApnCamData::~CApnCamData()
34 clear_hpattern( &m_ClampPatternSixteen
);
35 clear_hpattern( &m_SkipPatternSixteen
);
36 clear_hpattern( &m_RoiPatternSixteen
);
38 clear_hpattern( &m_ClampPatternTwelve
);
39 clear_hpattern( &m_SkipPatternTwelve
);
40 clear_hpattern( &m_RoiPatternTwelve
);
44 void CApnCamData::init_vpattern( )
46 // OutputDebugString( "init_vpattern()" );
48 m_VerticalPattern
.Mask
= 0x0;
49 m_VerticalPattern
.NumElements
= 0;
50 m_VerticalPattern
.PatternData
= NULL
;
54 void CApnCamData::clear_vpattern( )
56 // OutputDebugString( "clear_vpattern()" );
58 m_VerticalPattern
.Mask
= 0x0;
59 m_VerticalPattern
.NumElements
= 0;
61 if ( m_VerticalPattern
.PatternData
!= NULL
)
63 free( m_VerticalPattern
.PatternData
);
64 m_VerticalPattern
.PatternData
= NULL
;
69 void CApnCamData::init_hpattern( APN_HPATTERN_FILE
*Pattern
)
73 // OutputDebugString( "init_hpattern()" );
76 Pattern
->RefNumElements
= 0;
77 Pattern
->SigNumElements
= 0;
78 Pattern
->BinningLimit
= 0;
80 Pattern
->RefPatternData
= NULL
;
81 Pattern
->SigPatternData
= NULL
;
83 for ( Counter
=0; Counter
<APN_MAX_HBINNING
; Counter
++ )
85 Pattern
->BinNumElements
[Counter
] = 0;
86 Pattern
->BinPatternData
[Counter
] = NULL
;
91 void CApnCamData::clear_hpattern( APN_HPATTERN_FILE
*Pattern
)
96 // OutputDebugString( "clear_hpattern()" );
99 Pattern
->RefNumElements
= 0;
100 Pattern
->SigNumElements
= 0;
101 Pattern
->BinningLimit
= 0;
103 if ( Pattern
->RefPatternData
!= NULL
)
105 // OutputDebugString( "Freeing Allocated Reference Pattern Memory" );
106 free( Pattern
->RefPatternData
);
108 Pattern
->RefPatternData
= NULL
;
110 if ( Pattern
->SigPatternData
!= NULL
)
112 // OutputDebugString( "Freeing Allocated Signal Pattern Memory" );
113 free( Pattern
->SigPatternData
);
115 Pattern
->SigPatternData
= NULL
;
118 for ( Counter
=0; Counter
<APN_MAX_HBINNING
; Counter
++ )
120 Pattern
->BinNumElements
[Counter
] = 0;
121 if ( Pattern
->BinPatternData
[Counter
] != NULL
)
123 // sprintf( szMsg, "Freeing Allocated Binning Pattern Memory (Binning = %d)", Counter+1 );
124 // OutputDebugString( szMsg );
125 free( Pattern
->BinPatternData
[Counter
] );
127 Pattern
->BinPatternData
[Counter
] = NULL
;