xiply

very simple js/html5 audio player
git clone https://git.ce9e.org/xiply.git

commit
10985b63967579bd83ed818436d8ded7b47b1f73
parent
10f1efdb25ea39648d2f837c59dc14a652f62848
Author
Tobias Bengfort <tobias.bengfort@posteo.de>
Date
2019-03-02 21:57
refactor

Diffstat

M xiply.js 42 +++++++++++++++++++++---------------------

1 files changed, 21 insertions, 21 deletions


diff --git a/xiply.js b/xiply.js

@@ -4,49 +4,49 @@
    4     4  * License: GPL-3+
    5     5  */
    6     6 
    7    -1 "use strict";
    8    -1 
    9     7 function init_xiply(container) {
   -1     8 	"use strict";
   -1     9 
   10    10 	var player = document.createElement('audio');
   11    11 	player.setAttribute('controls', true);
   12    12 	container.appendChild(player);
   13    13 
   14    -1 	function dispatchEvent(name, trackTitle) {
   -1    14 	var dispatchEvent = function(name, trackTitle) {
   15    15 		player.dispatchEvent(new CustomEvent(name, {
   16    -1 			'detail': trackTitle
   -1    16 			'detail': trackTitle,
   17    17 		}));
   18    -1 	}
   -1    18 	};
   19    19 
   20    -1 	function _current() {
   21    -1 		return container.getElementsByClassName('current')[0];
   22    -1 	}
   -1    20 	var _current = function() {
   -1    21 		return container.querySelector('.current');
   -1    22 	};
   23    23 
   24    -1 	function _next() {
   25    -1 		var tracks = container.getElementsByClassName('track');
   -1    24 	var _next = function() {
   -1    25 		var tracks = container.querySelectorAll('.track');
   26    26 		var current = _current();
   27    -1 		for (var i=0; i<tracks.length-1; i++) {
   -1    27 		for (var i = 0; i < tracks.length - 1; i++) {
   28    28 			if (tracks[i] === current) {
   29    -1 				return tracks[i+1];
   -1    29 				return tracks[i + 1];
   30    30 			}
   31    31 		}
   32    -1 	}
   -1    32 	};
   33    33 
   34    -1 	function unselect() {
   -1    34 	var unselect = function() {
   35    35 		var current = _current();
   36    36 		if (current) {
   37    37 			current.classList.remove('current');
   38    38 			dispatchEvent('unselectTrack', current.textContent);
   39    39 		}
   40    -1 	}
   -1    40 	};
   41    41 
   42    -1 	function select(element) {
   -1    42 	var select = function(element) {
   43    43 		if (element) {
   44    44 			element.classList.add('current');
   45    45 			dispatchEvent('selectTrack', element.textContent);
   46    46 		}
   47    -1 	}
   -1    47 	};
   48    48 
   49    -1 	function load(track) {
   -1    49 	var load = function(track) {
   50    50 		unselect();
   51    51 		if (track) {
   52    52 			select(track);
@@ -54,9 +54,9 @@ function init_xiply(container) {
   54    54 			player.title = track.textContent;
   55    55 			player.play();
   56    56 		}
   57    -1 	}
   -1    57 	};
   58    58 
   59    -1 	function loadNext() {
   -1    59 	var loadNext = function() {
   60    60 		var next = _next();
   61    61 		if (next) {
   62    62 			load(next);
@@ -65,7 +65,7 @@ function init_xiply(container) {
   65    65 			player.src = null;
   66    66 			player.title = null;
   67    67 		}
   68    -1 	}
   -1    68 	};
   69    69 
   70    70 	container.addEventListener('click', function(e) {
   71    71 		if (e.target.classList.contains('track') && e.button === 0) {