Skip to content
Snippets Groups Projects
Commit a92cb2be authored by leo's avatar leo
Browse files

+global darken/lighten feature

parent 13bb2c66
No related branches found
No related tags found
No related merge requests found
from blinkenbase.animation import Animation
import blinkenbase.blinkenfoo as blinkenfoo
from blinkenbase.blinkenroom import Blinkenroom
#from blinkenbase.blinkenroom import Blinkenroom
import blinkenbase.blinkenroom as blinkenroom
from blinkenbase.Color import Color
import random
......@@ -29,7 +30,7 @@ class Blink(object):
class random_color(Animation):
def init_animation(self):
self.blinkenroom = Blinkenroom(blinkenfoo.DEVICE_LIST_LOUNGE)
self.blinkenroom = blinkenroom.BLINKENROOM_LOUNGE
self.set_fps(20)
self.blink_dict = {}
self.name = "random_color"
......
......@@ -3,6 +3,8 @@ from blinkenbase.blinkenroom import Blinkenroom
import blinkenbase.blinkenroom
import blinkenbase.animation
import time
from blinkenbase.blinkenroom import BLINKENROOM_LOUNGE
import _thread
#from darken import darken
class AnimationHandler(object):
......@@ -31,7 +33,7 @@ class AnimationHandler(object):
for running in self.running_animations.values():
running.stop()
self.running_animations = {}
self.last_frame = blinkenroom.BLINKENROOM_LOUNGE.get_last_frame()
self.last_frame = BLINKENROOM_LOUNGE.get_last_frame()
def pause_animation(self, p_animation_name):
if p_animation_name in self.running_animations:
......@@ -52,13 +54,8 @@ class AnimationHandler(object):
animation.resume()
def start_animation(self, p_name, p_animation_args):
#def start_animation(self, p_name):
p_name = p_name.lower()
#if p_name in self.running_animations:
# print("Animation already running")
# return self.ERROR_ANIMATION_RUNNING
animation_class = None
try:
exec("from animations.%s import %s" % (p_name, p_name))
......@@ -95,14 +92,36 @@ class AnimationHandler(object):
###Light-Level###
#################
def _thread_handler_darken(self, a, b):
f = 100
while f > 0:
BLINKENROOM_LOUNGE.set_brightness(f)
time.sleep(0.05)
f -= 1
self.pause_all_animations()
def _thread_handler_lighten(self, a, b):
f = 1
self.resume_all_animations()
while f <= 100:
BLINKENROOM_LOUNGE.set_brightness(f)
time.sleep(0.05)
f += 1
def darken(self, p_args):
self.stop_all_animations()
darken_dicts = {
"frame": self.last_frame,
"rate": 30,
"steps": 100
}
animation = darken()
animation.set_args(darken_dicts)
animation.init_animation()
animation.start()
_thread.start_new_thread(self._thread_handler_darken, (None, None))
def lighten(self, p_args):
_thread.start_new_thread(self._thread_handler_lighten, (None, None))
# def darken(self, p_args):
# self.stop_all_animations()
# darken_dicts = {
# "frame": self.last_frame,
# "rate": 30,
# "steps": 100
# }
# animation = darken()
# animation.set_args(darken_dicts)
# animation.init_animation()
# animation.start()
......@@ -27,10 +27,18 @@ class Blinkenfoo(object):
self._reset_buffer()
self.current_fps = None
if p_brightness < 100:
self.brightness_factor = (100.0 / p_brightness)
else:
self.brightness_factor = 1
#self.brightness_factor = p_brightness / 100.0
super(Blinkenfoo, self).__setattr__("brightness_factor", 100.0 / p_brightness)
def __setattr__(self, p_key, p_value):
if p_key == "brightness_factor":
f = 0
if p_value <= 100:
f = (100.0 / p_value)
else:
f = 100.0
p_value = f
super(Blinkenfoo, self).__setattr__(p_key, p_value)
def _split_to_byte(self, p_number):
"""
......@@ -128,6 +136,9 @@ class Blinkenfoo(object):
if p_reset:
self._reset_buffer()
def clear(self):
self._reset_buffer()
self.flush()
##################
###End of class###
##################
......@@ -136,7 +147,7 @@ class Blinkenfoo(object):
SPHERES = Blinkenfoo("Spheres", "ESP_35D447.warpzone", 9, 20)
PANEL = Blinkenfoo("Panel", "ESP_35d9E4.warpzone", 8, 12)
WARP_SIGN = Blinkenfoo("Warp-Sign", "ESP_133C4C.warpzone", 1, 25)
DMX = Blinkenfoo("DMX", "10.0.3.27", 5, 10, p_brightness = 50)
DMX = Blinkenfoo("DMX", "10.0.3.27", 5, 10, p_brightness = 70)
CUBES = Blinkenfoo("Cubes", "cubes.warpzone", 8, 5)
TISCH = Blinkenfoo("Tisch", "tisch.warpzone", 700)
......
......@@ -43,6 +43,14 @@ class Blinkenroom:
###public methods###
####################
def set_brightness(self, p_level=100):
"""
Sets the brightness of every blinkendevice in this blinkenroom.
Max is 100, min 0
"""
for device in self.device_list:
device.brightness_factor = p_level
def send_frame(self, p_frame, p_offset = 0):
"""
Sends an whole frame to all blinkenfoo devices. The frames length has to
......@@ -118,4 +126,8 @@ class Blinkenroom:
frame += device.buffer
return frame
def clear(self):
for device in self.device_list:
device.clear()
BLINKENROOM_LOUNGE = Blinkenroom(blinkenfoo.DEVICE_LIST_LOUNGE)
......@@ -59,6 +59,7 @@ command_handler_dict["exit"] = handler.stop_all_animations
command_handler_dict["resume"] = handler_resume
command_handler_dict["pause"] = handler_pause
command_handler_dict["darken"] = handler.darken
command_handler_dict["lighten"] = handler.lighten
client.connect("warpsrvint.warpzone", 1883, 60)
client.loop_forever()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment