COMMAND = 3
WRITEPLAYLIST = 4
ADD = 5
+ REMOVE = 6
def __init__(self, session, func=LIST):
Source.__init__(self)
self.result = self.command(cmd)
elif func is self.WRITEPLAYLIST:
self.result = self.writePlaylist(cmd)
+ elif func is self.REMOVE:
+ self.result = self.removeFile(cmd)
elif func is self.ADD:
self.result = self.addFile(cmd)
mp.playlist.updateList()
return (True, "%s added to playlist and/or playback started" % (file))
+ def removeFile(self, file):
+ # TODO: fix error handling
+ mp = self.tryOpenMP()
+ if mp is None:
+ return (False, "mediaplayer not installed")
+
+ ref = eServiceReference(file)
+ if not ref.valid():
+ if not os_path.isfile(file):
+ return (False, "%s is neither a valid reference nor a valid file" % file)
+ ref = eServiceReference(4097, 0, file)
+
+ serviceRefList = mp.playlist.getServiceRefList()
+ i = 0
+ for mpref in serviceRefList:
+ if mpref == ref:
+ mp.playlist.deleteFile(i)
+ mp.playlist.updateList()
+ return (True, "%s removed from playlist" % file)
+ i += 1
+
+ return (False, "%s not found in playlist" % file)
+
def writePlaylist(self, param):
filename = "playlist/%s.e2pls" % param
from Tools.Directories import resolveFilename, SCOPE_CONFIG
self["FileList"] = MP(session, func=MP.LIST)
self["PlayFile"] = MP(session, func=MP.PLAY)
+ self["RemoveFile"] = MP(session, func=MP.REMOVE)
self["Command"] = MP(session, func=MP.COMMAND)
self["WritePlaylist"] = MP(session, func=MP.WRITEPLAYLIST)
var url_mediaplayerlist= "/web/mediaplayerlist?types=audio&path="; // plus full qualified path
var url_mediaplayerplay= "/web/mediaplayerplay?file="; // plus file-serviceref
+var url_mediaplayerremove= "/web/mediaplayerremove?file="; // plus file-serviceref
var url_mediaplayercmd= "/web/mediaplayercmd?command="; // plus command
-var url_mediaplayerwrite= "/web/mediaplayerwrite?filename="; // plus command
+var url_mediaplayerwrite= "/web/mediaplayerwrite?filename="; // plus filename
var url_filelist = "/web/mediaplayerlist?path="; // plus full qualified path
var satellitesTv = '1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 195) || (type == 25) FROM SATELLITES ORDER BY name';
var satellitesRadio ='1:7:2:0:0:0:0:0:0:0:(type == 2) FROM SATELLITES ORDER BY name';
var allTv = '1:7:1:0:0:0:0:0:0:0:(type == 1) || (type == 17) || (type == 195) || (type == 25) ORDER BY name';
-var allRadio = '1:7:2:0:0:0:0:0:0:0:(type == 2) ORDER BY name';
\ No newline at end of file
+var allRadio = '1:7:2:0:0:0:0:0:0:0:(type == 2) ORDER BY name';
//MediaPlayer
function sendMediaPlayer(command) {
- debug("[playFile] loading sendMediaPlayer");
+ debug("[sendMediaPlayer] called");
doRequest( url_mediaplayercmd+command );
}
}
+function deleteFile(sref) {
+ debug("[deleteFile] called");
+ mediaPlayerStarted = true;
+ doRequest( url_mediaplayerremove+sref );
+}
+
+
function openMediaPlayerPlaylist() {
- debug("[playFile] loading openMediaPlayerPlaylist");
+ debug("[openMediaPlayerPlaylist] called");
doRequest(url_mediaplayerlist+"playlist", incomingMediaPlayer, false);
}
function writePlaylist() {
- debug("[playFile] loading writePlaylist");
+ debug("[writePlaylist] called");
var filename = '';
filename = prompt("Please enter a name for the playlist", "");
<area shape="circle" coords="125, 17, 14" nohref onclick="sendMediaPlayer('next')" alt="jump forward">
<area shape="circle" coords="161, 17, 14" nohref onclick="sendMediaPlayer('stop')" alt="stop">
</map><img src="/web-data/gfx/dvr-buttons-small-fs8.png" align="top" title="Control MediaPlayer" border="0" usemap="#mpcontrols">
- <!-- <img src="/web-data/img/edit.png" onclick="openMediaPlayerPlaylist()">
- still need some work for editing -->
+ <img src="/web-data/img/edit.png" onclick="openMediaPlayerPlaylist()">
</div>
<div class="sListSearch">
<img src="/web-data/img/nok.png" align="top" title="Close MediaPlayer" border="0" onclick="sendMediaPlayer('exit')">
<div style="color: #${item.color};" onclick="${item.exec}('${item.servicereference}','${item.root}');" class="sListSName" title="${item.servicereference}">${item.name}</div>
</td>
<td>
- {if item.isdir == "false"}
+ {if item.root == "playlist"}
+ <div class="sListExt">
+ <img src="/web-data/gfx/play.png" onclick="${item.exec}('${item.servicereference}','${item.root}');" title="${item.exec_description}" border="0">
+ <img src="/web-data/img/nok.png" onclick="deleteFile('${item.servicereference}');" title="remove file" border="0">
+ <a target="_blank" href="/file?file=${item.name}"><img src="/web-data/img/save.png" title="Download File" border="0"></a>
+ </div>
+ {elseif item.isdir == "false"}
<div class="sListExt">
<img src="/web-data/gfx/play.png" onclick="${item.exec}('${item.servicereference}','${item.root}');" title="${item.exec_description}" border="0">
<a target="_blank" href="/file?file=${item.name}&root=${item.root}"><img src="/web-data/img/save.png" title="Download File" border="0"></a>