A few final adjustments to the audio utility.
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
import curses
|
import curses
|
||||||
|
import configparser
|
||||||
import json
|
import json
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
@@ -256,6 +257,11 @@ class AudioManagerApp:
|
|||||||
self.backend = AudioBackend()
|
self.backend = AudioBackend()
|
||||||
self.feedback = AudioFeedback()
|
self.feedback = AudioFeedback()
|
||||||
self.speech_client = None
|
self.speech_client = None
|
||||||
|
self.config_dir = os.path.expanduser("~/.config/stormux")
|
||||||
|
self.config_file = os.path.join(self.config_dir, "game_launcher.conf")
|
||||||
|
self.config = configparser.ConfigParser()
|
||||||
|
self.speech_rate = 0
|
||||||
|
self.speech_pitch = 0
|
||||||
self.stdscr = None
|
self.stdscr = None
|
||||||
self.focus_names = [
|
self.focus_names = [
|
||||||
"Output Volume",
|
"Output Volume",
|
||||||
@@ -276,6 +282,19 @@ class AudioManagerApp:
|
|||||||
self.input_volume = 50
|
self.input_volume = 50
|
||||||
self.pending_change = None
|
self.pending_change = None
|
||||||
self.status_message = ""
|
self.status_message = ""
|
||||||
|
self.load_speech_settings()
|
||||||
|
|
||||||
|
def load_speech_settings(self):
|
||||||
|
if not os.path.exists(self.config_file):
|
||||||
|
return
|
||||||
|
|
||||||
|
try:
|
||||||
|
self.config.read(self.config_file)
|
||||||
|
if "Speech" in self.config:
|
||||||
|
self.speech_rate = self.config.getint("Speech", "rate", fallback=0)
|
||||||
|
self.speech_pitch = self.config.getint("Speech", "pitch", fallback=0)
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
def init_speech(self):
|
def init_speech(self):
|
||||||
if speechd is None:
|
if speechd is None:
|
||||||
@@ -283,6 +302,8 @@ class AudioManagerApp:
|
|||||||
self.speech_client = speechd.SSIPClient("audio_manager")
|
self.speech_client = speechd.SSIPClient("audio_manager")
|
||||||
self.speech_client.set_priority(speechd.Priority.IMPORTANT)
|
self.speech_client.set_priority(speechd.Priority.IMPORTANT)
|
||||||
self.speech_client.set_punctuation(speechd.PunctuationMode.SOME)
|
self.speech_client.set_punctuation(speechd.PunctuationMode.SOME)
|
||||||
|
self.speech_client.set_rate(self.speech_rate)
|
||||||
|
self.speech_client.set_pitch(self.speech_pitch)
|
||||||
|
|
||||||
def speak(self, text, interrupt=True):
|
def speak(self, text, interrupt=True):
|
||||||
if not self.speech_client:
|
if not self.speech_client:
|
||||||
@@ -557,11 +578,7 @@ class AudioManagerApp:
|
|||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
self.speak(
|
self.speak("Stormux audio manager, press h for help.")
|
||||||
"Sound and Volume. Use left and right arrows to select, "
|
|
||||||
"up and down arrows to adjust, and space to read the current value. "
|
|
||||||
"Press h for help."
|
|
||||||
)
|
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
if pending_change_expired(self.pending_change):
|
if pending_change_expired(self.pending_change):
|
||||||
|
|||||||
Reference in New Issue
Block a user