////////////////////////////////////////////////////////////////////////////////////////////////
// April 2006 - Snapshot has been implemented for sequenced operation with a PRX to support the
// SFD project.  It is only designed to work in conjunction with the HLPRX SDK, hence this file is protected
#ifndef RQTSNAPSHOT_H
#define RQTSNAPSHOT_H

#include "RQRawScan.h"
#include "NDTSErrorInternal.h"

#ifdef __cplusplus
extern "C" {
#endif

RQ_API NDTS_Boolean RQT_SnapshotInitialise(unsigned long cardIndex);
RQ_API NDTS_Boolean RQT_SnapshotUninitialise(unsigned long cardIndex);
RQ_API NDTS_Boolean RQT_SetAScanSelectionGate(unsigned long cardIndex, unsigned long stepIndex, unsigned long gateIndex);
RQ_API NDTS_Boolean RQT_GetAScanAndGateDataFromSnapshot(unsigned long cardIndex, unsigned long step, short *pBuffer, unsigned long numberOfBufferValues, short *pAmplitude, short *pDepth);

RQ_API NDTS_Boolean RQT_GetGateDataFromSnapshot(unsigned long cardIndex, unsigned long bScanIndex, RQ_GateOutput *pGateData, int nSteps, int nGates);
RQ_API NDTS_Boolean RQT_GetEncoderDataFromSnapshot(unsigned long cardIndex, unsigned long bScanIndex, long *pEncoders, int nEncoders);
RQ_API unsigned long RQT_ReturnNumberOfBScansInSnapshot(unsigned long cardIndex);
RQ_API NDTS_Boolean RQT_SetClearAScanOnUpdate(unsigned long cardIndex, NDTS_Boolean clearAScanOnUpdate);

// Swap the data bank being read.  Save the number of BScans in the last snapshot
RQ_API NDTS_Boolean RQT_SwapSnapshotDataBank(unsigned long cardIndex, unsigned long *numberOfBScans);

RQ_API void RQT_GetLogLevel(NDTS_LogLevel *pFile, NDTS_LogLevel *pApp, NDTS_LogLevel *pDebugger);
RQ_API void RQT_SetLogLevel(NDTS_LogLevel file, NDTS_LogLevel app, NDTS_LogLevel debugger);

#ifdef __cplusplus
}
#endif

#endif
