kstars
ApnCamData.cpp
Go to the documentation of this file.00001 // ApnCamData.cpp: implementation of the CApnCamData class. 00002 // 00003 // Copyright (c) 2003, 2004 Apogee Instruments, Inc. 00005 00006 #include "stdafx.h" 00007 #include "ApnCamData.h" 00008 00009 #include <stdlib.h> 00010 #include <malloc.h> 00011 00012 00014 // Construction/Destruction 00016 00017 CApnCamData::CApnCamData() 00018 { 00019 init_vpattern(); 00020 00021 init_hpattern( &m_ClampPatternSixteen ); 00022 init_hpattern( &m_SkipPatternSixteen ); 00023 init_hpattern( &m_RoiPatternSixteen ); 00024 00025 init_hpattern( &m_ClampPatternTwelve ); 00026 init_hpattern( &m_SkipPatternTwelve ); 00027 init_hpattern( &m_RoiPatternTwelve ); 00028 } 00029 00030 CApnCamData::~CApnCamData() 00031 { 00032 clear_vpattern(); 00033 00034 clear_hpattern( &m_ClampPatternSixteen ); 00035 clear_hpattern( &m_SkipPatternSixteen ); 00036 clear_hpattern( &m_RoiPatternSixteen ); 00037 00038 clear_hpattern( &m_ClampPatternTwelve ); 00039 clear_hpattern( &m_SkipPatternTwelve ); 00040 clear_hpattern( &m_RoiPatternTwelve ); 00041 } 00042 00043 00044 void CApnCamData::init_vpattern( ) 00045 { 00046 // OutputDebugString( "init_vpattern()" ); 00047 00048 m_VerticalPattern.Mask = 0x0; 00049 m_VerticalPattern.NumElements = 0; 00050 m_VerticalPattern.PatternData = NULL; 00051 } 00052 00053 00054 void CApnCamData::clear_vpattern( ) 00055 { 00056 // OutputDebugString( "clear_vpattern()" ); 00057 00058 m_VerticalPattern.Mask = 0x0; 00059 m_VerticalPattern.NumElements = 0; 00060 00061 if ( m_VerticalPattern.PatternData != NULL ) 00062 { 00063 free( m_VerticalPattern.PatternData ); 00064 m_VerticalPattern.PatternData = NULL; 00065 } 00066 } 00067 00068 00069 void CApnCamData::init_hpattern( APN_HPATTERN_FILE *Pattern ) 00070 { 00071 int Counter; 00072 00073 // OutputDebugString( "init_hpattern()" ); 00074 00075 Pattern->Mask = 0x0; 00076 Pattern->RefNumElements = 0; 00077 Pattern->SigNumElements = 0; 00078 Pattern->BinningLimit = 0; 00079 00080 Pattern->RefPatternData = NULL; 00081 Pattern->SigPatternData = NULL; 00082 00083 for ( Counter=0; Counter<APN_MAX_HBINNING; Counter++ ) 00084 { 00085 Pattern->BinNumElements[Counter] = 0; 00086 Pattern->BinPatternData[Counter] = NULL; 00087 } 00088 } 00089 00090 00091 void CApnCamData::clear_hpattern( APN_HPATTERN_FILE *Pattern ) 00092 { 00093 int Counter; 00094 // char szMsg[80]; 00095 00096 // OutputDebugString( "clear_hpattern()" ); 00097 00098 Pattern->Mask = 0x0; 00099 Pattern->RefNumElements = 0; 00100 Pattern->SigNumElements = 0; 00101 Pattern->BinningLimit = 0; 00102 00103 if ( Pattern->RefPatternData != NULL ) 00104 { 00105 // OutputDebugString( "Freeing Allocated Reference Pattern Memory" ); 00106 free( Pattern->RefPatternData ); 00107 00108 Pattern->RefPatternData = NULL; 00109 } 00110 if ( Pattern->SigPatternData != NULL ) 00111 { 00112 // OutputDebugString( "Freeing Allocated Signal Pattern Memory" ); 00113 free( Pattern->SigPatternData ); 00114 00115 Pattern->SigPatternData = NULL; 00116 } 00117 00118 for ( Counter=0; Counter<APN_MAX_HBINNING; Counter++ ) 00119 { 00120 Pattern->BinNumElements[Counter] = 0; 00121 if ( Pattern->BinPatternData[Counter] != NULL ) 00122 { 00123 // sprintf( szMsg, "Freeing Allocated Binning Pattern Memory (Binning = %d)", Counter+1 ); 00124 // OutputDebugString( szMsg ); 00125 free( Pattern->BinPatternData[Counter] ); 00126 00127 Pattern->BinPatternData[Counter] = NULL; 00128 } 00129 } 00130 }