read audio stream formats and descriptions from PMT and use them for DVD authoring
[vuplus_dvbapp] / lib / python / Plugins / Extensions / DVDBurn / TitleCutter.py
1 from Plugins.Extensions.CutListEditor.plugin import CutListEditor
2 from Components.ServiceEventTracker import ServiceEventTracker
3
4 class TitleCutter(CutListEditor):
5         def __init__(self, session, t):
6                 CutListEditor.__init__(self, session, t.source)
7                 self.skin = CutListEditor.skin
8                 self.session = session
9                 self.t = t
10                 self.__event_tracker = ServiceEventTracker(screen=self, eventmap=
11                         {
12                                 iPlayableService.evUpdatedInfo: self.getAudioTracks,
13                                 iPlayableService.evCuesheetChanged: self.refillList
14                         })
15                 self.onExecBegin.remove(self.showTutorial)
16
17         def getAudioTracks(self):
18                 service = self.session.nav.getCurrentService()
19                 audio = service and service.audioTracks()
20                 n = audio and audio.getNumberOfTracks() or 0
21                 print "self.t", self.t
22                 print "self.t.audiotracks", self.t.audiotracks
23                 if n > 0:
24                         for x in range(n):
25                                 i = audio.getTrackInfo(x)
26                                 language = i.getLanguage()[:2]
27                                 description = i.getDescription()
28                                 if description == "MPEG":
29                                         description = "mp2"
30                                 self.t.audiotracks.append((description, language))
31                 print "audiotracks", self.t.audiotracks
32
33         def exit(self):
34                 self.session.nav.stopService()
35                 self.close(self.cut_list[:])
36
37 class CutlistReader(TitleCutter):
38         def __init__(self, session, t):
39                 TitleCutter.__init__(self, session, t)
40
41         def getAudioTracks(self):
42                 TitleCutter.getAudioTracks()
43                 self.exit()