parent
3f609f6f2f
commit
b05e6d156d
@ -19,6 +19,8 @@ from PyQt5.QtWidgets import (
|
||||
import helpers
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
import threading
|
||||
|
||||
from config import Config
|
||||
from datetime import datetime, timedelta
|
||||
@ -223,7 +225,12 @@ class PlaylistTab(QTableWidget):
|
||||
act_info = self.menu.addAction('Info')
|
||||
act_info.triggered.connect(lambda: self._info_row(row))
|
||||
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:
|
||||
act_setnext = self.menu.addAction("Set next")
|
||||
with Session() as session:
|
||||
@ -1420,6 +1427,21 @@ class PlaylistTab(QTableWidget):
|
||||
self.item(row, self.COL_USERDATA).setData(
|
||||
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:
|
||||
"""
|
||||
If passed row is track row, rescan it.
|
||||
@ -1435,6 +1457,11 @@ class PlaylistTab(QTableWidget):
|
||||
track.rescan(session)
|
||||
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:
|
||||
"""Mark this row as current track"""
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user