You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdeedu/kstars/kstars/indi/apogee/ApnCamData.cpp

130 lines
2.9 KiB

// ApnCamData.cpp: implementation of the CApnCamData class.
//
// Copyright (c) 2003, 2004 Apogee Instruments, Inc.
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ApnCamData.h"
#include <stdlib.h>
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CApnCamData::CApnCamData()
{
init_vpattern();
init_hpattern( &m_ClampPatternSixteen );
init_hpattern( &m_SkipPatternSixteen );
init_hpattern( &m_RoiPatternSixteen );
init_hpattern( &m_ClampPatternTwelve );
init_hpattern( &m_SkipPatternTwelve );
init_hpattern( &m_RoiPatternTwelve );
}
CApnCamData::~CApnCamData()
{
clear_vpattern();
clear_hpattern( &m_ClampPatternSixteen );
clear_hpattern( &m_SkipPatternSixteen );
clear_hpattern( &m_RoiPatternSixteen );
clear_hpattern( &m_ClampPatternTwelve );
clear_hpattern( &m_SkipPatternTwelve );
clear_hpattern( &m_RoiPatternTwelve );
}
void CApnCamData::init_vpattern( )
{
// OutputDebugString( "init_vpattern()" );
m_VerticalPattern.Mask = 0x0;
m_VerticalPattern.NumElements = 0;
m_VerticalPattern.PatternData = NULL;
}
void CApnCamData::clear_vpattern( )
{
// OutputDebugString( "clear_vpattern()" );
m_VerticalPattern.Mask = 0x0;
m_VerticalPattern.NumElements = 0;
if ( m_VerticalPattern.PatternData != NULL )
{
free( m_VerticalPattern.PatternData );
m_VerticalPattern.PatternData = NULL;
}
}
void CApnCamData::init_hpattern( APN_HPATTERN_FILE *Pattern )
{
int Counter;
// OutputDebugString( "init_hpattern()" );
Pattern->Mask = 0x0;
Pattern->RefNumElements = 0;
Pattern->SigNumElements = 0;
Pattern->BinningLimit = 0;
Pattern->RefPatternData = NULL;
Pattern->SigPatternData = NULL;
for ( Counter=0; Counter<APN_MAX_HBINNING; Counter++ )
{
Pattern->BinNumElements[Counter] = 0;
Pattern->BinPatternData[Counter] = NULL;
}
}
void CApnCamData::clear_hpattern( APN_HPATTERN_FILE *Pattern )
{
int Counter;
// char szMsg[80];
// OutputDebugString( "clear_hpattern()" );
Pattern->Mask = 0x0;
Pattern->RefNumElements = 0;
Pattern->SigNumElements = 0;
Pattern->BinningLimit = 0;
if ( Pattern->RefPatternData != NULL )
{
// OutputDebugString( "Freeing Allocated Reference Pattern Memory" );
free( Pattern->RefPatternData );
Pattern->RefPatternData = NULL;
}
if ( Pattern->SigPatternData != NULL )
{
// OutputDebugString( "Freeing Allocated Signal Pattern Memory" );
free( Pattern->SigPatternData );
Pattern->SigPatternData = NULL;
}
for ( Counter=0; Counter<APN_MAX_HBINNING; Counter++ )
{
Pattern->BinNumElements[Counter] = 0;
if ( Pattern->BinPatternData[Counter] != NULL )
{
// sprintf( szMsg, "Freeing Allocated Binning Pattern Memory (Binning = %d)", Counter+1 );
// OutputDebugString( szMsg );
free( Pattern->BinPatternData[Counter] );
Pattern->BinPatternData[Counter] = NULL;
}
}
}