Sha256: e8119383fc7c14bbd71b5c65377cddb5b02896fdf9d0e8b9f0f824cf3ae225dd

Contents?: true

Size: 875 Bytes

Versions: 20

Compression:

Stored size: 875 Bytes

Contents

require 'rubygems'
require 'sane'
require 'Win32API'

# does the jruby check inline

class KeyboardInput

 def initialize fella
  @fella = fella
 end

 def start_thread
  Thread.new { loop { 
    print get_line_printout
    sleep 0.1
   } }
 end

 def get_line_printout
    status  = @fella.status
    # scary hard coded values here...
    " " * 20 + "\b"*150 + status
 end

 def getch
  @getch ||= Win32API.new('crtdll', '_getch', [], 'L')
  @getch.call
 end

 def handle_keystrokes_forever
   raise 'only jruby supported, as it looks just too messy in normal ruby' unless OS.java?
   while(ch = getch)
     exit if ch == 3 # ctrl+c
     # lodo handle arrow keys, too, which is a bit more complicated...
     handle_keystroke ch
   end
 end

 def handle_keystroke ch
   string = "" << ch
   @fella.keyboard_input(string)
 end

end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
sensible-cinema-0.17.0 lib/keyboard_input.rb
sensible-cinema-0.16.7 lib/keyboard_input.rb
sensible-cinema-0.16.5 lib/keyboard_input.rb
sensible-cinema-0.16.3 lib/keyboard_input.rb
sensible-cinema-0.16.2 lib/keyboard_input.rb
sensible-cinema-0.16.1 lib/keyboard_input.rb
sensible-cinema-0.15.0 lib/keyboard_input.rb
sensible-cinema-0.14.6 lib/keyboard_input.rb
sensible-cinema-0.14.5 lib/keyboard_input.rb
sensible-cinema-0.14.4 lib/keyboard_input.rb
sensible-cinema-0.14.3 lib/keyboard_input.rb
sensible-cinema-0.14.1 lib/keyboard_input.rb
sensible-cinema-0.13.1 lib/keyboard_input.rb
sensible-cinema-0.13.0 lib/keyboard_input.rb
sensible-cinema-0.12.0 lib/keyboard_input.rb
sensible-cinema-0.11.0 lib/keyboard_input.rb
sensible-cinema-0.10.2 lib/keyboard_input.rb
sensible-cinema-0.10.1 lib/keyboard_input.rb
sensible-cinema-0.9.7 lib/keyboard_input.rb
sensible-cinema-0.9.4 lib/keyboard_input.rb