Class: SamsungTvSearchKeyboard

Inherits:
Keyboard show all
Defined in:
lib/keyboard/samsung_tv/samsung_tv_search_keyboard.rb

Constant Summary

Constants inherited from Keyboard

Keyboard::DEBUG

Instance Method Summary collapse

Methods inherited from Keyboard

#displayed?, #reset, #type?

Constructor Details

#initialize(*args) ⇒ SamsungTvSearchKeyboard

Returns a new instance of SamsungTvSearchKeyboard.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/keyboard/samsung_tv/samsung_tv_search_keyboard.rb', line 6

def initialize(*args)
  super(*args)
  # see Keyboard for explanation of layouts
  letters = [
      [:SPACE, :BACKSPACE, 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'],
      [:LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :NUMBERS, :NUMBERS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS]
  ]
  numbers = [
      [:SPACE, :BACKSPACE, '1', '2', '3', '4', '5', '6', '7', '8', '9', '0'],
      [:LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :NUMBERS, :NUMBERS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS]
  ]
  symbols = [
      [:SPACE, :BACKSPACE, '-', "'", '?', '.', '!', '@', '#', '$', '&', '%', '^', '<', '>', ':', ';', '=', '+', '*', ','],
      [:LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :LETTERS, :NUMBERS, :NUMBERS, :NUMBERS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS, :SYMBOLS]
  ]
  @layouts << KeyboardLayout.new(letters, [0, 2], nav_to_key: :LETTERS, name: 'search letters')
  @layouts << KeyboardLayout.new(numbers, [1, 5], nav_to_key: :NUMBERS, name: 'search numbers')
  @layouts << KeyboardLayout.new(symbols, [1, 12], nav_to_key: :SYMBOLS, name: 'search symbols')
  @key_delay = 2.sec
  @wrap_cols = true
  # Do not traverse from any of the multi-column keys except to the key above-left of it, since they always left-justify.
  # Do not traverse from LETTERS to SPACE or BACKSPACE as it is not possible.
  # Do not traverse from LETTERS to SYMBOLS and vice versa since that row doesn't actually wrap.
  @deny_traversals = [
      [:LETTERS, 'A'], [:LETTERS, 'B'], [:LETTERS, 'C'], [:LETTERS, 'D'], [:LETTERS, 'E'], [:LETTERS, 'F'],
      [:LETTERS, 'G'], [:LETTERS, 'H'], [:LETTERS, 'J'], [:LETTERS, 'K'], [:NUMBERS, 'M'], [:SYMBOLS, 'O'],
      [:SYMBOLS, 'P'], [:SYMBOLS, 'Q'], [:SYMBOLS, 'R'], [:SYMBOLS, 'S'], [:SYMBOLS, 'T'], [:SYMBOLS, 'U'],
      [:SYMBOLS, 'V'], [:SYMBOLS, 'W'], [:SYMBOLS, 'X'], [:SYMBOLS, 'Y'], [:SYMBOLS, 'Z'],
      [:LETTERS, '2'], [:LETTERS, '3'], [:NUMBERS, '5'], [:SYMBOLS, '7'], [:SYMBOLS, '8'], [:SYMBOLS, '9'],
      [:SYMBOLS, '0'],
      [:LETTERS, '-'], [:LETTERS, "'"], [:LETTERS, '?'], [:LETTERS, '.'], [:LETTERS, '!'], [:LETTERS, '#'],
      [:NUMBERS, '&'], [:NUMBERS, '%'], [:SYMBOLS, '<'], [:SYMBOLS, '>'], [:SYMBOLS, ':'], [:SYMBOLS, ';'],
      [:SYMBOLS, '='], [:SYMBOLS, '+'], [:SYMBOLS, '*'], [:SYMBOLS, ','],
      [:LETTERS, :SPACE], [:LETTERS, :BACKSPACE],
      [:LETTERS, :SYMBOLS], [:SYMBOLS, :LETTERS]
  ]
end