From 5d5277b0281819d8e9b183d583fb4039edaf1206 Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Wed, 27 Nov 2024 13:01:10 +0000 Subject: [PATCH] Minor Audacity interface cleanups --- app/audacity_controller.py | 21 ++++++--------------- app/playlists.py | 4 +++- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/app/audacity_controller.py b/app/audacity_controller.py index 3c453df..459b92d 100644 --- a/app/audacity_controller.py +++ b/app/audacity_controller.py @@ -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: diff --git a/app/playlists.py b/app/playlists.py index 42c9384..0e87f38 100644 --- a/app/playlists.py +++ b/app/playlists.py @@ -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))