class Soundcloud9000::Controllers::PlayerController

The top section player controller Displays current track position Equalizer and track information

Public Class Methods

new(view, client) click to toggle source
# File lib/soundcloud9000/controllers/player_controller.rb, line 11
def initialize(view, client)
  super(view)

  @client = client
  @player = Models::Player.new

  @player.events.on(:progress) do
    @view.render
  end

  @player.events.on(:complete) do
    events.trigger(:complete)
  end

  @view.player = @player

  events.on(:key) do |key|
    if @player.playing?
      case key
      when :left
        @player.rewind
      when :right
        @player.forward
      when :one
        @player.seek_position(1)
      when :two
        @player.seek_position(2)
      when :three
        @player.seek_position(3)
      when :four
        @player.seek_position(4)
      when :five
        @player.seek_position(5)
      when :six
        @player.seek_position(6)
      when :seven
        @player.seek_position(7)
      when :eight
        @player.seek_position(8)
      when :nine
        @player.seek_position(9)
      end
    end
    if key == :space
      if @player.track
        @player.toggle
        @view.render
      end
    end
  end
end

Public Instance Methods

play(track) click to toggle source
# File lib/soundcloud9000/controllers/player_controller.rb, line 63
def play(track)
  if track.nil?
    UI::Input.error('No track currently selected. Use f to switch to '\
                    "#{@client.current_user.username}'s favorites, or"\
                    ' s to switch to their playlists/sets.')
  else
    location = @client.location(track.stream_url)
    @player.play(track, location)
  end
end