Esempio n. 1
0
 def __init__(self, parser, animations):
     Arbapp.__init__(self, parser)
     config = animations[self.args.type]
     self.durations = [int(config['dur_min']*config['rate']), int(config['dur_max']*config['rate'])]
     self.rate = Rate(config['rate'])
     if config['colors'][-1]!=config['colors'][0]:
         config['colors'].append(config['colors'][0])
     self.colors = config['colors']
     self.generator = self.generators[config['generator_id']]
     self.brightness = Brightness(2, True)
     self.brightness.start()
Esempio n. 2
0
class ColorDemo(Arbapp):
    generators = [gen_random_flashing, gen_sweep_async, gen_sweep_rand, ]

    def __init__(self, parser, animations):
        Arbapp.__init__(self, parser)
        config = animations[self.args.type]
        self.durations = [int(config['dur_min']*config['rate']), int(config['dur_max']*config['rate'])]
        self.rate = Rate(config['rate'])
        if config['colors'][-1]!=config['colors'][0]:
            config['colors'].append(config['colors'][0])
        self.colors = config['colors']
        self.generator = self.generators[config['generator_id']]
        self.brightness = Brightness(2, True)
        self.brightness.start()

    def run(self):
        # Construct all pixel generators
        generators = [[None for w in range(self.width)] for h in range(self.height)]
        for h in range(self.height):
            for w in range(self.width):
                duration = random.randrange(0, self.durations[1]-self.durations[0])
                generators[h][w] = self.generator(self.durations[0], int(2./self.rate.sleep_dur), duration, self.colors)

        # Browse all pixel generators at each time
        while True:
            brightness = self.brightness.brightness
            with self.model:
                for h in range(self.height):
                    for w in range(self.width):
                        try:
                            color = generators[h][w].next()
                        except StopIteration:
                            pass
                        else:
                            self.model.set_pixel(h, w, color*brightness)
            self.rate.sleep()