2024-03-10 01:09:26 -05:00
|
|
|
import queue
|
|
|
|
|
|
|
|
|
2024-01-05 21:56:50 -05:00
|
|
|
class Signals:
|
2024-03-10 01:09:26 -05:00
|
|
|
def __init__(self):
|
2024-03-09 22:25:07 -05:00
|
|
|
self._human_speaking = False
|
|
|
|
self._AI_speaking = False
|
|
|
|
self._AI_thinking = False
|
|
|
|
self._last_message_time = 0.0
|
|
|
|
self._new_message = False
|
|
|
|
self._tts_ready = False
|
|
|
|
self._stt_ready = False
|
|
|
|
self._recentTwitchMessages = []
|
2024-03-10 01:09:26 -05:00
|
|
|
self._history = []
|
2024-03-09 22:25:07 -05:00
|
|
|
|
2024-03-17 19:18:30 -04:00
|
|
|
# This flag indicates to all threads that they should immediately terminate
|
|
|
|
self._terminate = False
|
|
|
|
|
2024-03-10 01:09:26 -05:00
|
|
|
self.sio_queue = queue.SimpleQueue()
|
2024-03-09 22:25:07 -05:00
|
|
|
|
|
|
|
@property
|
|
|
|
def human_speaking(self):
|
|
|
|
return self._human_speaking
|
|
|
|
|
|
|
|
@human_speaking.setter
|
|
|
|
def human_speaking(self, value):
|
|
|
|
self._human_speaking = value
|
2024-03-10 01:09:26 -05:00
|
|
|
self.sio_queue.put(('human_speaking', value))
|
2024-03-17 19:18:30 -04:00
|
|
|
if value:
|
|
|
|
print("SIGNALS: Human Talking Start")
|
|
|
|
else:
|
|
|
|
print("SIGNALS: Human Talking Stop")
|
2024-03-09 22:25:07 -05:00
|
|
|
|
|
|
|
@property
|
|
|
|
def AI_speaking(self):
|
|
|
|
return self._AI_speaking
|
|
|
|
|
|
|
|
@AI_speaking.setter
|
|
|
|
def AI_speaking(self, value):
|
|
|
|
self._AI_speaking = value
|
2024-03-10 01:09:26 -05:00
|
|
|
self.sio_queue.put(('AI_speaking', value))
|
2024-03-17 19:18:30 -04:00
|
|
|
if value:
|
|
|
|
print("SIGNALS: AI Talking Start")
|
|
|
|
else:
|
|
|
|
print("SIGNALS: AI Talking Stop")
|
2024-03-09 22:25:07 -05:00
|
|
|
|
|
|
|
@property
|
|
|
|
def AI_thinking(self):
|
|
|
|
return self._AI_thinking
|
|
|
|
|
|
|
|
@AI_thinking.setter
|
|
|
|
def AI_thinking(self, value):
|
|
|
|
self._AI_thinking = value
|
2024-03-10 01:09:26 -05:00
|
|
|
self.sio_queue.put(('AI_thinking', value))
|
2024-03-17 19:18:30 -04:00
|
|
|
if value:
|
|
|
|
print("SIGNALS: AI Thinking Start")
|
|
|
|
else:
|
|
|
|
print("SIGNALS: AI Thinking Stop")
|
2024-03-09 22:25:07 -05:00
|
|
|
|
|
|
|
@property
|
|
|
|
def last_message_time(self):
|
|
|
|
return self._last_message_time
|
|
|
|
|
|
|
|
@last_message_time.setter
|
|
|
|
def last_message_time(self, value):
|
|
|
|
self._last_message_time = value
|
|
|
|
|
|
|
|
@property
|
|
|
|
def new_message(self):
|
|
|
|
return self._new_message
|
|
|
|
|
|
|
|
@new_message.setter
|
|
|
|
def new_message(self, value):
|
|
|
|
self._new_message = value
|
2024-03-17 19:18:30 -04:00
|
|
|
if value:
|
|
|
|
print("SIGNALS: New Message")
|
2024-03-09 22:25:07 -05:00
|
|
|
|
|
|
|
@property
|
|
|
|
def tts_ready(self):
|
|
|
|
return self._tts_ready
|
|
|
|
|
|
|
|
@tts_ready.setter
|
|
|
|
def tts_ready(self, value):
|
|
|
|
self._tts_ready = value
|
|
|
|
|
|
|
|
@property
|
|
|
|
def stt_ready(self):
|
|
|
|
return self._stt_ready
|
|
|
|
|
|
|
|
@stt_ready.setter
|
|
|
|
def stt_ready(self, value):
|
|
|
|
self._stt_ready = value
|
|
|
|
|
|
|
|
@property
|
|
|
|
def recentTwitchMessages(self):
|
|
|
|
return self._recentTwitchMessages
|
|
|
|
|
|
|
|
@recentTwitchMessages.setter
|
|
|
|
def recentTwitchMessages(self, value):
|
|
|
|
self._recentTwitchMessages = value
|
2024-03-17 23:23:49 -04:00
|
|
|
self.sio_queue.put(('recent_twitch_messages', value))
|
2024-03-10 01:09:26 -05:00
|
|
|
|
|
|
|
@property
|
|
|
|
def history(self):
|
|
|
|
return self._history
|
|
|
|
|
|
|
|
@history.setter
|
|
|
|
def history(self, value):
|
|
|
|
self._history = value
|
2024-03-17 19:18:30 -04:00
|
|
|
|
|
|
|
@property
|
|
|
|
def terminate(self):
|
|
|
|
return self._terminate
|
|
|
|
|
|
|
|
@terminate.setter
|
|
|
|
def terminate(self, value):
|
|
|
|
self._terminate = value
|