From 8cdd4504f1b4bbbd06622edb5063d3696ea0295b Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Sat, 15 Nov 2014 23:55:45 -0800 Subject: [PATCH] Apply personal style to wsz skin PR --- skin.js | 57 +++++++++++++++++++++---------------------------------- winamp.js | 9 ++------- 2 files changed, 24 insertions(+), 42 deletions(-) diff --git a/skin.js b/skin.js index 82430089..0a56f9b8 100644 --- a/skin.js +++ b/skin.js @@ -34,52 +34,39 @@ SkinManager = function() { ".shade #position::-moz-range-thumb": "TITLEBAR.BMP", } - // For local dev, we want to use the asset we have locally - this.useLocalDefaultSkin = function() { - self.setSkinByUrl('skins/base-2.91.wsz'); - } - - // I have a collection of skins on GitHub to make loading remote skins - // easier. rawgit.com changes this into a free CDN - this.setSkinByName = function(name) { - url = "https://cdn.rawgit.com/elliots/winamp2-js/master/skins/" + name + ".wsz"; - self.setSkinByUrl(url); - } - // Given the url of an original Winamp WSZ file, set the current skin this.setSkinByUrl = function(url) { + JSZipUtils.getBinaryContent(url, function(err, data) { + if (err) { + alert('Failed to load skin ' + url + ' : ' + err); + } + try { + this._setSkinByDataBlob(data); + } catch(e) { + alert('Failed to load skin ' + url + ' : ' + e.message); + } + }.bind(this)); + } - JSZipUtils.getBinaryContent(url, function(err, data) { + // Given a raw blob of a Winamp WSZ file, set the current skin + this._setSkinByDataBlob = function(data) { + var zip = new JSZip(data); - if (err) { - alert('Failed to load skin ' + url + ' : ' + err); - } - - try { - - var zip = new JSZip(data); - - var style = document.getElementById('skin'); - var cssRules = ''; - for(var selector in self._skinImages) { + var style = document.getElementById('skin'); + var cssRules = ''; + for(var selector in self._skinImages) { var file = zip.filter(function (relativePath, file){ - return new RegExp("(^|/)" + self._skinImages[selector], 'i').test(relativePath) + return new RegExp("(^|/)" + self._skinImages[selector], 'i').test(relativePath) })[0]; if (!file) { - console.log("Warning: Couldn't find file:" + self._skinImages[selector]) + console.log("Warning: Couldn't find file:" + self._skinImages[selector]) } else { - var value = "background-image: url(data:image/bmp;base64," + btoa(file.asBinary()) + ")" - cssRules += selector + "{" + value + "}\n"; + var value = "background-image: url(data:image/bmp;base64," + btoa(file.asBinary()) + ")" + cssRules += selector + "{" + value + "}\n"; } - } - style.appendChild(document.createTextNode(cssRules)); - - } catch(e) { - alert('Failed to load skin ' + url + ' : ' + e.message); } - }) - + style.appendChild(document.createTextNode(cssRules)); } } diff --git a/winamp.js b/winamp.js index 36bfcb77..108d85d9 100755 --- a/winamp.js +++ b/winamp.js @@ -480,8 +480,7 @@ volume = anchorArgument('volume', 50); balance = anchorArgument('volume', 0); file = anchorArgument('m', 'https://mediacru.sh/download/Q2HAoRHE-JvD.mp3'); fileName = anchorArgument('name', "1. DJ Mike Llama - Llama Whippin' Intro (0:05)"); -skin = anchorArgument('skin', "base-2.91"); -skinUrl = anchorArgument('skin-url', false); +skinUrl = anchorArgument('skin-url', 'https://cdn.rawgit.com/captbaritone/winamp2-js/master/skins/base-2.91.wsz'); winamp = new Winamp(); // XXX These should be moved to a constructor, but I can't figure out how @@ -489,8 +488,4 @@ winamp.setVolume(volume); winamp.setBalance(balance); winamp.loadFile(file, fileName); winamp.marqueeLoop(); -if(skinUrl) { - winamp.skinManager.setSkinByUrl(skinUrl); -} else { - winamp.skinManager.setSkinByName(skin); -} +winamp.skinManager.setSkinByUrl(skinUrl);