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);
}
function playlist_del() {
- mpc.deleteid(this.title);
+ 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 = ({
cell = row.insertCell(-1);
cell.id = 'playlist_del';
cell.innerHTML = '¤';
- cell.title = song.Id;
+ 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;
});
/* 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',