Minor Audacity interface cleanups

This commit is contained in:
Keith Edmunds 2024-11-27 13:01:10 +00:00
parent 28897500c8
commit 5d5277b028
2 changed files with 9 additions and 16 deletions

View File

@ -37,11 +37,6 @@ class AudacityController:
user_uid = os.getuid() # Get the user's UID
self.pipe_to = f"/tmp/audacity_script_pipe.to.{user_uid}"
self.pipe_from = f"/tmp/audacity_script_pipe.from.{user_uid}"
if not (os.path.exists(self.pipe_to) and os.path.exists(self.pipe_from)):
raise ApplicationError(
"AudacityController: Audacity pipes not found. Ensure scripting is enabled "
f"and pipes exist at {self.pipe_to} and {self.pipe_from}."
)
elif method == "socket":
self.socket_host = socket_host
self.socket_port = socket_port
@ -54,6 +49,8 @@ class AudacityController:
else:
raise ApplicationError("Invalid method. Use 'pipe' or 'socket'.")
self._sanity_check()
def close(self):
"""
Close the connection (for sockets).
@ -66,16 +63,14 @@ class AudacityController:
Export file from Audacity
"""
log.info("export()")
self._sanity_check()
select_status = self._send_command("SelectAll")
log.info(f"{select_status=}")
log.debug(f"{select_status=}")
export_cmd = f'Export2: Filename="{self.path}" NumChannels=2'
export_status = self._send_command(export_cmd)
log.info(f"{export_status=}")
log.debug(f"{export_status=}")
self.path = ""
if not export_status.startswith("Exported"):
raise ApplicationError(f"Error writing from Audacity: {export_status=}")
@ -85,8 +80,6 @@ class AudacityController:
Open path in Audacity. Escape filename.
"""
log.info(f"open({path=})")
self._sanity_check()
escaped_path = path.replace('"', '\\"')
@ -94,15 +87,13 @@ class AudacityController:
status = self._send_command(cmd)
self.path = path
log.info(f"_open_in_audacity {path=}, {status=}")
log.debug(f"_open_in_audacity {path=}, {status=}")
def _sanity_check(self) -> None:
"""
Check Audactity running and basic connectivity.
"""
log.info("_sanity_check")
# Check Audacity is running
if "audacity" not in [i.name() for i in psutil.process_iter()]:
log.warning("Audactity not running")
@ -131,7 +122,7 @@ class AudacityController:
:param command: Command to send (e.g., 'SelectAll').
:return: Response from Audacity.
"""
log.info(f"_send_command({command=})")
log.debug(f"_send_command({command=})")
if self.method == "pipe":
try:

View File

@ -434,7 +434,7 @@ class PlaylistTab(QTableView):
# Open/import in/from Audacity
if track_row and not this_is_current_row:
if track_path == self.ac.path:
if self.ac and track_path == self.ac.path:
# This track was opened in Audacity
self._add_context_menu(
"Update from Audacity",
@ -722,6 +722,8 @@ class PlaylistTab(QTableView):
return
try:
if not self.ac:
self.ac = AudacityController()
self.ac.open(path)
except ApplicationError as e:
show_warning(self.musicmuster, "Audacity error", str(e))