Changeset - 1d0fbb6ae089
[Not reviewed]
default
0 1 0
drewp@bigasterisk.com - 6 years ago 2019-06-10 02:29:12
drewp@bigasterisk.com
fix KC sliders support
Ignore-this: c1a285064c54c07266660648a5c8dad
1 file changed with 7 insertions and 5 deletions:
0 comments (0 inline, 0 general)
bin/keyboardcomposer
Show inline comments
 
@@ -298,13 +298,13 @@ class KeyboardComposer(tk.Frame, SubClie
 
        for effect in self.graph.subjects(RDF.type, L9['Effect']):
 
            withgroups.append((self.graph.value(effect, L9['group']),
 
                               self.graph.value(effect, L9['order']),
 
                               self.graph.label(effect), effect))
 
        withgroups.sort()
 

	
 
        log.info("withgroups %s", withgroups)
 
        log.debug("withgroups %s", withgroups)
 

	
 
        self.effectEval: Dict[URIRef, light9.effect.effecteval.EffectEval] = {}
 
        imp.reload(light9.effect.effecteval)
 
        simpleOutputs = SimpleOutputs(self.graph)
 
        for group, order, sortLabel, effect in withgroups:
 
            if col == 0 or group != last_group:
 
@@ -332,18 +332,19 @@ class KeyboardComposer(tk.Frame, SubClie
 
        else:
 
            self.sliders.close()
 
        self.change_row(self.current_row)
 
        self.rows[self.current_row].focus()
 

	
 
    def connect_to_hw(self, hw_sliders):
 
        log.info('connect_to_hw')
 
        if hw_sliders:
 
            try:
 
                self.sliders = Sliders(self)
 
                log.info("connected to sliders")
 
            except IOError:
 
                log.info("no hardware sliders")
 
            except IOError as e:
 
                log.info("no hardware sliders %r", e)
 
                self.sliders = DummySliders()
 
                self.use_hw_sliders = False
 
            dispatcher.connect(self.send_to_hw, 'send_to_hw')
 
        else:
 
            self.sliders = DummySliders()
 

	
 
@@ -466,13 +467,13 @@ class KeyboardComposer(tk.Frame, SubClie
 
        if hasattr(self, 'pendingHwSet'):
 
            import twisted.internet.error
 
            try:
 
                self.pendingHwSet.cancel()
 
            except twisted.internet.error.AlreadyCalled:
 
                pass
 
        self.pendingHwSet = reactor.callLater(.01, subbox.safeSliderSet, value)
 
        self.pendingHwSet = reactor.callLater(.01, subbox.setVal, value)
 

	
 
    def send_to_hw(self, sub, hwCol, boxRow):
 
        if isinstance(self.sliders, DummySliders):
 
            return
 

	
 
        assert isinstance(sub, URIRef), repr(sub)
 
@@ -621,12 +622,13 @@ class Sliders(BCF2000):
 
    def __init__(self, kc):
 
        devices = [
 
            '/dev/snd/midiC3D0', '/dev/snd/midiC2D0', '/dev/snd/midiC1D0'
 
        ]
 
        for dev in devices:
 
            try:
 
                log.info('try sliders on %s', dev)
 
                BCF2000.__init__(self, dev=dev)
 
            except IOError:
 
                if dev is devices[-1]:
 
                    raise
 
            else:
 
                break
 
@@ -685,13 +687,13 @@ if __name__ == "__main__":
 
                      action='store_true',
 
                      help="don't attach to hardware sliders")
 
    clientsession.add_option(parser)
 
    parser.add_option('-v', action='store_true', help="log info level")
 
    opts, args = parser.parse_args()
 

	
 
    log.setLevel(logging.DEBUG if opts.v else logging.WARN)
 
    log.setLevel(logging.DEBUG if opts.v else logging.INFO)
 
    logging.getLogger('colormath').setLevel(logging.INFO)
 

	
 
    graph = SyncedGraph(networking.rdfdb.url, "keyboardcomposer")
 

	
 
    # i think this also needs delayed start (like subcomposer has), to have a valid graph
 
    # before setting any stuff from the ui
0 comments (0 inline, 0 general)