audio: Add a custom AutoPauseScale widget

Signed-off-by: Anna Schumaker <Anna@NoWheyCreamery.com>
This commit is contained in:
Anna Schumaker 2021-09-01 16:29:32 -04:00
parent edc3e7f876
commit da1211f595
2 changed files with 34 additions and 0 deletions

View File

@ -59,6 +59,19 @@ class SeekScale(ScalePlus):
return GLib.SOURCE_CONTINUE
class AutoPauseScale(ScalePlus):
def __init__(self):
ScalePlus.__init__(self, -1, 99, 1, 5)
self.set_digits(0)
def format_value(self, scale, value):
value = int(value)
if value == -1: return "Keep Playing"
elif value == 0: return "This Track"
elif value == 1: return "Next Track"
return f"{value} Tracks"
class VolumeScale(ScalePlus):
def __init__(self, player):
ScalePlus.__init__(self, 0.0, 1.0, 0.05, 0.25)

View File

@ -109,6 +109,27 @@ class TestSeekScale(unittest.TestCase):
self.assertEqual(fake.seek_val, 0)
class TestAutoPauseScale(unittest.TestCase):
def test_autopause_scale_init(self):
pause = scale.AutoPauseScale()
adj = pause.get_adjustment()
self.assertIsInstance(pause, scale.ScalePlus)
self.assertEqual(pause.get_digits(), 0)
self.assertEqual(adj.get_value(), -1)
self.assertEqual(adj.get_lower(), -1)
self.assertEqual(adj.get_upper(), 99)
self.assertEqual(adj.get_step_increment(), 1)
self.assertEqual(adj.get_page_increment(), 5)
def test_autopause_scale_values(self):
pause = scale.AutoPauseScale()
self.assertEqual(pause.format_value(pause, -1), "Keep Playing")
self.assertEqual(pause.format_value(pause, 0), "This Track")
self.assertEqual(pause.format_value(pause, 1), "Next Track")
self.assertEqual(pause.format_value(pause, 2), "2 Tracks")
class TestVolumeScale(unittest.TestCase):
def test_volume_scale_init(self):
fake = FakePlayer(0, 5 * Gst.SECOND, 1.0)