| Trees | Indices | Help |
|---|
|
|
1 # -*- Mode: Python -*-
2 # vi:si:et:sw=4:sts=4:ts=4
3
4 # Flumotion - a streaming media server
5 # Copyright (C) 2004,2005,2006,2007,2008,2009 Fluendo, S.L.
6 # Copyright (C) 2010,2011 Flumotion Services, S.A.
7 # All rights reserved.
8 #
9 # This file may be distributed and/or modified under the terms of
10 # the GNU Lesser General Public License version 2.1 as published by
11 # the Free Software Foundation.
12 # This file is distributed without any warranty; without even the implied
13 # warranty of merchantability or fitness for a particular purpose.
14 # See "LICENSE.LGPL" in the source distribution for more information.
15 #
16 # Headers in this file shall remain intact.
17
18 from gettext import gettext as _
19
20 import gtk
21 import os
22
23 # import custom glade handler
24 from flumotion.ui import glade
25 from flumotion.component.base.effectsnode import EffectAdminGtkNode
26
27 __version__ = "$Rev$"
28
29 DEINTERLACE_MODE = {
30 _("Automatic detection"): "auto",
31 _("Force deinterlacing"): "interlaced",
32 }
33
34 DEINTERLACE_METHOD = {
35 _("FFmpeg Deinterlacer"): "ffmpeg",
36 _("Motion Adaptive: Motion Search"): "tomsmocomp",
37 _("Motion Adaptive: Advanced Detection"): "greedyh",
38 _("Motion Adaptive: Simple Detection"): "greedyl",
39 _("Blur: Temporal"): "linearblend",
40 _("Blur: Vertical"): "vfir",
41 _("Television: Full resolution"): "linear",
42 _("Double lines"): "scalerbob",
43 _("Weave"): "weave",
44 _("Progressive: Top Field First"): "weavetff",
45 _("Progressive: Bottom Field First"): "weavebff"}
46
47
49 logCategory = 'deinterlace'
50 gladeFile = os.path.join('flumotion', 'component', 'effects',
51 'deinterlace', 'deinterlace.glade')
52
53 uiStateHandlers = None
54
56 self.widget = self.wtree.get_widget('deinterlace-widget')
57 self._mode_combobox = \
58 self.wtree.get_widget('deinterlace-mode-combobox')
59 self._method_combobox = \
60 self.wtree.get_widget('deinterlace-method-combobox')
61
62 # fill comboboxes
63 self._mode_combobox.prefill(DEINTERLACE_MODE.items())
64 self._method_combobox.prefill(DEINTERLACE_METHOD.items())
65 self._mode_combobox.select_item_by_data("auto")
66 self._method_combobox.select_item_by_data("ffmpeg")
67
68 # do the callbacks for the mode setting
69 self._mode_combobox.connect('changed', self._cb_mode_set)
70 # do the callback for the method setting
71 self._method_combobox.connect('changed', self._cb_method_set)
72
74 EffectAdminGtkNode.setUIState(self, state)
75 if not self.uiStateHandlers:
76 self.uiStateHandlers = {'deinterlace-mode': self.modeSet,
77 'deinterlace-method': self.methodSet}
78 for k, handler in self.uiStateHandlers.items():
79 handler(state.get(k))
80
85
87 if mode is not None:
88 if mode == 'disabled':
89 self._method_combobox.set_sensitive(False)
90 self._mode_combobox.set_sensitive(False)
91 else:
92 self._mode_combobox.select_item_by_data(mode)
93 self._method_combobox.set_sensitive(True)
94 self._mode_combobox.set_sensitive(True)
95
99
101 self.warning("Failure %s setting mode: %s" % (
102 failure.type, failure.getErrorMessage()))
103 return None
104
106 self.warning("Failure %s setting method: %s" % (
107 failure.type, failure.getErrorMessage()))
108 return None
109
111 mode = widget.get_selected_data()
112 d = self.effectCallRemote("setMode", mode)
113 d.addErrback(self.setModeErrback)
114
116 method = widget.get_selected_data()
117 d = self.effectCallRemote("setMethod", method)
118 d.addErrback(self.setModeErrback)
119
| Trees | Indices | Help |
|---|
| Generated by Epydoc 3.0.1 on Mon May 11 00:19:52 2015 | http://epydoc.sourceforge.net |