Explorar o código

Find command by string

Denis V. Dedkov %!s(int64=9) %!d(string=hai) anos
pai
achega
34e38537d9
Modificáronse 1 ficheiros con 23 adicións e 0 borrados
  1. 23 0
      noolite.go

+ 23 - 0
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)