Merge branch 'master' of fraxinas@git.opendreambox.org:/git/enigma2
[enigma2.git] / lib / python / Plugins / Extensions / DVDBurn / TitleCutter.py
1 from Plugins.Extensions.CutListEditor.plugin import CutListEditor
2 from Components.ServiceEventTracker import ServiceEventTracker
3 from enigma import iPlayableService, iServiceInformation
4
5 class TitleCutter(CutListEditor):
6         def __init__(self, session, t):
7                 CutListEditor.__init__(self, session, t.source)
8                 self.skin = CutListEditor.skin
9                 self.session = session
10                 self.t = t
11                 self.__event_tracker = ServiceEventTracker(screen=self, eventmap=
12                         {
13                                 iPlayableService.evUpdatedInfo: self.getPMTInfo,
14                                 iPlayableService.evCuesheetChanged: self.refillList
15                         })
16                 self.onExecBegin.remove(self.showTutorial)
17
18         def getPMTInfo(self):
19                 service = self.session.nav.getCurrentService()
20                 audio = service and service.audioTracks()
21                 n = audio and audio.getNumberOfTracks() or 0
22                 if n > 0:
23                         from DVDTitle import ConfigFixedText, ConfigActiveTrack
24                         from TitleProperties import languageChoices
25                         from Components.config import config, ConfigSubsection, ConfigSelection
26                         for x in range(n):
27                                 i = audio.getTrackInfo(x)
28                                 language = i.getLanguage()
29                                 description = i.getDescription()
30                                 pid = str(i.getPID())
31                                 if description == "MPEG":
32                                         description = "MP2"
33                                 if not languageChoices.langdict.has_key(language):
34                                         language="nolang"
35                                 print "[audiotrack] pid:", pid, "description:", description, "language:", language
36                                 self.t.properties.audiotracks.append(ConfigSubsection())
37                                 self.t.properties.audiotracks[-1].active = ConfigActiveTrack()
38                                 self.t.properties.audiotracks[-1].format = ConfigFixedText(description)
39                                 self.t.properties.audiotracks[-1].language = ConfigSelection(choices = languageChoices.choices, default=language)
40                                 self.t.properties.audiotracks[-1].pid = ConfigFixedText(pid)
41                 sAspect = service.info().getInfo(iServiceInformation.sAspect)
42                 if sAspect in ( 1, 2, 5, 6, 9, 0xA, 0xD, 0xE ):
43                         aspect = "4:3"
44                 else:
45                         aspect = "16:9"
46                 self.t.properties.aspect.setValue(aspect)
47                 self.t.VideoType = service.info().getInfo(iServiceInformation.sVideoType)
48
49         def exit(self):
50                 self.session.nav.stopService()
51                 self.close(self.cut_list[:])
52
53 class CutlistReader(TitleCutter):
54         def __init__(self, session, t):
55                 TitleCutter.__init__(self, session, t)
56
57         def getPMTInfo(self):
58                 TitleCutter.getPMTInfo(self)
59                 self.close(self.cut_list[:])