#ifndef DCTCOLLECTINTERNAL_H
#define DCTCOLLECTINTERNAL_H

#define NUMBER_OF_COLLECT_BANKS 2


typedef struct
{
	NDTS_RawScan rawScans[NUMBER_OF_COLLECT_BANKS]; // Double buffered RawScan 
	unsigned long readBank;
	int rawScansInitialised;
} DC_CollectState;


// Called from the thread when there is data available
NDTS_Boolean DC_UpdateCollect(unsigned long cardIndex);

// Must be void to be able to be used with the hook.
void DC_UpdateParametersCollectHook(unsigned long cardIndex);
NDTS_Boolean CALL_CONV DC_GetRawScanNoBankSwap(unsigned long cardIndex, NDTS_RawScan *pRawScan) ;
NDTS_Boolean CALL_CONV DC_ReadRawScanBScans(unsigned long cardIndex,
											NDTS_RawScan *pRawScan,
											RawScan_CardBlockDescription* pSourceBlockDescriptionBegin, 
											unsigned long numberOfDescriptions, 
											const unsigned long *pCRCTable);
NDTS_Boolean CALL_CONV DC_VerifyRawScanAScanHeaders(unsigned long cardIndex, NDTS_RawScan *pRawScan) ;
#endif
