コード例 #1
0
func BrightnessScalingEffectFactory(l devices.DimLamp) deviceapi.Effect {
	return deviceapi.EffectFunc(func(config deviceapi.Config) error {
		c, ok := config.(*BrightnessConfig)
		if !ok {
			return errors.New("Not a BrightnessConfig")
		}
		return l.BrightnessScaling(c.Brightness)
	})
}
コード例 #2
0
ファイル: color.go プロジェクト: niklas88/feel-at-home-server
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))
	})
}
コード例 #3
0
ファイル: clock.go プロジェクト: niklas88/feel-at-home-server
func ClockEffectFactory(l devices.WordClock) deviceapi.Effect {
	return deviceapi.EffectFunc(func(config deviceapi.Config) error {
		_, ok := config.(*deviceapi.EmptyConfig)
		if !ok {
			return errors.New("Not an empty Config")
		}

		return l.Clock()
	})
}
コード例 #4
0
ファイル: heart.go プロジェクト: niklas88/feel-at-home-server
func HeartEffectFactory(l devices.MatrixLamp) deviceapi.Effect {
	return deviceapi.EffectFunc(func(config deviceapi.Config) error {
		_, ok := config.(*deviceapi.EmptyConfig)
		if !ok {
			return errors.New("Not an empty Config")
		}

		return l.Heart()
	})
}
コード例 #5
0
func NewWhiteFadeEffect(l devices.DimLamp) deviceapi.Effect {
	return deviceapi.EffectFunc(func(config deviceapi.Config) error {
		strobeConf, ok := config.(*deviceapi.DelayConfig)
		if !ok {
			return errors.New("Not a WhiteFadeConfig")
		}
		delay, err := time.ParseDuration(strobeConf.Delay)
		if err != nil {
			return err
		}
		return l.Fade(delay, 255)
	})
}
コード例 #6
0
func StrobeEffectFactory(l devices.DimLamp) deviceapi.Effect {
	return deviceapi.EffectFunc(func(config deviceapi.Config) error {
		strobeConf, ok := config.(*deviceapi.DelayConfig)
		if !ok {
			return errors.New("Not a StrobeConfig")
		}
		delay, err := time.ParseDuration(strobeConf.Delay)
		if err != nil {
			return err
		}
		return l.Stroboscope(delay)
	})
}
コード例 #7
0
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)
	})
}
コード例 #8
0
func NewRandomColorEffect(l devices.StripeLamp) deviceapi.Effect {
	return deviceapi.EffectFunc(func(config deviceapi.Config) error {
		sunriseConf, ok := config.(*deviceapi.DelayConfig)
		if !ok {
			return errors.New("Not a WheelConfig")
		}

		delay, err := time.ParseDuration(sunriseConf.Delay)
		if err != nil {
			return err
		}
		return l.RandomPixelColor(delay)
	})
}
コード例 #9
0
func RainbowEffectFactory(l devices.StripeLamp) deviceapi.Effect {
	return deviceapi.EffectFunc(func(config deviceapi.Config) error {
		rainbowConf, ok := config.(*deviceapi.DelayConfig)
		if !ok {
			return errors.New("Not a RainbowConfig")
		}

		delay, err := time.ParseDuration(rainbowConf.Delay)
		if err != nil {
			return err
		}
		return l.Rainbow(delay)
	})
}
コード例 #10
0
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))
	})
}