48 lines
1.2 KiB
CoffeeScript
48 lines
1.2 KiB
CoffeeScript
class BeatHaven.Models.Track extends Backbone.Model
|
|
|
|
play: ->
|
|
if @.get("sm_obj")?
|
|
this.start()
|
|
else
|
|
this.find_and_start()
|
|
|
|
pause: ->
|
|
BH.Player.pause()
|
|
this.node().addClass("paused")
|
|
|
|
start: ->
|
|
BH.Player.update_title(
|
|
artists: @.get("artists")
|
|
track: @.get("title")
|
|
)
|
|
unless @.get("sm_obj")?
|
|
this.add_to_library(autoload: true, autoplay: false)
|
|
BH.Player.play(this)
|
|
$(".artist-page .tracks li[data-id]").removeClass("now-playing").removeClass("paused")
|
|
this.node().addClass("now-playing")
|
|
|
|
find_and_start: ->
|
|
self = this
|
|
BH.VK.Music.search @.get("artists")[0], @.get("title"), @.get("length"), (url) ->
|
|
self.set(url: url)
|
|
self.start()
|
|
|
|
add_to_library: (params) ->
|
|
obj = soundManager.createSound
|
|
id: @.get("id")
|
|
url: @.get("url")
|
|
autoLoad: params.autoload
|
|
autoPlay: params.autoplay
|
|
whileloading: ->
|
|
BH.Player.update_buffer_bar(this)
|
|
whileplaying: ->
|
|
BH.Player.update_progress_bar(this)
|
|
onfinish: ->
|
|
BH.Player.next()
|
|
ondataerror: ->
|
|
BH.Player.next()
|
|
@.set("sm_obj", obj)
|
|
|
|
node: ->
|
|
$(".artist-page .tracks li[data-id='#{@.get("id")}']")
|