lib/pixo/renderer.rb in pixo-0.2.6 vs lib/pixo/renderer.rb in pixo-0.3.0

- old
+ new

@@ -1,15 +1,48 @@ module Pixo class Renderer attr_reader :service, :service_thread - def initialize() - i, o, t = Open3.popen2('bundle exec pixo') - @service = Pixo::Ipc::Service.new(o, i) - @service_thread = Thread.new { self.service.run } + class OnKey + def initialize(key, scancode, action, mods) + @key = key + @scancode = scancode + @action = action + @mods = mods + end + + def call(service) + service.on_key(@key, @scancode, @action, @mods) + self + end end + class Service < Pixo::Ipc::Service + attr_reader :renderer + + def initialize(renderer) + @renderer = renderer + i, o, t = Open3.popen2('bundle exec pixo') + super(o, i) + @service_thread = Thread.new { self.run } + end + + + def on_key(key, scancode, action, mods) + renderer.on_key(key, scancode, action, mods) + end + + end + + def initialize + @service = Pixo::Renderer::Service.new(self) + end + + def on_key(key, scancode, action, mods) + + end + def pattern_names service.request(Pixo::Renderer::GetPatternNames.new) end def active_pattern @@ -46,69 +79,69 @@ def initialize(hostname, count) @hostname = hostname @count = count end - def call - Pixo::Application.instance.post Proc.new { |app| app.add_fadecandy(Pixo::Native::FadeCandy.new(@hostname, @count)) } + def call(service) + service.user_data.post Proc.new { |app| app.add_fadecandy(Pixo::Native::FadeCandy.new(@hostname, @count)) } self end end class GetPatternName - def call - Pixo::Application.instance.patterns.key(Pixo::Application.instance.active_pattern) + def call(service) + service.user_data.patterns.key(service.user_data.active_pattern) end end class GetPatternNames - def call - Pixo::Application.instance.patterns.keys + def call(service) + service.user_data.patterns.keys end end class SetPattern - def initialize(pattern_name) + def initialize(pattern_name = nil) @pattern_name = pattern_name end - def call - pattern = Pixo::Application.instance.patterns[@pattern_name] - Pixo::Application.instance.active_pattern = pattern if pattern + def call(service) + pattern = service.user_data.patterns[@pattern_name] + service.user_data.active_pattern = pattern @pattern_name end end class GetBrightness - def call - Pixo::Application.instance.brightness + def call(service) + service.user_data.brightness end end class SetBrightness def initialize(brightness) @brightness = brightness end - def call - Pixo::Application.instance.brightness = @brightness + def call(service) + service.user_data.brightness = @brightness end end class GetLedsOn - def call - Pixo::Application.instance.leds_on + def call(service) + service.user_data.leds_on end end class SetLedsOn def initialize(leds_on) @leds_on = leds_on end - def call - Pixo::Application.instance.leds_on = @leds_on + def call(service) + service.user_data.leds_on = @leds_on end end end end