audio: Move play_track() out of the Player
Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
parent
b95ad55c9a
commit
39794c0830
|
@ -20,3 +20,12 @@ def NowPlaying():
|
||||||
|
|
||||||
def SeekControl():
|
def SeekControl():
|
||||||
return scale.ScaleButtonBox(scale.SeekScale(Player))
|
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
|
||||||
|
|
|
@ -65,14 +65,10 @@ class Player(bass.BassPlayer):
|
||||||
def pause(self): self.playing = False
|
def pause(self): self.playing = False
|
||||||
def playpause(self, *args): self.playing = not self.playing
|
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):
|
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))
|
@GObject.Signal(arg_types=(tagdb.track.Track, tagdb.track.Track))
|
||||||
def track_changed(self, prev, new):
|
def track_changed(self, prev, new):
|
||||||
|
|
|
@ -1,11 +1,25 @@
|
||||||
# Copyright 2021 (c) Anna Schumaker.
|
# Copyright 2021 (c) Anna Schumaker.
|
||||||
import audio
|
import audio
|
||||||
|
import pathlib
|
||||||
|
import tagdb
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
|
test_album = pathlib.Path("./data/Test Album/")
|
||||||
|
|
||||||
class TestAudio(unittest.TestCase):
|
class TestAudio(unittest.TestCase):
|
||||||
def test_audio_init(self):
|
def test_audio_init(self):
|
||||||
self.assertIsInstance(audio.Player, audio.player.Player)
|
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):
|
def test_audio_widgets(self):
|
||||||
seeker = audio.SeekControl()
|
seeker = audio.SeekControl()
|
||||||
|
|
||||||
|
|
|
@ -59,7 +59,6 @@ class TestPlayer(unittest.TestCase):
|
||||||
self.assertEqual(settings.get_int("audio.trackid"), self.track.trackid)
|
self.assertEqual(settings.get_int("audio.trackid"), self.track.trackid)
|
||||||
self.assertEqual(play.get_state(), Gst.State.READY)
|
self.assertEqual(play.get_state(), Gst.State.READY)
|
||||||
self.assertEqual(self.changed, (None, self.track) )
|
self.assertEqual(self.changed, (None, self.track) )
|
||||||
self.assertFalse(play.play_track(self.track))
|
|
||||||
|
|
||||||
tagdb.tags.User["Previous"].tracks.clear()
|
tagdb.tags.User["Previous"].tracks.clear()
|
||||||
play2 = player.Player()
|
play2 = player.Player()
|
||||||
|
|
|
@ -22,7 +22,7 @@ Selection.set_model(FilterModel)
|
||||||
|
|
||||||
def on_row_activate(view, position):
|
def on_row_activate(view, position):
|
||||||
track = FilterModel.get_item(position)
|
track = FilterModel.get_item(position)
|
||||||
if audio.Player.play_track(track) == True:
|
if audio.play_track(track):
|
||||||
Model.tag.track_selected(track)
|
Model.tag.track_selected(track)
|
||||||
tagdb.save()
|
tagdb.save()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue