func ColorEffectFactory(l devices.ColorLamp) deviceapi.Effect { return deviceapi.EffectFunc(func(config deviceapi.Config) error { conf, ok := config.(*ColorConfig) if !ok { return errors.New("Not a ColorConfig") } m := color.RGBAModel return l.Color(m.Convert(conf.Color).(color.RGBA)) }) }
func SunriseEffectFactory(l devices.ColorLamp) deviceapi.Effect { return deviceapi.EffectFunc(func(config deviceapi.Config) error { sunriseConf, ok := config.(*deviceapi.DelayConfig) if !ok { return errors.New("Not a SunriseConfig") } delay, err := time.ParseDuration(sunriseConf.Delay) if err != nil { return err } return l.Sunrise(delay) }) }
func ColorFadeEffect(l devices.ColorLamp) deviceapi.Effect { return deviceapi.EffectFunc(func(config deviceapi.Config) error { colorfadeConf, ok := config.(*ColorfadeConfig) if !ok { return errors.New("Not a ColorFadeConfig") } delay, err := time.ParseDuration(colorfadeConf.Delay) if err != nil { return err } m := color.RGBAModel return l.ColorFade(delay, m.Convert(colorfadeConf.Color).(color.RGBA)) }) }