From 34e38537d99d04664f0c08a3583e4db3e5c5191c Mon Sep 17 00:00:00 2001 From: "Denis V. Dedkov" Date: Sun, 24 Jul 2016 11:43:12 +0500 Subject: [PATCH] Find command by string --- noolite.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/noolite.go b/noolite.go index 04745db..3c3accd 100644 --- a/noolite.go +++ b/noolite.go @@ -107,6 +107,29 @@ func DefaultNooliteAdapter() (*NooliteAdapter, error) { // Default constructor return NewNooliteAdapter(0, 2, 2) } +func (n *NooliteAdapter) FindCommand(command string) (func(int) error, bool) { + m := map[string]func(int) error { + "on": n.On, + "off": n.Off, + "switch": n.Switch, + "decraseBrightnes": n.DecraseBrightnes, + "incraseBrightnes": n.IncraseBrightnes, + "invertBrightnes": n.InvertBrightnes, + "callScenario": n.CallScenario, + "saveScenario": n.SaveScenario, + "unbind": n.UnbindChannel, + "stopColorSelection": n.StopColorSelection, + "bind": n.BindChannel, + "colorSelection": n.ColorSelection, + "colorSwitch": n.ColorSwitch, + "modeSwitch": n.ModeSwitch, + "effectSpeed": n.EffectSpeed, + } + + cmd, ok := m[command] + return cmd, ok +} + func (n *NooliteAdapter) composeCommand(cmd command, channel int, args ...int) []byte { c := make([]byte, 8)