From 8a52575988d56d2c7655904b184bd9db689d181f Mon Sep 17 00:00:00 2001 From: Adrien Lescourt <adrien@lescourt.net> Date: Fri, 16 Jul 2021 14:13:58 +0200 Subject: [PATCH] Add a stopped event --- memory_lib/memory.py | 1 + memory_lib/model.py | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/memory_lib/memory.py b/memory_lib/memory.py index 8d2c61c..1324d84 100644 --- a/memory_lib/memory.py +++ b/memory_lib/memory.py @@ -53,6 +53,7 @@ class Memory(ABC, threading.Thread, PiecesObserver): if key == ord("r"): self.reset() if key == ord("q"): + self.stopped_trigger() break @abstractmethod diff --git a/memory_lib/model.py b/memory_lib/model.py index 6fb2d50..5069819 100644 --- a/memory_lib/model.py +++ b/memory_lib/model.py @@ -69,6 +69,7 @@ class PiecesObserver: def __init__(self): self._pieces_observers = [] self._board_observers = [] + self._stopped_observers = [] def bind_pieces(self, callback: Callable): self._pieces_observers.append(callback) @@ -76,6 +77,9 @@ class PiecesObserver: def bind_board(self, callback: Callable): self._board_observers.append(callback) + def bind_stopped(self, callback: Callable): + self._stopped_observers.append(callback) + def piece_trigger(self, piece_id: int): """On every piece state change, send the piece id that changed""" for callback in self._pieces_observers: @@ -85,3 +89,8 @@ class PiecesObserver: """On every frame, send the full board""" for callback in self._board_observers: callback(board) + + def stopped_trigger(self): + """On every frame, send the full board""" + for callback in self._stopped_observers: + callback() -- GitLab