Package flumotion :: Package component :: Package effects :: Package audioresync :: Module admin_gtk
[hide private]

Source Code for Module flumotion.component.effects.audioresync.admin_gtk

 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  import os 
19   
20  # import custom glade handler 
21  from flumotion.ui import glade 
22  from flumotion.component.base.effectsnode import EffectAdminGtkNode 
23   
24  __version__ = "$Rev$" 
25   
26   
27 -class AudioresyncAdminGtkNode(EffectAdminGtkNode):
28 logCategory = 'audioresync-delay' 29 gladeFile = os.path.join('flumotion', 'component', 'effects', 30 'audioresync', 'audioresync.glade') 31 32 uiStateHandlers = None 33
34 - def haveWidgetTree(self):
35 self.widget = self.wtree.get_widget('audioresync-widget') 36 self._resync_spinbutton = \ 37 self.wtree.get_widget('delay-spinbutton') 38 39 # do the callbacks for the mode setting 40 self._resync_spinbutton.connect('value-changed', self._cb_delay_set)
41
42 - def setUIState(self, state):
43 EffectAdminGtkNode.setUIState(self, state) 44 if not self.uiStateHandlers: 45 self.uiStateHandlers = {'audioresync-delay': self.delaySet} 46 for k, handler in self.uiStateHandlers.items(): 47 handler(state.get(k))
48
49 - def stateSet(self, state, key, value):
50 handler = self.uiStateHandlers.get(key, None) 51 if handler: 52 handler(value)
53
54 - def delaySet(self, diff):
55 self._resync_spinbutton.set_value(diff)
56
57 - def setResyncErrback(self, failure):
58 self.warning("Failure %s setting mode: %s" % ( 59 failure.type, failure.getErrorMessage())) 60 return None
61
62 - def _cb_delay_set(self, widget):
63 diff = widget.get_value() 64 d = self.effectCallRemote("setDelay", diff) 65 d.addErrback(self.setResyncErrback)
66