1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 __maintainer__ = 'Benjamin Kampmann <benjamin@fluendo.com>'
18
19 from elisa.core.media_uri import MediaUri
20 from elisa.core import plugin_registry
21
22 import gst
23
24 PlaybinEngine = plugin_registry.get_component_class('base:playbin_engine')
26 """
27 This class implements a player engine for cdda (inheriting from
28 PlaybinEngine)
29 """
30
31 uri_schemes = {'cdda' : 0}
32
34 if not self._pipeline:
35 self._create_pipeline()
36 self._pipeline.set_state(gst.STATE_READY)
37 states = self._pipeline.get_state(3000 * gst.MSECOND)
38
39 if states[1] == gst.STATE_READY:
40
41 source = self._pipeline.get_property('source')
42 if source:
43 track = uri.host
44 self.debug("Loading track %s" % track)
45 source.set_property('track', track)
46 self.debug("Ready to play track %s" % track)
47 self._current_uri = uri
48 else:
49 PlaybinEngine.uri__set(self, uri)
50