Changeset - 1241e61fcf74
[Not reviewed]
default
0 2 0
drewp@bigasterisk.com - 6 years ago 2019-06-11 01:32:58
drewp@bigasterisk.com
old math bug where KC was sending to collector as fast as it could (100fps)
Ignore-this: 4541336057ab4c892c79d648f46c6f43
2 files changed with 6 insertions and 10 deletions:
0 comments (0 inline, 0 general)
bin/keyboardcomposer
Show inline comments
 
@@ -227,25 +227,25 @@ class KeyboardComposer(tk.Frame, SubClie
 

	
 
        self.use_hw_sliders = hw_sliders
 
        self.connect_to_hw(hw_sliders)
 

	
 
        self.make_key_hints()
 
        self.make_buttons()
 

	
 
        self.graph.addHandler(self.redraw_sliders)
 

	
 
        self.codeWatcher = CodeWatcher(
 
            onChange=lambda: self.graph.addHandler(self.redraw_sliders))
 

	
 
        self.send_levels_loop(delay=.05)
 
        self.send_levels_loop(periodSec=.05)
 
        self.graph.addHandler(self.rowFromGraph)
 

	
 
    def make_buttons(self):
 
        self.buttonframe = tk.Frame(self, bg='black')
 
        self.buttonframe.pack(side=tk.BOTTOM)
 

	
 
        self.sliders_status_var = tk.IntVar()
 
        self.sliders_status_var.set(self.use_hw_sliders)
 
        self.sliders_checkbutton = tk.Checkbutton(
 
            self.buttonframe,
 
            text="Sliders",
 
            variable=self.sliders_status_var,
light9/subclient.py
Show inline comments
 
@@ -12,38 +12,34 @@ log = logging.getLogger()
 
class SubClient:
 
    graph: SyncedGraph
 
    session: URIRef
 

	
 
    def __init__(self):
 
        """assumed that your init saves self.graph"""
 
        pass  # we may later need init code for network setup
 

	
 
    def get_levels_as_sub(self):
 
        """Subclasses must implement this method and return a Submaster
 
        object."""
 

	
 
    def send_levels(self):
 
        self._send_sub()
 

	
 
    def send_levels_loop(self, delay=1000) -> None:
 
        now = time.time()
 
    def send_levels_loop(self, periodSec=1.) -> None:
 
        sendStartTime = time.time()
 

	
 
        def done(sec):
 
            reactor.callLater(max(0,
 
                                  time.time() - (now + delay)),
 
                              self.send_levels_loop)
 
            delay = max(0, (sendStartTime + periodSec) - time.time())
 
            reactor.callLater(delay, self.send_levels_loop, periodSec)
 

	
 
        def err(e):
 
            log.warn('subclient loop: %r', e)
 
            reactor.callLater(2, self.send_levels_loop)
 
            reactor.callLater(2, self.send_levels_loop, periodSec)
 

	
 
        d = self._send_sub()
 
        d.addCallbacks(done, err)
 

	
 
    def _send_sub(self) -> Deferred:
 
        try:
 
            with self.graph.currentState() as g:
 
                outputSettings = self.get_output_settings(_graph=g)
 
        except Exception:
 
            traceback.print_exc()
 
            raise
 

	
0 comments (0 inline, 0 general)