X-Git-Url: https://git.wh0rd.org/?p=chrome-ext%2Fmusic-player-client.git;a=blobdiff_plain;f=main.js;h=208f996183fdad1ea0ad87420a0d734b603e7be9;hp=aa4c7bd961f329b5506724635ae7e4c7b6b72908;hb=999ae517c6544938a712422c9dd3cc210a319ebd;hpb=ee26ebe43d89016c3014e030041e363e337f4ff5 diff --git a/main.js b/main.js index aa4c7bd..208f996 100644 --- a/main.js +++ b/main.js @@ -14,6 +14,10 @@ TcpClientSender.prototype.send = function(data, cb) { TcpClientSender.prototype.poll = function() { this.tcpclient.poll(); } +TcpClientSender.prototype.reconnect = function() { + this.tcpclient.disconnect(); + this.tcpclient.connect(); +} function tramp_mpc_recv(data) { mpc.recv(data); @@ -110,6 +114,7 @@ function tramp_mpc_consume() { mpc.consume(val); setToggleButton(this, val); } +function tramp_mpc_deleteid() { mpc.deleteid(this.title); } function tramp_mpc_next() { mpc.next(); } function tramp_mpc_pause() { mpc.pause(); } function tramp_mpc_play() { mpc.play(); } @@ -272,6 +277,16 @@ function pretty_time(time) { return ret + ("00" + sec).substr(-2); } +function playlist_del() { + mpc.deleteid(this.song_id); + this.parentNode.remove(); +} + +function playlist_play() { + mpc.playid(this.song_id); + this.parentNode.style.fontWeight = 'bold'; +} + function update_ui(state, cmd) { if (typeof(state) == 'string') { ui_mpc_status.innerText = ({ @@ -314,9 +329,19 @@ function update_ui(state, cmd) { if (song.Pos == currentsong.Pos) row.style.fontWeight = 'bold'; + cell = row.insertCell(-1); + cell.id = 'playlist_del'; + cell.innerHTML = '¤'; + cell.song_id = song.Id; + cell.title = 'delete'; + cell.onclick = playlist_del; + cell = row.insertCell(-1); cell.innerText = song.Pos; cell.style.textAlign = 'right'; + cell.song_id = song.Id; + cell.title = 'play'; + cell.onclick = playlist_play; if ('Artist' in song) { row.insertCell(-1).innerText = song.Artist; @@ -331,20 +356,25 @@ function update_ui(state, cmd) { }); /* Update the status tab. */ - var time; - if ('time' in state) + var time, percent; + if ('time' in state) { // When stopped, there is no time field at all. time = state.time.split(':'); - else + percent = Math.floor((0.0 + time[0]) * 100 / (0.0 + time[1])); + } else { time = [0, 0]; + percent = 0; + } ui_mpc_seekcur.max = time[1]; ui_mpc_seekcur.value = time[0]; - percent = Math.floor((0.0 + time[0]) * 100 / (0.0 + time[1])); ui_mpc_seekcur.title = 'seekcur (' + percent + '%)'; ui_mpc_currtime.innerText = [pretty_time(time[0]), pretty_time(time[1]), percent + '%'].join(' / '); - ui_mpc_setvol.value = state.volume; - ui_mpc_setvol.title = 'setvol (' + state.volume + '%)'; + ui_mpc_setvol.title = 'setvol'; + if ('volume' in state) { + ui_mpc_setvol.value = state.volume; + ui_mpc_setvol.title += ' (' + state.volume + '%)'; + } [ 'consume', 'random', 'repeat', 'single',