audio: Move play_track() out of the Player

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2021-09-06 13:12:40 -04:00
parent b95ad55c9a
commit 39794c0830
5 changed files with 27 additions and 9 deletions

View File

@ -20,3 +20,12 @@ def NowPlaying():
def SeekControl():
return scale.ScaleButtonBox(scale.SeekScale(Player))
def play_track(track):
if track == Player.track:
return False
Player.uri = None
Player.load_track(track)
Player.playing = True
return True

View File

@ -65,14 +65,10 @@ class Player(bass.BassPlayer):
def pause(self): self.playing = False
def playpause(self, *args): self.playing = not self.playing
def play_track(self, track):
if track == self.track:
return False
self.load_set_state(track, Gst.State.PLAYING)
return True
def previous(self, *args):
self.play_track(tagdb.Stack.previous())
self.uri = None
self.load_track(tagdb.Stack.previous())
self.playing = True
@GObject.Signal(arg_types=(tagdb.track.Track, tagdb.track.Track))
def track_changed(self, prev, new):

View File

@ -1,11 +1,25 @@
# Copyright 2021 (c) Anna Schumaker.
import audio
import pathlib
import tagdb
import unittest
test_album = pathlib.Path("./data/Test Album/")
class TestAudio(unittest.TestCase):
def test_audio_init(self):
self.assertIsInstance(audio.Player, audio.player.Player)
def test_audio_play_track(self):
lib = tagdb.Library.add(test_album)
lib.scan().join()
track = [ t for t in lib.tracks if t.tracknumber == 1 ][0]
self.assertTrue(audio.play_track(track))
self.assertTrue(audio.Player.playing)
self.assertFalse(audio.play_track(track))
audio.Player.playing = False
def test_audio_widgets(self):
seeker = audio.SeekControl()

View File

@ -59,7 +59,6 @@ class TestPlayer(unittest.TestCase):
self.assertEqual(settings.get_int("audio.trackid"), self.track.trackid)
self.assertEqual(play.get_state(), Gst.State.READY)
self.assertEqual(self.changed, (None, self.track) )
self.assertFalse(play.play_track(self.track))
tagdb.tags.User["Previous"].tracks.clear()
play2 = player.Player()

View File

@ -22,7 +22,7 @@ Selection.set_model(FilterModel)
def on_row_activate(view, position):
track = FilterModel.get_item(position)
if audio.Player.play_track(track) == True:
if audio.play_track(track):
Model.tag.track_selected(track)
tagdb.save()