From c511bf053eea24b6691719860bb695b20d2f7ba5 Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Sat, 10 Feb 2024 15:51:23 +0000 Subject: [PATCH] Rework Audacity initialisation --- app/musicmuster.py | 19 +++++++++++++------ app/playlists.py | 12 +++++++++++- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/app/musicmuster.py b/app/musicmuster.py index b1580a9..21daf47 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -226,12 +226,8 @@ class Window(QMainWindow, Ui_MainWindow): self.move_source_rows: Optional[List[int]] = None self.move_source_model: Optional[PlaylistProxyModel] = None self.audacity_file_path: Optional[str] = None - # Initialise Audacity access - try: - self.audacity_client = pipeclient.PipeClient() - log.info(f"{hex(id(self.audacity_client))=}") - except RuntimeError as e: - log.error(f"Unable to initialise Audacity: {str(e)}") + self.audacity_client: Optional[pipeclient.PipeClient] = None + self.initialise_audacity() if Config.CARTS_HIDE: self.cartsWidget.hide() @@ -865,6 +861,17 @@ class Window(QMainWindow, Ui_MainWindow): self.import_thread.finished.connect(self.import_thread.deleteLater) self.import_thread.start() + def initialise_audacity(self) -> None: + """ + Initialise access to audacity + """ + + try: + self.audacity_client = pipeclient.PipeClient() + log.info(f"{hex(id(self.audacity_client))=}") + except RuntimeError as e: + log.error(f"Unable to initialise Audacity: {str(e)}") + def insert_header(self) -> None: """Show dialog box to enter header text and add to playlist""" diff --git a/app/playlists.py b/app/playlists.py index 207dba6..70acebb 100644 --- a/app/playlists.py +++ b/app/playlists.py @@ -358,6 +358,12 @@ class PlaylistTab(QTableView): show_warning(self.musicmuster, "Audacity", "Audacity is not running") return False + if not self.musicmuster.audacity_client: + self.musicmuster.initialise_audacity() + if not self.musicmuster.audacity_client: + log.error("Unable to access Audacity client") + return False + self.musicmuster.audacity_client.write(cmd, timer=True) reply = "" @@ -671,15 +677,19 @@ class PlaylistTab(QTableView): Open track in passed row in Audacity """ + if not self.musicmuster.audacity_client: + self.musicmuster.initialise_audacity() + path = self.source_model.get_row_track_path(row_number) if not path: log.error(f"_open_in_audacity: can't get path for {row_number=}") return - self.musicmuster.audacity_file_path = path escaped_path = path.replace('"', '\\"') cmd = f'Import2: Filename="{escaped_path}"' status = self._audactity_command(cmd) + if status: + self.musicmuster.audacity_file_path = path log.info(f"_open_in_audacity {path=}, {status=}")