Merge branch 'mplayer'

This commit is contained in:
Keith Edmunds 2022-06-10 14:59:47 +01:00
commit 5c02f82d21

View File

@ -19,6 +19,8 @@ from PyQt5.QtWidgets import (
import helpers import helpers
import os import os
import re import re
import subprocess
import threading
from config import Config from config import Config
from datetime import datetime, timedelta from datetime import datetime, timedelta
@ -223,7 +225,12 @@ class PlaylistTab(QTableWidget):
act_info = self.menu.addAction('Info') act_info = self.menu.addAction('Info')
act_info.triggered.connect(lambda: self._info_row(row)) act_info.triggered.connect(lambda: self._info_row(row))
self.menu.addSeparator() self.menu.addSeparator()
if row not in self._get_notes_rows(): if row not in self.get_notes_rows():
act_mplayer = self.menu.addAction(
"Play track with mplayer")
act_mplayer.triggered.connect(
lambda: self._mplayer(row))
self.menu.addSeparator()
if not current and not next_row: if not current and not next_row:
act_setnext = self.menu.addAction("Set next") act_setnext = self.menu.addAction("Set next")
with Session() as session: with Session() as session:
@ -1420,6 +1427,21 @@ class PlaylistTab(QTableWidget):
self.item(row, self.COL_USERDATA).setData( self.item(row, self.COL_USERDATA).setData(
self.ROW_METADATA, new_metadata) self.ROW_METADATA, new_metadata)
def _mplayer(self, row: int) -> None:
"""Play track with mplayer"""
DEBUG(f"_mplayer({row})")
if row in self.get_notes_rows():
return None
with Session() as session:
track: Tracks = self._get_row_track_object(row, session)
cmd_list = ['gmplayer', '-vc', 'null', '-vo', 'null', track.path]
thread = threading.Thread(
target=self._run_subprocess, args=(cmd_list,))
thread.start()
def _rescan(self, row: int) -> None: def _rescan(self, row: int) -> None:
""" """
If passed row is track row, rescan it. If passed row is track row, rescan it.
@ -1435,6 +1457,11 @@ class PlaylistTab(QTableWidget):
track.rescan(session) track.rescan(session)
self._update_row(session, row, track) self._update_row(session, row, track)
def _run_subprocess(self, args):
"""Run args in subprocess"""
subprocess.call(args)
def _set_current_track_row(self, row: int) -> None: def _set_current_track_row(self, row: int) -> None:
"""Mark this row as current track""" """Mark this row as current track"""