1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 from flumotion.component.base.admin_text import BaseAdminText
23
24 import string
25
26 from twisted.internet import defer
27
28 -class VideoTestAdminText(BaseAdminText):
29 commands = [ 'setpattern', 'getpattern' ]
30 patterns = [ 'smpte', 'snow', 'black' ]
31
34
35 - def getCompletions(self, input):
36 input_split = input.split()
37 available_commands = []
38 if input.endswith(' '):
39 input_split.append('')
40 if len(input_split) <= 1:
41 for c in self.commands:
42 if c.startswith(string.lower(input_split[0])):
43 available_commands.append(c)
44 elif len(input_split) == 2:
45 if string.lower(input_split[0]) == 'setpattern':
46 for p in self.patterns:
47 if p.startswith(string.lower(input_split[1])):
48 available_commands.append(p)
49
50 return available_commands
51
52 - def runCommand(self, command):
53 command_split = command.split()
54 if string.lower(command_split[0]) == 'setpattern':
55
56 if len(command_split) == 2:
57 pattern = -1
58 if string.lower(command_split[1]) == 'smpte':
59 pattern = 0
60 elif string.lower(command_split[1]) == 'snow':
61 pattern = 1
62 elif string.lower(command_split[1]) == 'black':
63 pattern = 2
64 if pattern > -1:
65 d = self.callRemote("setElementProperty", "source", "pattern", pattern)
66 return d
67 elif string.lower(command_split[0]) == 'getpattern':
68
69 d = self.callRemote("getElementProperty", "source", "pattern")
70 newd = defer.Deferred()
71 d.addCallback(self._getpattern_cb, newd)
72 return newd
73 else:
74 return None
75
76 - def _getpattern_cb(self, result, newd):
77 pattern = self.patterns[result]
78 newd.callback(pattern)
79
80
81 UIClass = VideoTestAdminText
82