key input controls

This commit is contained in:
dviid
2012-02-21 21:18:25 +01:00
parent 2903c7a969
commit 3c13d95bc4
11 changed files with 140 additions and 85 deletions
+4 -1
View File
@@ -36,13 +36,16 @@
// this is the main threaded loop for a given analysis
void AbstractAnalysis::do_synthesize() {
_saved_filenames.clear();
_state = STATE_ACQUIRING;
acquire();
if(_state == STATE_STOP) goto exit;
_state = STATE_SYNTHESISING;
synthesise();
if(_state == STATE_STOP) goto exit;
_state = STATE_DISPLAY_RESULTS;
displayresults();
exit:
ofNotifyEvent(_synthesize_cb, _name);
}
+6 -2
View File
@@ -21,19 +21,23 @@ public:
void start()
{
_stopping = false;
_runnable = new RunnableAdapter<AbstractAnalysis>(*_analysis, &AbstractAnalysis::do_synthesize);
_worker.start(*_runnable);
}
void stop()
{
if(_stopping) return;
_stopping = true;
_analysis->_state = STATE_STOP;
_worker.join();
_worker.join();
}
protected:
AbstractAnalysis* _analysis;
Thread _worker; //
RunnableAdapter<AbstractAnalysis>* _runnable;
RunnableAdapter<AbstractAnalysis>* _runnable;
bool _stopping;
};
+2 -2
View File
@@ -65,7 +65,7 @@ void CamNoiseAnalysis::acquire()
_frame_cnt = 0; _save_cnt = 0; _anim_cnt = 0;
while(!_RUN_DONE)
while(!_RUN_DONE && _state != STATE_STOP)
Thread::sleep(3);
save_timer->stop();
@@ -77,7 +77,7 @@ void CamNoiseAnalysis::acquire()
void CamNoiseAnalysis::synthesise()
{
// _saved_filenames has all the file names of all the saved images
while(!_RUN_DONE)
while(!_RUN_DONE && _state != STATE_STOP)
Thread::sleep(3);
}
+5 -1
View File
@@ -65,7 +65,7 @@ void ColorMultiAnalysis::acquire()
_frame_cnt = 0; _save_cnt = 0; _anim_cnt = 0;
while(!_RUN_DONE)
while(!_RUN_DONE && _state != STATE_STOP)
Thread::sleep(3);
save_timer->stop();
@@ -77,6 +77,8 @@ void ColorMultiAnalysis::acquire()
void ColorMultiAnalysis::synthesise()
{
// _saved_filenames has all the file names of all the saved images
while(!_RUN_DONE && _state != STATE_STOP)
Thread::sleep(3);
}
void ColorMultiAnalysis::displayresults()
@@ -84,6 +86,8 @@ void ColorMultiAnalysis::displayresults()
for(float i=1;i<_saved_filenames.size();i++){
if(_state == STATE_STOP) return;
cout << "_saved_filenames[i]" << _saved_filenames[i] << endl;
while(!_image_shown){
+4 -2
View File
@@ -73,7 +73,7 @@ void ColorSingleAnalysis::acquire()
_frame_cnt = 0; _save_cnt = 0; _anim_cnt = 0;
while(!_RUN_DONE)
while(!_RUN_DONE && _state != STATE_STOP)
Thread::sleep(3);
save_timer->stop();
@@ -84,7 +84,7 @@ void ColorSingleAnalysis::acquire()
void ColorSingleAnalysis::synthesise()
{
// _saved_filenames has all the file names of all the saved images
while(!_RUN_DONE)
while(!_RUN_DONE && _state != STATE_STOP)
Thread::sleep(3);
}
@@ -93,6 +93,8 @@ void ColorSingleAnalysis::displayresults()
for(float i=1;i<_saved_filenames.size();i++){
if(_state == STATE_STOP) return;
cout << "_saved_filenames[i]" << _saved_filenames[i] << endl;
while(!_image_shown){
+4 -2
View File
@@ -65,7 +65,7 @@ void DiffNoiseAnalysis::acquire()
_frame_cnt = 0; _save_cnt = 0; _anim_cnt = 0;
while(!_RUN_DONE)
while(!_RUN_DONE && _state != STATE_STOP)
Thread::sleep(3);
save_timer->stop();
@@ -75,7 +75,7 @@ void DiffNoiseAnalysis::acquire()
void DiffNoiseAnalysis::synthesise()
{
// _saved_filenames has all the file names of all the saved images
while(!_RUN_DONE)
while(!_RUN_DONE && _state != STATE_STOP)
Thread::sleep(3);
}
@@ -85,6 +85,8 @@ void DiffNoiseAnalysis::displayresults()
for(float i=1;i<_saved_filenames.size();i++){
if(_state == STATE_STOP) return;
cout << "_saved_filenames[i]" << _saved_filenames[i] << endl;
while(!_image_shown){
+4 -2
View File
@@ -61,7 +61,7 @@ void IResponseAnalysis::acquire()
_RUN_DONE = false;
_frame_cnt = 0; _save_cnt = 0; _anim_cnt = 0;
while(!_RUN_DONE)
while(!_RUN_DONE && _state != STATE_STOP)
Thread::sleep(3);
save_timer->stop();
@@ -74,7 +74,7 @@ void IResponseAnalysis::acquire()
void IResponseAnalysis::synthesise()
{
// _saved_filenames has all the file names of all the saved images
while(!_RUN_DONE)
while(!_RUN_DONE && _state != STATE_STOP)
Thread::sleep(3);
}
@@ -84,6 +84,8 @@ void IResponseAnalysis::displayresults()
for(float i=1;i<_saved_filenames.size();i++){
if(_state == STATE_STOP) return;
cout << "_saved_filenames[i]" << _saved_filenames[i] << endl;
while(!_image_shown){
+4 -2
View File
@@ -61,7 +61,7 @@ void RelaxRateAnalysis::acquire()
_RUN_DONE = false;
_frame_cnt = 0; _save_cnt = 0; _anim_cnt = 0;
while(!_RUN_DONE)
while(!_RUN_DONE && _state != STATE_STOP)
Thread::sleep(3);
save_timer->stop();
@@ -74,7 +74,7 @@ void RelaxRateAnalysis::synthesise()
{
// _saved_filenames has all the file names of all the saved images
while(!_RUN_DONE)
while(!_RUN_DONE && _state != STATE_STOP)
Thread::sleep(3);
}
@@ -84,6 +84,8 @@ void RelaxRateAnalysis::displayresults()
for(float i=1;i<_saved_filenames.size();i++){
if(_state == STATE_STOP) return;
cout << "_saved_filenames[i]" << _saved_filenames[i] << endl;
while(!_image_shown){
+4 -2
View File
@@ -78,7 +78,7 @@ void ShapeFromShadingAnalysis::acquire()
_animation_cnt16 = 0;
_animation_reset = false; // coundn't get this to work - so using seperate counters - shitty!
while(!_RUN_DONE)
while(!_RUN_DONE && _state != STATE_STOP)
Thread::sleep(3);
save_timer->stop();
@@ -90,7 +90,7 @@ void ShapeFromShadingAnalysis::acquire()
void ShapeFromShadingAnalysis::synthesise()
{
while(!_RUN_DONE)
while(!_RUN_DONE && _state != STATE_STOP)
Thread::sleep(3);
}
@@ -99,6 +99,8 @@ void ShapeFromShadingAnalysis::displayresults()
for(float i=1;i<_saved_filenames.size();i++){
if(_state == STATE_STOP) return;
cout << "_saved_filenames[i]" << _saved_filenames[i] << endl;
while(!_image_shown){
+4 -2
View File
@@ -64,7 +64,7 @@ void StrobeAnalysis::acquire()
_frame_cnt = 0; _save_cnt = 0; _anim_cnt = 0; _strobe_cnt = 0;
while(!_RUN_DONE)
while(!_RUN_DONE && _state != STATE_STOP)
Thread::sleep(3);
save_timer->stop();
@@ -76,7 +76,7 @@ void StrobeAnalysis::acquire()
void StrobeAnalysis::synthesise()
{
// _saved_filenames has all the file names of all the saved images
while(!_RUN_DONE)
while(!_RUN_DONE && _state != STATE_STOP)
Thread::sleep(3);
}
@@ -85,6 +85,8 @@ void StrobeAnalysis::displayresults()
for(float i=1;i<_saved_filenames.size();i++){
if(_state == STATE_STOP) return;
cout << "_saved_filenames[i]" << _saved_filenames[i] << endl;
while(!_image_shown){