Class: XiamiRadio::View::Player

Inherits:
Object
  • Object
show all
Defined in:
lib/xiami_radio/view/player.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(player) ⇒ Player

Returns a new instance of Player.



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/xiami_radio/view/player.rb', line 7

def initialize(player)
  @player = player
  Curses.init_screen
  Curses.noecho
  Curses.stdscr.keypad(true)
  Curses.start_color
  Curses.use_default_colors
  Curses.init_pair(Curses::COLOR_CYAN,Curses::COLOR_CYAN,Curses::COLOR_BLACK)
  Curses.init_pair(Curses::COLOR_RED,Curses::COLOR_RED,Curses::COLOR_BLACK)
  Curses.clear
end

Instance Attribute Details

#playerObject (readonly)

Returns the value of attribute player.



5
6
7
# File 'lib/xiami_radio/view/player.rb', line 5

def player
  @player
end

Instance Method Details

#listen_onObject



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/xiami_radio/view/player.rb', line 28

def listen_on
  Thread.start do
    while (key = Curses.getch)
      case key
        when Curses::KEY_LEFT
          player.rewind
        when Curses::KEY_RIGHT
          player.forward
        when Curses::KEY_DOWN
          player.next
        when 'l'
          XiamiRadio::Notice.push player.track.fav
        when ' '
          player.toggle
        else #
      end
    end
  end
end

#refresh(position) ⇒ Object



19
20
21
22
23
24
25
26
# File 'lib/xiami_radio/view/player.rb', line 19

def refresh(position)
  Curses.clear
  render_title_line player.track
  render_progress_line (position / player.track.duration), player.track.downloader.progress
  render_info_line player.track, position
  render_msg_line
  Curses.refresh
end