diff options
Diffstat (limited to 'src/argaze/utils/contexts/TobiiProGlasses2.py')
-rw-r--r-- | src/argaze/utils/contexts/TobiiProGlasses2.py | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/src/argaze/utils/contexts/TobiiProGlasses2.py b/src/argaze/utils/contexts/TobiiProGlasses2.py index 4cf88f0..b46ebd9 100644 --- a/src/argaze/utils/contexts/TobiiProGlasses2.py +++ b/src/argaze/utils/contexts/TobiiProGlasses2.py @@ -1259,6 +1259,9 @@ class PostProcessing(ArFeatures.ArContext): # Create stop event self.__stop_event = threading.Event() + # Create pause event + self.__pause_event = threading.Event() + # Open reading thread self.__reading_thread = threading.Thread(target=self.__read) @@ -1281,15 +1284,24 @@ class PostProcessing(ArFeatures.ArContext): for video_ts, video_image, data_list in self: + # Check pause event (and stop event) + while self.__pause_event.is_set() and not self.__stop_event.is_set(): + + logging.debug('> reading is paused at %i', video_ts) + + self._process_camera_image(timestamp=video_ts, image=video_image) + + time.sleep(1) + + # Check stop event if self.__stop_event.is_set(): + break logging.debug('> read image at %i timestamp', video_ts) # Process camera image - self._process_camera_image( - timestamp=video_ts, - image=video_image) + self._process_camera_image(timestamp=video_ts, image=video_image) height, width, _ = video_image.shape @@ -1457,3 +1469,20 @@ class PostProcessing(ArFeatures.ArContext): # Return millisecond timestamp, data object and type return ts * 1e-3, data_object, data_object_type + + @DataFeatures.PipelineStepMethod + def pause(self): + """Pause pipeline processing.""" + + self.__pause_event.set() + + def is_paused(self) -> bool: + """Is pipeline processing paused?""" + + return self.__pause_event.is_set() + + @DataFeatures.PipelineStepMethod + def resume(self): + """Resume pipeline processing.""" + + self.__pause_event.clear()
\ No newline at end of file |