diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp index 190097aaa..e2fd3fa7b 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp @@ -21,6 +21,9 @@ postProcessing::postProcessing(): expTime(NULL), ang(NULL), val(NULL), err(NULL) //cout << "done "<< endl; rawDataReady = 0; pRawDataArg = 0; + + progress_call=0; + pProgressCallArg=0; #ifdef VERBOSE registerDataCallback(&defaultDataReadyFunc, NULL); #endif @@ -378,6 +381,8 @@ void* postProcessing::processData(int delflag) { incrementProgress(caught-prevCaught); prevCaught=caught; usleep(1000000); + if(progress_call) + progress_call(getCurrentProgress(),pProgressCallArg); } /* if (dataReady) { diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.h b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.h index a9ecf21a2..b346edc29 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.h +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.h @@ -240,7 +240,7 @@ s void registerRawDataCallback(int( *userCallback)(double*, int, void*), void *pArg) {rawDataReady = userCallback; pRawDataArg = pArg;}; - + void registerProgressCallback(int( *func)(double,void*), void *pArg){progress_call=func; pProgressCallArg=pArg;}; virtual double getRateCorrectionTau()=0; @@ -333,6 +333,9 @@ s int (*rawDataReady)(double*,int,void*); void *pRawDataArg; + int (*progress_call)(double,void*); + void *pProgressCallArg; + postProcessingFuncs *ppFun; detectorData *thisData;