Merge branch 'mplayer'
This commit is contained in:
commit
5c02f82d21
@ -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"""
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user