Class: Playa::Controller

Inherits:
Object
  • Object
show all
Includes:
Vedeu
Defined in:
lib/playa/controller.rb

Instance Method Summary collapse

Constructor Details

#initialize(args = []) ⇒ Controller



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
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/playa/controller.rb', line 9

def initialize(args = [])
  @player = Player.new

  event :update do
    PlaylistView.render(menu)
    StatusView.render
  end

  event :progress_update, 0.5 do
    ProgressView.render(@player)
    trigger(:refresh)
  end

  event :select do |track|
    trigger(:play, track)
  end

  event :complete do
    trigger(:menu_next)
    trigger(:select, menu.current_item)
  end

  event :key do |key|
    case key
    when :left  then trigger(:rewind)
    when :right then trigger(:forward)
    when ' '    then trigger(:toggle)
    when :up    then trigger(:menu_prev)
    when :down  then trigger(:menu_next)
    when 'q'    then trigger(:_exit_)
    when :enter
      trigger(:menu_select)
      trigger(:select, menu.current_item)
    end
    trigger(:update)
  end

  @player.events.on(:position_change) { trigger(:progress_update) }
  @player.events.on(:complete)        { trigger(:complete) }

  @args          = args
  @playlist_view = PlaylistView.render(menu)
  @status_view   = StatusView.render
  @progress_view = ProgressView.render(@player)
end