////////////////////////////////////////////////////////////////////////////////////////////////
// Summer 2008 - the Data Sampling Status register is the same on the 
// NDTS2100 and the RQ, so we just pass the address of this register in from the RQ / NDTS2100 SDK.
// This file takes care of all the access to the data sampling status register.


#ifndef DATASAMPLINGSTATUSINTERNAL_H
#define DATASAMPLINGSTATUSINTERNAL_H

#include "DataCollection.h"

#ifdef __cplusplus
extern "C" {
#endif



DC_API NDTS_Boolean CALL_CONV DC_GetDataSamplingStatus(unsigned long cardIndex, unsigned long *pValue);
DC_API NDTS_Boolean CALL_CONV DC_SetDataSamplingStatus(unsigned long cardIndex, unsigned long value);
DC_API NDTS_Boolean CALL_CONV DC_ClearDataSamplingStatusFlags(unsigned long cardIndex) ;
DC_API NDTS_Boolean CALL_CONV DC_GetNewTriggerOccured(unsigned long cardIndex, NDTS_Boolean *pValue) ;
DC_API NDTS_Boolean CALL_CONV DC_GetDelayedTriggerOccured(unsigned long cardIndex, NDTS_Boolean *pValue) ;
DC_API NDTS_Boolean CALL_CONV DC_GetDataFullError(unsigned long cardIndex, NDTS_Boolean *pValue) ; 
DC_API NDTS_Boolean CALL_CONV DC_GetIsSampleDataStoreInProgress(unsigned long cardIndex, NDTS_Boolean *pIsInProgress) ;
DC_API NDTS_Boolean CALL_CONV DC_GetHasNewTriggerOccured(unsigned long cardIndex, NDTS_Boolean *pHasOccured) ;
DC_API NDTS_Boolean CALL_CONV DC_GetHasNewTriggerOccuredBeforeProcessComplete(unsigned long cardIndex, NDTS_Boolean *pHasOccured) ;
DC_API NDTS_Boolean CALL_CONV DC_GetIsDataFullError(unsigned long cardIndex, NDTS_Boolean *pIsFull) ;
DC_API NDTS_Boolean CALL_CONV DC_GetSamplingStatus(unsigned long cardIndex, 
												 NDTS_Boolean *pIsDataAvailable, NDTS_Boolean *pSomeDataSampled, NDTS_Boolean *pNewTriggerOccured,
							          			    NDTS_Boolean *pTriggerOccurredBeforeProcessComplete, NDTS_Boolean *pDataFullError) ;

NDTS_Boolean CALL_CONV DC_ReturnDataSamplingStatusFlagSet(unsigned long cardIndex, unsigned long mask) ;


#ifdef __cplusplus
}
#endif

#endif
