| 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 Fluendo, S.L. (www.fluendo.com).
6 # All rights reserved.
7
8 # This file may be distributed and/or modified under the terms of
9 # the GNU General Public License version 2 as published by
10 # the Free Software Foundation.
11 # This file is distributed without any warranty; without even the implied
12 # warranty of merchantability or fitness for a particular purpose.
13 # See "LICENSE.GPL" in the source distribution for more information.
14
15 # Licensees having purchased or holding a valid Flumotion Advanced
16 # Streaming Server license may use this file in accordance with the
17 # Flumotion Advanced Streaming Server Commercial License Agreement.
18 # See "LICENSE.Flumotion" in the source distribution for more information.
19
20 # Headers in this file shall remain intact.
21
22 from gettext import gettext as _
23
24 import gtk
25 import os
26 import math
27
28 # import custom glade handler
29 from flumotion.ui import glade
30 from flumotion.component.base.effectsnode import EffectAdminGtkNode
31
32 __version__ = "$Rev$"
33
34 DEINTERLACE_MODE = {
35 _("Automatic detection"): "auto",
36 _("Force deinterlacing"): "interlaced",
37 }
38
39 DEINTERLACE_METHOD = {
40 _("FFmpeg Deinterlacer"): "ffmpeg",
41 _("Motion Adaptive: Motion Search"): "tomsmocomp",
42 _("Motion Adaptive: Advanced Detection"): "greedyh",
43 _("Motion Adaptive: Simple Detection"): "greedyl",
44 _("Blur: Temporal"): "linearblend",
45 _("Blur: Vertical"): "vfir",
46 _("Television: Full resolution"): "linear",
47 _("Double lines"): "scalerbob",
48 _("Weave"): "weave",
49 _("Progressive: Top Field First"): "weavetff",
50 _("Progressive: Bottom Field First"): "weavebff"}
51
52
54 logCategory = 'deinterlace'
55 gladeFile = os.path.join('flumotion', 'component', 'effects',
56 'deinterlace', 'deinterlace.glade')
57
58 uiStateHandlers = None
59
61 self.widget = self.wtree.get_widget('deinterlace-widget')
62 self._mode_combobox = \
63 self.wtree.get_widget('deinterlace-mode-combobox')
64 self._method_combobox = \
65 self.wtree.get_widget('deinterlace-method-combobox')
66
67 # fill comboboxes
68 self._mode_combobox.prefill(DEINTERLACE_MODE.items())
69 self._method_combobox.prefill(DEINTERLACE_METHOD.items())
70 self._mode_combobox.select_item_by_data("auto")
71 self._method_combobox.select_item_by_data("ffmpeg")
72
73 # do the callbacks for the mode setting
74 self._mode_combobox.connect('changed', self._cb_mode_set)
75 # do the callback for the method setting
76 self._method_combobox.connect('changed', self._cb_method_set)
77
79 EffectAdminGtkNode.setUIState(self, state)
80 if not self.uiStateHandlers:
81 self.uiStateHandlers = {'deinterlace-mode': self.modeSet,
82 'deinterlace-method': self.methodSet}
83 for k, handler in self.uiStateHandlers.items():
84 handler(state.get(k))
85
90
92 if mode is not None:
93 if mode == 'disabled':
94 self._method_combobox.set_sensitive(False)
95 self._mode_combobox.set_sensitive(False)
96 else:
97 self._mode_combobox.select_item_by_data(mode)
98 self._method_combobox.set_sensitive(True)
99 self._mode_combobox.set_sensitive(True)
100
104
106 self.warning("Failure %s setting mode: %s" % (
107 failure.type, failure.getErrorMessage()))
108 return None
109
111 self.warning("Failure %s setting method: %s" % (
112 failure.type, failure.getErrorMessage()))
113 return None
114
116 mode = widget.get_selected_data()
117 d = self.effectCallRemote("setMode", mode)
118 d.addErrback(self.setModeErrback)
119
121 method = widget.get_selected_data()
122 d = self.effectCallRemote("setMethod", method)
123 d.addErrback(self.setModeErrback)
124
| Trees | Indices | Help |
|---|
| Generated by Epydoc 3.0.1 on Fri Sep 24 12:50:48 2010 | http://epydoc.sourceforge.net |