audio: Update dummy and tests to correctly emit stream changed
This commit is contained in:
parent
e12ea662da
commit
71b04213ff
@ -261,6 +261,37 @@ class AudioEventTest(BaseTest):
|
|||||||
self.audio.wait_for_state_change().get()
|
self.audio.wait_for_state_change().get()
|
||||||
self.assertEvent('stream_changed', uri=self.uris[0])
|
self.assertEvent('stream_changed', uri=self.uris[0])
|
||||||
|
|
||||||
|
def test_stream_changed_event_on_multiple_changes(self):
|
||||||
|
self.audio.prepare_change()
|
||||||
|
self.audio.set_uri(self.uris[0])
|
||||||
|
self.listener.clear_events()
|
||||||
|
self.audio.start_playback()
|
||||||
|
|
||||||
|
self.audio.wait_for_state_change().get()
|
||||||
|
self.assertEvent('stream_changed', uri=self.uris[0])
|
||||||
|
|
||||||
|
self.audio.prepare_change()
|
||||||
|
self.audio.set_uri(self.uris[1])
|
||||||
|
self.audio.pause_playback()
|
||||||
|
|
||||||
|
self.audio.wait_for_state_change().get()
|
||||||
|
self.assertEvent('stream_changed', uri=self.uris[1])
|
||||||
|
|
||||||
|
def test_stream_changed_event_on_playing_to_paused(self):
|
||||||
|
self.audio.prepare_change()
|
||||||
|
self.audio.set_uri(self.uris[0])
|
||||||
|
self.listener.clear_events()
|
||||||
|
self.audio.start_playback()
|
||||||
|
|
||||||
|
self.audio.wait_for_state_change().get()
|
||||||
|
self.assertEvent('stream_changed', uri=self.uris[0])
|
||||||
|
|
||||||
|
self.listener.clear_events()
|
||||||
|
self.audio.pause_playback()
|
||||||
|
|
||||||
|
self.audio.wait_for_state_change().get()
|
||||||
|
self.assertNotEvent('stream_changed', uri=self.uris[0])
|
||||||
|
|
||||||
def test_stream_changed_event_on_paused_to_stopped(self):
|
def test_stream_changed_event_on_paused_to_stopped(self):
|
||||||
self.audio.prepare_change()
|
self.audio.prepare_change()
|
||||||
self.audio.set_uri(self.uris[0])
|
self.audio.set_uri(self.uris[0])
|
||||||
@ -282,6 +313,21 @@ class AudioEventTest(BaseTest):
|
|||||||
self.audio.wait_for_state_change().get()
|
self.audio.wait_for_state_change().get()
|
||||||
self.assertEvent('position_changed', position=0)
|
self.assertEvent('position_changed', position=0)
|
||||||
|
|
||||||
|
def test_stream_changed_event_on_paused_to_playing(self):
|
||||||
|
self.audio.prepare_change()
|
||||||
|
self.audio.set_uri(self.uris[0])
|
||||||
|
self.listener.clear_events()
|
||||||
|
self.audio.pause_playback()
|
||||||
|
|
||||||
|
self.audio.wait_for_state_change().get()
|
||||||
|
self.assertEvent('stream_changed', uri=self.uris[0])
|
||||||
|
|
||||||
|
self.listener.clear_events()
|
||||||
|
self.audio.start_playback()
|
||||||
|
|
||||||
|
self.audio.wait_for_state_change().get()
|
||||||
|
self.assertNotEvent('stream_changed', uri=self.uris[0])
|
||||||
|
|
||||||
def test_position_changed_on_play(self):
|
def test_position_changed_on_play(self):
|
||||||
self.audio.prepare_change()
|
self.audio.prepare_change()
|
||||||
self.audio.set_uri(self.uris[0])
|
self.audio.set_uri(self.uris[0])
|
||||||
@ -347,6 +393,8 @@ class AudioEventTest(BaseTest):
|
|||||||
if not event.wait(timeout=1.0):
|
if not event.wait(timeout=1.0):
|
||||||
self.fail('Stream changed not reached within deadline')
|
self.fail('Stream changed not reached within deadline')
|
||||||
|
|
||||||
|
self.assertEvent('stream_changed', uri=self.uris[0])
|
||||||
|
|
||||||
def test_reached_end_of_stream_event(self):
|
def test_reached_end_of_stream_event(self):
|
||||||
event = self.listener.wait('reached_end_of_stream').get()
|
event = self.listener.wait('reached_end_of_stream').get()
|
||||||
|
|
||||||
|
|||||||
@ -25,12 +25,14 @@ class DummyAudio(pykka.ThreadingActor):
|
|||||||
self._callback = None
|
self._callback = None
|
||||||
self._uri = None
|
self._uri = None
|
||||||
self._state_change_result = True
|
self._state_change_result = True
|
||||||
|
self._stream_changed = False
|
||||||
self._tags = {}
|
self._tags = {}
|
||||||
|
|
||||||
def set_uri(self, uri):
|
def set_uri(self, uri):
|
||||||
assert self._uri is None, 'prepare change not called before set'
|
assert self._uri is None, 'prepare change not called before set'
|
||||||
self._tags = {}
|
self._tags = {}
|
||||||
self._uri = uri
|
self._uri = uri
|
||||||
|
self._stream_changed = True
|
||||||
|
|
||||||
def set_appsrc(self, *args, **kwargs):
|
def set_appsrc(self, *args, **kwargs):
|
||||||
pass
|
pass
|
||||||
@ -88,12 +90,15 @@ class DummyAudio(pykka.ThreadingActor):
|
|||||||
if not self._uri:
|
if not self._uri:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if self.state == audio.PlaybackState.STOPPED and self._uri:
|
if new_state == audio.PlaybackState.STOPPED and self._uri:
|
||||||
audio.AudioListener.send('position_changed', position=0)
|
self._stream_changed = True
|
||||||
audio.AudioListener.send('stream_changed', uri=self._uri)
|
|
||||||
|
|
||||||
if new_state == audio.PlaybackState.STOPPED:
|
|
||||||
self._uri = None
|
self._uri = None
|
||||||
|
|
||||||
|
if self._uri is not None:
|
||||||
|
audio.AudioListener.send('position_changed', position=0)
|
||||||
|
|
||||||
|
if self._stream_changed:
|
||||||
|
self._stream_changed = False
|
||||||
audio.AudioListener.send('stream_changed', uri=self._uri)
|
audio.AudioListener.send('stream_changed', uri=self._uri)
|
||||||
|
|
||||||
old_state, self.state = self.state, new_state
|
old_state, self.state = self.state, new_state
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user