summaryrefslogtreecommitdiff
path: root/frontend/static/js/src/soundcloud.js
diff options
context:
space:
mode:
authorPepper <pepper@scannerjammer.com>2015-05-20 11:16:13 -0400
committerPepper <pepper@scannerjammer.com>2015-05-20 11:16:13 -0400
commita4916103efb2d97896c456ff0e83064b21e85d25 (patch)
treeb3eb529e4b96375109626bbeada35d4f8a2667ee /frontend/static/js/src/soundcloud.js
parent3790eedc2f48c725c586b8c7b924875fedbeb7b4 (diff)
first commit in a while
Diffstat (limited to 'frontend/static/js/src/soundcloud.js')
-rw-r--r--frontend/static/js/src/soundcloud.js156
1 files changed, 156 insertions, 0 deletions
diff --git a/frontend/static/js/src/soundcloud.js b/frontend/static/js/src/soundcloud.js
new file mode 100644
index 0000000..22d7aa3
--- /dev/null
+++ b/frontend/static/js/src/soundcloud.js
@@ -0,0 +1,156 @@
+var Soundcloud =
+ {
+ type: "soundcloud",
+ loaded: false,
+ pending: false,
+ playing: false,
+ player: null,
+ playerId: null,
+ timeout: null,
+ video: null,
+ width: "100%",
+ height: "100%",
+ volume: 100,
+ play: function (video)
+ {
+ d.warn("SOUNDCLOUD PLAY "+video.key)
+ if (video.error)
+ return Soundcloud.error()
+ if (Soundcloud.playing)
+ Soundcloud.stop()
+ $("#screen").html("<div id='soundcloud'></div><div id='soundcloud-img'></div><div id='soundcloud-dl'></div>")
+ Soundcloud.video = video
+ Soundcloud.playing = false
+
+ if (Soundcloud.player)
+ {
+ Soundcloud.player = null
+ swfobject.removeSWF("soundcloud")
+ }
+
+ var flashvars = { enable_api: true, object_id: "soundcloud", url: video.src, theme_color: "#657b83", }
+ var attributes = { id: "soundcloud", name: "soundcloud" }
+ var params = { allowscriptaccess: "always", wmode: "opaque", }
+
+ swfobject.embedSWF("http://player.soundcloud.com/player.swf", "soundcloud", "81", "81", "9.0.0",
+ "expressInstall.swf", flashvars, params, attributes, Soundcloud.playerDidLoad);
+ },
+ playerDidLoad: function (e)
+ {
+ if (e.success === false)
+ return Soundcloud.error("failed to load")
+ d.warn("LOADED")
+ Soundcloud.player = swfobject.getObjectById('soundcloud')
+ $("#ytscreen").css("z-index", -2)
+ // instead of raising events, the soundcloud swf calls it's js api directly
+ window.soundcloud = { onPlayerReady: Soundcloud.ready, onMediaEnd: Soundcloud.finish }
+ },
+ ready: function ()
+ {
+ d.warn("READY")
+ Soundcloud.playing = true
+ Soundcloud.player = swfobject.getObjectById('soundcloud')
+ if (Soundcloud.player)
+ {
+ Soundcloud.player.api_play()
+ Soundcloud.player.api_setVolume(Soundcloud.volume)
+ }
+ Soundcloud.report()
+ },
+ report: function ()
+ {
+ if (! Soundcloud.player)
+ return Soundcloud.error()
+ var track = Soundcloud.player.api_getCurrentTrack()
+ $("#video-title").html(track.title)
+ if (track.downloadable && track.download_url !== "undefined" && track.download_url !== undefined)
+ $("#soundcloud-dl").html('<a href="'+track.download_url+'" target="_parent">download</a>')
+ else
+ $("#soundcloud-dl").html("")
+ var art = ''
+ if (track.artwork)
+ art = track.artwork.split("?")[0].replace('large','original')
+ else if (track.user && track.user.avatarUrl)
+ art = track.user.avatarUrl.split("?")[0].replace('large','crop')
+ if (art.length)
+ {
+ $("#soundcloud-img").html("<img src='"+art+"' id='sc-art' />")
+ $("#sc-art").bind("error", function(){$("#sc-art").hide()})
+ }
+ return
+ d.warn("____________")
+ for (i in track)
+ d.warn("<b>"+i+":</b> "+track[i])
+ d.warn("____________")
+ var user = track.user
+ for (i in user)
+ d.warn("<b>"+i+":</b> "+user[i])
+ d.warn("____________")
+ },
+ toggle: function ()
+ {
+ d.warn("TOGGLE PLAYBACK")
+ if (Soundcloud.player)
+ return Soundcloud.player.api_toggle()
+ return false
+ },
+ error: function (s)
+ {
+ Player.error("SOUNDCLOUD "+s)
+ Soundcloud.finish()
+ },
+ setVolume: function (vol)
+ {
+ Soundcloud.volume = vol
+ if (Soundcloud.player)
+ Soundcloud.player.api_setVolume(vol)
+ },
+ pause: function ()
+ {
+ d.warn("PAUSED PLAYBACK")
+ Soundcloud.playing = false
+ if (Soundcloud.player)
+ Soundcloud.player.api_pause()
+ return true
+ },
+ resume: function ()
+ {
+ d.warn("RESUME PLAYBACK")
+ Soundcloud.playing = true
+ if (Soundcloud.player)
+ Soundcloud.player.api_play()
+ return false
+ },
+ stop: function ()
+ {
+ d.warn("SOUNDCLOUD STOP")
+ if (Soundcloud.player)
+ Soundcloud.player.api_stop()
+ Soundcloud.playing = false
+ },
+ finish: function ()
+ {
+ d.warn("SOUNDCLOUD FINISH")
+ Soundcloud.playing = false
+ swfobject.removeSWF("soundcloud")
+ Player.finish()
+ },
+ load: function ()
+ {
+ d.warn("LOADING SOUNDCLOUD")
+ Soundcloud.loaded = true
+ },
+ unload: function ()
+ {
+ d.warn("SOUNDCLOUD UNLOADED")
+ swfobject.removeSWF("soundcloud")
+ Soundcloud.loaded = false
+ Soundcloud.playing = false
+ },
+ init: function ()
+ {
+ d.warn("SOUNDCLOUD INIT")
+ window.soundcloud = Soundcloud
+ }
+ }
+Player.register(Soundcloud)