diff --git a/slsDetectorSoftware/slsDetector/slsDetectorUsers.h b/slsDetectorSoftware/slsDetector/slsDetectorUsers.h index bda5567e2..0b5948083 100644 --- a/slsDetectorSoftware/slsDetector/slsDetectorUsers.h +++ b/slsDetectorSoftware/slsDetector/slsDetectorUsers.h @@ -346,7 +346,7 @@ class slsDetectorUsers \param userCallback function for plotting/analyzing the data */ - virtual void registerDataCallback(int( *userCallback)(detectorData*))=0; + virtual void registerDataCallback(int( *userCallback)(detectorData*, void*), void *pArg)=0; /** @short register calbback for reading detector position diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp index 7e3688efa..9bb7e9954 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.cpp @@ -10,7 +10,8 @@ postProcessing::postProcessing(){ pthread_mutex_init(&mg, NULL); //cout << "reg callback "<< endl; dataReady = 0; - registerDataCallback(&defaultDataReadyFunc); + pCallbackArg = 0; + registerDataCallback(&defaultDataReadyFunc, NULL); //cout << "done "<< endl; } @@ -301,7 +302,7 @@ void postProcessing::doProcessing(float *lfdata, int delflag, string fname) { if (dataReady) { - dataReady(thisData); + dataReady(thisData, pCallbackArg); delete thisData; } @@ -338,7 +339,7 @@ void postProcessing::doProcessing(float *lfdata, int delflag, string fname) { if (dataReady) { - dataReady(thisData); + dataReady(thisData, pCallbackArg); delete thisData; } // pthread_mutex_lock(&mg); diff --git a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.h b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.h index 1905b5cc4..f94097450 100644 --- a/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.h +++ b/slsDetectorSoftware/slsDetectorAnalysis/postProcessing.h @@ -241,7 +241,7 @@ s - void registerDataCallback(int( *userCallback)(detectorData*)) {dataReady = userCallback;}; + void registerDataCallback(int( *userCallback)(detectorData*, void*), void *pArg) {dataReady = userCallback; pCallbackArg = pArg;}; @@ -363,8 +363,8 @@ s /* virtual int getTotalNumberOfChannels()=0; */ - int (*dataReady)(detectorData*); - + int (*dataReady)(detectorData*,void*); + void *pCallbackArg; }; diff --git a/slsDetectorSoftware/usersFunctions/usersFunctions.cpp b/slsDetectorSoftware/usersFunctions/usersFunctions.cpp index bbdd1509b..1548a733b 100644 --- a/slsDetectorSoftware/usersFunctions/usersFunctions.cpp +++ b/slsDetectorSoftware/usersFunctions/usersFunctions.cpp @@ -323,7 +323,7 @@ int defaultDisconnectChannels() { -int defaultDataReadyFunc(detectorData* d) { +int defaultDataReadyFunc(detectorData* d, void* p) { #ifdef VERBOSE printf("UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU Data received \n"); #endif diff --git a/slsDetectorSoftware/usersFunctions/usersFunctions.h b/slsDetectorSoftware/usersFunctions/usersFunctions.h index 24e89e051..e522f5ba5 100644 --- a/slsDetectorSoftware/usersFunctions/usersFunctions.h +++ b/slsDetectorSoftware/usersFunctions/usersFunctions.h @@ -37,7 +37,7 @@ extern "C" { int defaultDisconnectChannels(); float defaultGetI0(int t); - int defaultDataReadyFunc(detectorData* d); + int defaultDataReadyFunc(detectorData* d, void* p);