Compare commits
5 Commits
0.9.12@214
...
0.9.13@214
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
24d26aee75 | ||
|
|
39b3dee3e1 | ||
|
|
3d3f7d17ed | ||
|
|
89a68cf538 | ||
|
|
51db7b1e36 |
@@ -1,9 +1,9 @@
|
||||
Package: webif
|
||||
Priority: optional
|
||||
Section: web
|
||||
Version: 0.9.12
|
||||
Version: 0.9.13
|
||||
Architecture: mipsel
|
||||
Maintainer: af123@hummypkg.org.uk
|
||||
Depends: webif-channelicons(>=1.0.1),mongoose(>=3.0-7),jim(>=0.73-1),jim-oo,jim-sqlite3(>=0.73),jim-cgi(>=0.5),service-control(>=1.2),busybox(>=1.19.3-1),lsof,epg(>=1.0.9),hmt(>=1.1.6),ssmtp,anacron,trm,openssl-command,nicesplice,id3v2,file,rsvsync(>=1.0.2),webif-charts(>=1.2),stripts(>=1.0.3)
|
||||
Depends: webif-channelicons(>=1.0.2),mongoose(>=3.0-7),jim(>=0.73-1),jim-oo,jim-sqlite3(>=0.73),jim-cgi(>=0.5),service-control(>=1.2),busybox(>=1.19.3-1),lsof,epg(>=1.0.9),hmt(>=1.1.6),ssmtp,anacron,trm,openssl-command,nicesplice,id3v2,file,rsvsync(>=1.0.2),webif-charts(>=1.2),stripts(>=1.1.2)
|
||||
Suggests: ffmpeg,webif-iphone
|
||||
Description: An evolving web interface for the Humax.
|
||||
|
||||
@@ -214,6 +214,9 @@ proc entry {file} {{i 0}} {
|
||||
# Shrunk (shown when necessary via Ajax)
|
||||
icon "/img/compress.png" "Shrunk" \
|
||||
"id=\"sp_$tbfile\"" "va hidden"
|
||||
# Timeshifted (shown when necessary via Ajax)
|
||||
icon "/img/clock.png" "Time-shifted Recording" \
|
||||
"id=\"tsr_$tbfile\"" "va hidden"
|
||||
|
||||
set bx [$ts get bookmarks]
|
||||
}
|
||||
|
||||
@@ -267,7 +267,8 @@ function preparemenu(el, menu)
|
||||
$(menu).enableContextMenuItems('#delete');
|
||||
}
|
||||
|
||||
if (el.attr('odencd') == 1 && el.attr('dlna') == 1)
|
||||
if (el.attr('odencd') == 1 && el.attr('dlna') == 1 &&
|
||||
el.attr('encd') == 0)
|
||||
$(menu).enableContextMenuItems('#decrypt');
|
||||
else
|
||||
$(menu).disableContextMenuItems('#decrypt');
|
||||
@@ -576,7 +577,7 @@ var dmenuclick = function(action, el, pos)
|
||||
|
||||
disableall();
|
||||
|
||||
window.location = '/cgi-bin/browse/play.jim?' +
|
||||
window.location = '/play/play.jim?' +
|
||||
'dir=' + encodeURIComponent(dir) +
|
||||
'&file=' + file;
|
||||
}
|
||||
|
||||
@@ -91,6 +91,23 @@ if {$url ne ""} {
|
||||
<td><a href=\"$url\">$url</a></td>"
|
||||
}
|
||||
puts "
|
||||
</tr><tr>
|
||||
<th>Files</th>
|
||||
<td>
|
||||
"
|
||||
|
||||
set fileset [$ts fileset]
|
||||
puts -nonewline "<img id=xfileset class=va src=/img/tree/plusonly.png>"
|
||||
puts -nonewline "[llength $fileset] file"
|
||||
if {[llength $fileset] != 1} { puts -nonewline "s" }
|
||||
puts -nonewline " in set."
|
||||
puts "<div id=fileset class=hidden><ul>"
|
||||
foreach f $fileset {
|
||||
puts "<li>[file tail $f] ([pretty_size [file size $f]])</li>"
|
||||
}
|
||||
puts "</ul></div>"
|
||||
|
||||
puts "</td>
|
||||
</tr><tr>
|
||||
<th>Flags</th>
|
||||
<td>[$ts get flags]
|
||||
@@ -101,6 +118,18 @@ if {[$ts get bookmarks]} {
|
||||
|
||||
puts "</tr>"
|
||||
puts "</table>"
|
||||
puts {
|
||||
<script type=text/javascript>
|
||||
$('#xfileset').click(function() {
|
||||
$('#fileset').slideToggle('slow', function() {
|
||||
if ($('#fileset').is(':visible'))
|
||||
$('#xfileset').attr('src', '/img/tree/minustop.png');
|
||||
else
|
||||
$('#xfileset').attr('src', '/img/tree/plusonly.png');
|
||||
});
|
||||
});
|
||||
</script>
|
||||
}
|
||||
exit
|
||||
}
|
||||
|
||||
|
||||
@@ -17,16 +17,11 @@ foreach file [readdir -nocomplain $dir] {
|
||||
if {![string match {*.ts} $file]} { continue }
|
||||
|
||||
regsub -all {([\\["$])} [file rootname $file] {\\\1} xfile
|
||||
if {[catch {set perc [exec /mod/bin/stripts -Aq "$xdir/$xfile"]}]} {
|
||||
if {[catch {set eit [exec /mod/bin/stripts -cq "$xdir/$xfile"]}]} {
|
||||
continue
|
||||
}
|
||||
if {[string match {*%} $perc]} {
|
||||
set perc [string range $perc 0 end-1]
|
||||
} else {
|
||||
set perc 0
|
||||
}
|
||||
|
||||
puts " \"$file\": $perc,"
|
||||
puts " \"$file\": $eit,"
|
||||
}
|
||||
puts " \"dummy\": 0"
|
||||
puts "}"
|
||||
|
||||
@@ -38,7 +38,7 @@ Your original recording files will be retained in a folder called _original.
|
||||
<tr><th>Length:</th><td>[clock format $len -format %T]</td></tr>
|
||||
<tr><th>Size:</th><td>[pretty_size [$ts size]] ([$ts get definition])</td></tr>
|
||||
<tr><th>Time:</th>
|
||||
<td>Squeezing will take around [clock format $esttime -format "%T"]</td></tr>
|
||||
<td>Shrinking will take around [clock format $esttime -format "%T"]</td></tr>
|
||||
<tr><th>Estimated Saving:</th>
|
||||
<td class=va><span id=analysis class=va>
|
||||
<img class=va src=/img/loading.gif> Analysing file, please wait...
|
||||
@@ -51,11 +51,11 @@ Your original recording files will be retained in a folder called _original.
|
||||
></span>
|
||||
|
||||
<div id=stripdiv class=hidden style=\"padding: 1em\">
|
||||
<button id=stripit>Perform squeeze operation</button>
|
||||
<button id=stripit>Shrink recording</button>
|
||||
</div>
|
||||
|
||||
<div id=progressdiv class=hidden>
|
||||
Squeezing: <div id=progressbar></div>
|
||||
Shrinking: <div id=progressbar></div>
|
||||
</div>
|
||||
|
||||
<button id=back class=hidden>Back to media list</button>
|
||||
|
||||
@@ -42,7 +42,7 @@ set output {}
|
||||
|
||||
set data [get_data]
|
||||
if {[llength $data]} {
|
||||
sleep 2
|
||||
sleep 3
|
||||
set ndata [get_data]
|
||||
foreach name [array names ndata] {
|
||||
if {![dict exists $seen $name]} { set seen($name) 0 }
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
.x-vlc-slider {
|
||||
background:#C7F2FF;
|
||||
text-align:center;
|
||||
|
||||
}
|
||||
.x-vlc-slider-thumb {
|
||||
background:#4EAECC;
|
||||
width:3px;
|
||||
}
|
||||
.x-vlc-main {
|
||||
|
||||
}
|
||||
.x-vlc-toolbar {
|
||||
|
||||
color:black;
|
||||
|
||||
}
|
||||
.x-vlc-toolbar * {
|
||||
vertical-align:top;
|
||||
|
||||
}
|
||||
.x-vlc-btn {
|
||||
|
||||
padding-right:10px;
|
||||
|
||||
|
||||
}
|
||||
.x-vlc-btn-fullscreen {
|
||||
background:url(/img/vlc/fullscreen2.gif) no-repeat;
|
||||
}
|
||||
.x-vlc-btn-plus {
|
||||
background:url(/img/vlc/plus2.gif) no-repeat;
|
||||
}
|
||||
.x-vlc-btn-moins {
|
||||
background:url(/img/vlc/moins2.gif) no-repeat;
|
||||
}
|
||||
.x-vlc-btn:hover {
|
||||
color:red;
|
||||
|
||||
}
|
||||
.x-vlc-btn-play {
|
||||
background:url(/img/vlc/play2.gif) no-repeat;
|
||||
}
|
||||
.x-vlc-btn-stop {
|
||||
background:url(/img/vlc/stop2.gif) no-repeat;
|
||||
|
||||
}
|
||||
.x-vlc-btn-pause {
|
||||
background:url(/img/vlc/pause2.gif) no-repeat;
|
||||
|
||||
}
|
||||
.x-vlc-timer {
|
||||
width:100px;
|
||||
font-size:12px;
|
||||
vertical-align:top;
|
||||
text-align:center
|
||||
}
|
||||
.x-vlc-about {
|
||||
font-size:10px;
|
||||
}
|
||||
1
var/mongoose/html/img/clock.png
Symbolic link
@@ -0,0 +1 @@
|
||||
context/clock.png
|
||||
BIN
var/mongoose/html/img/context/clock.png
Normal file
|
After Width: | Height: | Size: 483 B |
BIN
var/mongoose/html/img/tree/minustop.png
Normal file
|
After Width: | Height: | Size: 238 B |
BIN
var/mongoose/html/img/tree/plusonly.png
Normal file
|
After Width: | Height: | Size: 242 B |
288
var/mongoose/html/js/jquery.flash.js
Normal file
@@ -0,0 +1,288 @@
|
||||
/**
|
||||
* Flash (http://jquery.lukelutman.com/plugins/flash)
|
||||
* A jQuery plugin for embedding Flash movies.
|
||||
*
|
||||
* Version 1.0
|
||||
* November 9th, 2006
|
||||
*
|
||||
* Copyright (c) 2006 Luke Lutman (http://www.lukelutman.com)
|
||||
* Dual licensed under the MIT and GPL licenses.
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
* http://www.opensource.org/licenses/gpl-license.php
|
||||
*
|
||||
* Inspired by:
|
||||
* SWFObject (http://blog.deconcept.com/swfobject/)
|
||||
* UFO (http://www.bobbyvandersluis.com/ufo/)
|
||||
* sIFR (http://www.mikeindustries.com/sifr/)
|
||||
*
|
||||
* IMPORTANT:
|
||||
* The packed version of jQuery breaks ActiveX control
|
||||
* activation in Internet Explorer. Use JSMin to minifiy
|
||||
* jQuery (see: http://jquery.lukelutman.com/plugins/flash#activex).
|
||||
*
|
||||
**/
|
||||
;(function(){
|
||||
|
||||
var $$;
|
||||
|
||||
/**
|
||||
*
|
||||
* @desc Replace matching elements with a flash movie.
|
||||
* @author Luke Lutman
|
||||
* @version 1.0.1
|
||||
*
|
||||
* @name flash
|
||||
* @param Hash htmlOptions Options for the embed/object tag.
|
||||
* @param Hash pluginOptions Options for detecting/updating the Flash plugin (optional).
|
||||
* @param Function replace Custom block called for each matched element if flash is installed (optional).
|
||||
* @param Function update Custom block called for each matched if flash isn't installed (optional).
|
||||
* @type jQuery
|
||||
*
|
||||
* @cat plugins/flash
|
||||
*
|
||||
* @example $('#hello').flash({ src: 'hello.swf' });
|
||||
* @desc Embed a Flash movie.
|
||||
*
|
||||
* @example $('#hello').flash({ src: 'hello.swf' }, { version: 8 });
|
||||
* @desc Embed a Flash 8 movie.
|
||||
*
|
||||
* @example $('#hello').flash({ src: 'hello.swf' }, { expressInstall: true });
|
||||
* @desc Embed a Flash movie using Express Install if flash isn't installed.
|
||||
*
|
||||
* @example $('#hello').flash({ src: 'hello.swf' }, { update: false });
|
||||
* @desc Embed a Flash movie, don't show an update message if Flash isn't installed.
|
||||
*
|
||||
**/
|
||||
$$ = jQuery.fn.flash = function(htmlOptions, pluginOptions, replace, update) {
|
||||
|
||||
// Set the default block.
|
||||
var block = replace || $$.replace;
|
||||
|
||||
// Merge the default and passed plugin options.
|
||||
pluginOptions = $$.copy($$.pluginOptions, pluginOptions);
|
||||
|
||||
// Detect Flash.
|
||||
if(!$$.hasFlash(pluginOptions.version)) {
|
||||
// Use Express Install (if specified and Flash plugin 6,0,65 or higher is installed).
|
||||
if(pluginOptions.expressInstall && $$.hasFlash(6,0,65)) {
|
||||
// Add the necessary flashvars (merged later).
|
||||
var expressInstallOptions = {
|
||||
flashvars: {
|
||||
MMredirectURL: location,
|
||||
MMplayerType: 'PlugIn',
|
||||
MMdoctitle: jQuery('title').text()
|
||||
}
|
||||
};
|
||||
// Ask the user to update (if specified).
|
||||
} else if (pluginOptions.update) {
|
||||
// Change the block to insert the update message instead of the flash movie.
|
||||
block = update || $$.update;
|
||||
// Fail
|
||||
} else {
|
||||
// The required version of flash isn't installed.
|
||||
// Express Install is turned off, or flash 6,0,65 isn't installed.
|
||||
// Update is turned off.
|
||||
// Return without doing anything.
|
||||
return this;
|
||||
}
|
||||
}
|
||||
|
||||
// Merge the default, express install and passed html options.
|
||||
htmlOptions = $$.copy($$.htmlOptions, expressInstallOptions, htmlOptions);
|
||||
|
||||
// Invoke $block (with a copy of the merged html options) for each element.
|
||||
return this.each(function(){
|
||||
block.call(this, $$.copy(htmlOptions));
|
||||
});
|
||||
|
||||
};
|
||||
/**
|
||||
*
|
||||
* @name flash.copy
|
||||
* @desc Copy an arbitrary number of objects into a new object.
|
||||
* @type Object
|
||||
*
|
||||
* @example $$.copy({ foo: 1 }, { bar: 2 });
|
||||
* @result { foo: 1, bar: 2 };
|
||||
*
|
||||
**/
|
||||
$$.copy = function() {
|
||||
var options = {}, flashvars = {};
|
||||
for(var i = 0; i < arguments.length; i++) {
|
||||
var arg = arguments[i];
|
||||
if(arg == undefined) continue;
|
||||
jQuery.extend(options, arg);
|
||||
// don't clobber one flash vars object with another
|
||||
// merge them instead
|
||||
if(arg.flashvars == undefined) continue;
|
||||
jQuery.extend(flashvars, arg.flashvars);
|
||||
}
|
||||
options.flashvars = flashvars;
|
||||
return options;
|
||||
};
|
||||
/*
|
||||
* @name flash.hasFlash
|
||||
* @desc Check if a specific version of the Flash plugin is installed
|
||||
* @type Boolean
|
||||
*
|
||||
**/
|
||||
$$.hasFlash = function() {
|
||||
// look for a flag in the query string to bypass flash detection
|
||||
if(/hasFlash\=true/.test(location)) return true;
|
||||
if(/hasFlash\=false/.test(location)) return false;
|
||||
var pv = $$.hasFlash.playerVersion().match(/\d+/g);
|
||||
var rv = String([arguments[0], arguments[1], arguments[2]]).match(/\d+/g) || String($$.pluginOptions.version).match(/\d+/g);
|
||||
for(var i = 0; i < 3; i++) {
|
||||
pv[i] = parseInt(pv[i] || 0);
|
||||
rv[i] = parseInt(rv[i] || 0);
|
||||
// player is less than required
|
||||
if(pv[i] < rv[i]) return false;
|
||||
// player is greater than required
|
||||
if(pv[i] > rv[i]) return true;
|
||||
}
|
||||
// major version, minor version and revision match exactly
|
||||
return true;
|
||||
};
|
||||
/**
|
||||
*
|
||||
* @name flash.hasFlash.playerVersion
|
||||
* @desc Get the version of the installed Flash plugin.
|
||||
* @type String
|
||||
*
|
||||
**/
|
||||
$$.hasFlash.playerVersion = function() {
|
||||
// ie
|
||||
try {
|
||||
try {
|
||||
// avoid fp6 minor version lookup issues
|
||||
// see: http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
|
||||
var axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
|
||||
try { axo.AllowScriptAccess = 'always'; }
|
||||
catch(e) { return '6,0,0'; }
|
||||
} catch(e) {}
|
||||
return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
|
||||
// other browsers
|
||||
} catch(e) {
|
||||
try {
|
||||
if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){
|
||||
return (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g, ",").match(/^,?(.+),?$/)[1];
|
||||
}
|
||||
} catch(e) {}
|
||||
}
|
||||
return '0,0,0';
|
||||
};
|
||||
/**
|
||||
*
|
||||
* @name flash.htmlOptions
|
||||
* @desc The default set of options for the object or embed tag.
|
||||
*
|
||||
**/
|
||||
$$.htmlOptions = {
|
||||
height: 240,
|
||||
flashvars: {},
|
||||
pluginspage: 'http://www.adobe.com/go/getflashplayer',
|
||||
src: '#',
|
||||
type: 'application/x-shockwave-flash',
|
||||
width: 320
|
||||
};
|
||||
/**
|
||||
*
|
||||
* @name flash.pluginOptions
|
||||
* @desc The default set of options for checking/updating the flash Plugin.
|
||||
*
|
||||
**/
|
||||
$$.pluginOptions = {
|
||||
expressInstall: false,
|
||||
update: true,
|
||||
version: '6.0.65'
|
||||
};
|
||||
/**
|
||||
*
|
||||
* @name flash.replace
|
||||
* @desc The default method for replacing an element with a Flash movie.
|
||||
*
|
||||
**/
|
||||
$$.replace = function(htmlOptions) {
|
||||
this.innerHTML = '<div class="alt">'+this.innerHTML+'</div>';
|
||||
jQuery(this)
|
||||
.addClass('flash-replaced')
|
||||
.prepend($$.transform(htmlOptions));
|
||||
};
|
||||
/**
|
||||
*
|
||||
* @name flash.update
|
||||
* @desc The default method for replacing an element with an update message.
|
||||
*
|
||||
**/
|
||||
$$.update = function(htmlOptions) {
|
||||
var url = String(location).split('?');
|
||||
url.splice(1,0,'?hasFlash=true&');
|
||||
url = url.join('');
|
||||
var msg = '<p>This content requires the Flash Player. <a href="http://www.adobe.com/go/getflashplayer">Download Flash Player</a>. Already have Flash Player? <a href="'+url+'">Click here.</a></p>';
|
||||
this.innerHTML = '<span class="alt">'+this.innerHTML+'</span>';
|
||||
jQuery(this)
|
||||
.addClass('flash-update')
|
||||
.prepend(msg);
|
||||
};
|
||||
/**
|
||||
*
|
||||
* @desc Convert a hash of html options to a string of attributes, using Function.apply().
|
||||
* @example toAttributeString.apply(htmlOptions)
|
||||
* @result foo="bar" foo="bar"
|
||||
*
|
||||
**/
|
||||
function toAttributeString() {
|
||||
var s = '';
|
||||
for(var key in this)
|
||||
if(typeof this[key] != 'function')
|
||||
s += key+'="'+this[key]+'" ';
|
||||
return s;
|
||||
};
|
||||
/**
|
||||
*
|
||||
* @desc Convert a hash of flashvars to a url-encoded string, using Function.apply().
|
||||
* @example toFlashvarsString.apply(flashvarsObject)
|
||||
* @result foo=bar&foo=bar
|
||||
*
|
||||
**/
|
||||
function toFlashvarsString() {
|
||||
var s = '';
|
||||
for(var key in this)
|
||||
if(typeof this[key] != 'function')
|
||||
s += key+'='+encodeURIComponent(this[key])+'&';
|
||||
return s.replace(/&$/, '');
|
||||
};
|
||||
/**
|
||||
*
|
||||
* @name flash.transform
|
||||
* @desc Transform a set of html options into an embed tag.
|
||||
* @type String
|
||||
*
|
||||
* @example $$.transform(htmlOptions)
|
||||
* @result <embed src="foo.swf" ... />
|
||||
*
|
||||
* Note: The embed tag is NOT standards-compliant, but it
|
||||
* works in all current browsers. flash.transform can be
|
||||
* overwritten with a custom function to generate more
|
||||
* standards-compliant markup.
|
||||
*
|
||||
**/
|
||||
$$.transform = function(htmlOptions) {
|
||||
htmlOptions.toString = toAttributeString;
|
||||
if(htmlOptions.flashvars) htmlOptions.flashvars.toString = toFlashvarsString;
|
||||
return '<embed ' + String(htmlOptions) + '/>';
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* Flash Player 9 Fix (http://blog.deconcept.com/2006/07/28/swfobject-143-released/)
|
||||
*
|
||||
**/
|
||||
if (window.attachEvent) {
|
||||
window.attachEvent("onbeforeunload", function(){
|
||||
__flash_unloadHandler = function() {};
|
||||
__flash_savedUnloadHandler = function() {};
|
||||
});
|
||||
}
|
||||
|
||||
})();
|
||||
60
var/mongoose/html/pkg/index.shtml
Normal file
@@ -0,0 +1,60 @@
|
||||
<!--#include virtual="/lib/header.shtml" -->
|
||||
|
||||
<link href=style.css rel=stylesheet type=text/css />
|
||||
|
||||
<div class=va style="padding: 0 0 1em 0">
|
||||
<h1 style="display: inline" class=va>
|
||||
Package Management
|
||||
</h1>
|
||||
|
||||
<button class="hidden va" id=opkgupdate>
|
||||
Update package list from Internet
|
||||
</button>
|
||||
|
||||
<button class="hidden va" id=opkgupgradeall>
|
||||
Upgrade all packages
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div id=refreshing class="hidden shadowbox" style="margin: 1 0 1em 0">
|
||||
<div>
|
||||
<img border=0 src=/img/loading.gif>
|
||||
Refreshing...
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id=dialogue class=hidden style="align: center">
|
||||
<pre id=dresults></pre>
|
||||
<div id=dspinner>
|
||||
<img border=0 src=/img/loading.gif>
|
||||
Processing request...
|
||||
</div>
|
||||
<div class=hidden id=complete>
|
||||
<img border=0 src=/images/167_2_00_Check_W2_SUB.png>
|
||||
Operation complete.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type=text/javascript src=/js/enadis.js></script>
|
||||
<script type=text/javascript src=/js/iajax.js></script>
|
||||
<script type=text/javascript src=script.js></script>
|
||||
|
||||
<div id=pkgtabs>
|
||||
<ul>
|
||||
<li>
|
||||
<a class=tablink href=pkg.jim?type=upgr>
|
||||
<span>Upgrades</span>
|
||||
</a>
|
||||
</li><li>
|
||||
<a class=tablink href=pkg.jim?type=inst>
|
||||
<span>Installed</span>
|
||||
</a>
|
||||
</li><li>
|
||||
<a class=tablink href=pkg.jim?type=avail>
|
||||
<span>Available</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!--#include virtual="/lib/footer.shtml" -->
|
||||
@@ -17,10 +17,15 @@ if {![dict exists $_cgi type]} { set _cgi(type) avail }
|
||||
|
||||
proc pkgrow {pkg} {
|
||||
set name [$pkg get name]
|
||||
altrow
|
||||
puts "
|
||||
<td nowrap>$name</td>
|
||||
"
|
||||
altrow "pkg=\"$name\""
|
||||
puts "<td nowrap>$name"
|
||||
if {$::type eq "inst"} {
|
||||
puts "<br><a href=# class=depends>
|
||||
<img class=va border=0
|
||||
src=/images/421_1_00_CH_Title_2R_Arrow.png height=14>
|
||||
<span class=\"va footnote\">Info</span></a>"
|
||||
}
|
||||
puts "</td>"
|
||||
|
||||
if {$::type eq "avail"} {
|
||||
puts "<td nowrap>[$pkg get latest]</td>"
|
||||
@@ -46,7 +51,7 @@ proc pkgrow {pkg} {
|
||||
set type Remove
|
||||
}
|
||||
|
||||
puts "<td align=center><small><button id=\"[$pkg get name]\"
|
||||
puts "<td align=center><small><button id=\"$name\"
|
||||
action=[string tolower $type]
|
||||
class=\"va [string tolower $type]\">$type</button></small></td>"
|
||||
|
||||
@@ -1,63 +1,9 @@
|
||||
<!--#include virtual="/lib/header.shtml" -->
|
||||
|
||||
<style type=text/css>
|
||||
button.install
|
||||
{
|
||||
display: none;
|
||||
background-image: none;
|
||||
background: #ccff99;
|
||||
}
|
||||
button.remove
|
||||
{
|
||||
display: none;
|
||||
background-image: none;
|
||||
background: #ff6666;
|
||||
}
|
||||
button.upgrade
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
|
||||
<div class=va style="padding: 0 0 1em 0">
|
||||
<h1 style="display: inline" class=va>Package Management</h1>
|
||||
<small>
|
||||
<button class=va id=opkgupdate style="display: none">
|
||||
Update package list from Internet
|
||||
</button>
|
||||
<button class=va id=opkgupgradeall style="display: none">
|
||||
Upgrade all packages
|
||||
</button>
|
||||
</small>
|
||||
</div>
|
||||
|
||||
<div id=refreshing class=shadowbox
|
||||
style="display: none; margin: 1 0 1em 0">
|
||||
<div>
|
||||
<img border=0 src=/img/loading.gif>
|
||||
Refreshing...
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id=dialogue style="display: none; align: center">
|
||||
<pre id=dresults></pre>
|
||||
<div id=dspinner>
|
||||
<img border=0 src=/img/loading.gif>
|
||||
Processing request...
|
||||
</div>
|
||||
<div class=hidden id=complete>
|
||||
<img border=0 src=/images/167_2_00_Check_W2_SUB.png>
|
||||
Operation complete.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type=text/javascript src=/js/iajax.js></script>
|
||||
<script type=text/javascript>
|
||||
|
||||
var opkg = '/cgi-bin/opkg.jim?cmd=';
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
var busy = false;
|
||||
|
||||
$('#opkgupdate')
|
||||
.button()
|
||||
.click(function() { execopkg('update'); })
|
||||
@@ -69,7 +15,22 @@ $(document).ready(function() {
|
||||
.fadeIn('slow');
|
||||
|
||||
$('#pkgtabs').tabs({
|
||||
load: setup_buttons,
|
||||
select: function() {
|
||||
if (busy)
|
||||
{
|
||||
alert('Please wait until the current ' +
|
||||
'operation completes.');
|
||||
return false;
|
||||
}
|
||||
busy = true;
|
||||
$('#pkgtabs')
|
||||
.tabs('option', 'disabled', [0,1,2]);
|
||||
},
|
||||
load: function() {
|
||||
busy = false;
|
||||
setup_buttons();
|
||||
$('#pkgtabs').tabs('option', 'disabled', []);
|
||||
},
|
||||
spinner: '<img border=0 src=/img/loading.gif> ' +
|
||||
'<em>Loading...</em>'
|
||||
});
|
||||
@@ -83,9 +44,14 @@ $(document).ready(function() {
|
||||
buttons: { "Close":
|
||||
function() {$(this).dialog('close');}},
|
||||
close: function(e,u) {
|
||||
$('#refreshing').show('slow');
|
||||
$('#pkgtabs').hide('fast');
|
||||
window.location.reload(true);
|
||||
//$('#refreshing').show('slow');
|
||||
//$('#pkgtabs').hide('fast');
|
||||
//window.location.reload(true);
|
||||
var pkg = $('#dialogue').attr('pkg');
|
||||
$('tr[pkg="' + pkg + '"]')
|
||||
.disable()
|
||||
.find('button').removeClass('va');
|
||||
$('button.va').enable();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -106,14 +72,20 @@ $(document).ready(function() {
|
||||
}
|
||||
}
|
||||
|
||||
function execopkg(arg)
|
||||
function execopkg(arg, pkg)
|
||||
{
|
||||
$('button.va')
|
||||
.attr('disabled', true)
|
||||
.addClass('ui-state-disabled');
|
||||
if (busy)
|
||||
{
|
||||
alert('Please wait until the current ' +
|
||||
'operation completes.');
|
||||
return;
|
||||
}
|
||||
busy = true;
|
||||
$('button.va').disable();
|
||||
$('#dspinner').show();
|
||||
$('#complete').hide();
|
||||
$('#dresults').empty();
|
||||
$('#dialogue').attr('pkg', pkg);
|
||||
$dialog.dialog('open');
|
||||
|
||||
// $('#dresults').load(opkg + arg, function() {
|
||||
@@ -133,6 +105,7 @@ $(document).ready(function() {
|
||||
alert(e);
|
||||
}
|
||||
});
|
||||
busy = false;
|
||||
}
|
||||
|
||||
function setup_buttons()
|
||||
@@ -144,31 +117,19 @@ $(document).ready(function() {
|
||||
!confirm('Please confirm removal of the ' +
|
||||
$(this).attr('id') + ' package.'))
|
||||
return;
|
||||
|
||||
execopkg(encodeURIComponent($(this).attr('action') +
|
||||
' ' + $(this).attr('id')));
|
||||
' ' + $(this).attr('id')),
|
||||
$(this).closest('tr').attr('pkg'));
|
||||
}).fadeIn('slow');
|
||||
|
||||
$('a.depends').click(function(e) {
|
||||
e.preventDefault();
|
||||
var pkg = $(this).closest('tr').attr('pkg');
|
||||
execopkg(encodeURIComponent('whatdepends ' + pkg),
|
||||
false);
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<div id=pkgtabs>
|
||||
<ul>
|
||||
<li>
|
||||
<a href=/cgi-bin/pkg.jim?type=upgr>
|
||||
<span>Upgrades</span>
|
||||
</a>
|
||||
</li><li>
|
||||
<a href=/cgi-bin/pkg.jim?type=inst>
|
||||
<span>Installed</span>
|
||||
</a>
|
||||
</li><li>
|
||||
<a href=/cgi-bin/pkg.jim?type=avail>
|
||||
<span>Available</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!--#include virtual="/lib/footer.shtml" -->
|
||||
16
var/mongoose/html/pkg/style.css
Normal file
@@ -0,0 +1,16 @@
|
||||
button.install
|
||||
{
|
||||
display: none;
|
||||
background-image: none;
|
||||
background: #ccff99;
|
||||
}
|
||||
button.remove
|
||||
{
|
||||
display: none;
|
||||
background-image: none;
|
||||
background: #ff6666;
|
||||
}
|
||||
button.upgrade
|
||||
{
|
||||
display: none;
|
||||
}
|
||||
BIN
var/mongoose/html/play/img/old/fforward.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 97 B After Width: | Height: | Size: 97 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 94 B After Width: | Height: | Size: 94 B |
|
Before Width: | Height: | Size: 80 B After Width: | Height: | Size: 80 B |
|
Before Width: | Height: | Size: 896 B After Width: | Height: | Size: 896 B |
|
Before Width: | Height: | Size: 97 B After Width: | Height: | Size: 97 B |
|
Before Width: | Height: | Size: 869 B After Width: | Height: | Size: 869 B |
|
Before Width: | Height: | Size: 1014 B After Width: | Height: | Size: 1014 B |
|
Before Width: | Height: | Size: 1012 B After Width: | Height: | Size: 1012 B |
|
Before Width: | Height: | Size: 1003 B After Width: | Height: | Size: 1003 B |
|
Before Width: | Height: | Size: 199 B After Width: | Height: | Size: 199 B |
|
Before Width: | Height: | Size: 177 B After Width: | Height: | Size: 177 B |
|
Before Width: | Height: | Size: 215 B After Width: | Height: | Size: 215 B |
|
Before Width: | Height: | Size: 195 B After Width: | Height: | Size: 195 B |
|
Before Width: | Height: | Size: 176 B After Width: | Height: | Size: 176 B |
|
Before Width: | Height: | Size: 100 B After Width: | Height: | Size: 100 B |
|
Before Width: | Height: | Size: 997 B After Width: | Height: | Size: 997 B |
BIN
var/mongoose/html/play/img/old/rewind.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 60 B After Width: | Height: | Size: 60 B |
|
Before Width: | Height: | Size: 357 B After Width: | Height: | Size: 357 B |
|
Before Width: | Height: | Size: 377 B After Width: | Height: | Size: 377 B |
|
Before Width: | Height: | Size: 994 B After Width: | Height: | Size: 994 B |
BIN
var/mongoose/html/play/img/old/subtitles.png
Normal file
|
After Width: | Height: | Size: 576 B |
|
Before Width: | Height: | Size: 362 B After Width: | Height: | Size: 362 B |
BIN
var/mongoose/html/play/img/playlist.png
Normal file
|
After Width: | Height: | Size: 518 B |
BIN
var/mongoose/html/play/img/playlistclick.png
Normal file
|
After Width: | Height: | Size: 658 B |
BIN
var/mongoose/html/play/img/playlistpress.png
Normal file
|
After Width: | Height: | Size: 576 B |
BIN
var/mongoose/html/play/img/seekarrownovideoleft.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
var/mongoose/html/play/img/seekarrownovideoright.png
Normal file
|
After Width: | Height: | Size: 2.0 KiB |
BIN
var/mongoose/html/play/img/vlccontrolbar.png
Normal file
|
After Width: | Height: | Size: 72 KiB |
BIN
var/mongoose/html/play/img/vlcfullscreenbutton.png
Normal file
|
After Width: | Height: | Size: 666 B |
BIN
var/mongoose/html/play/img/vlcfullscreenbuttonclick.png
Normal file
|
After Width: | Height: | Size: 794 B |
BIN
var/mongoose/html/play/img/vlcfullscreenbuttonfalse.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
var/mongoose/html/play/img/vlcfullscreenbuttonpress.png
Normal file
|
After Width: | Height: | Size: 724 B |
BIN
var/mongoose/html/play/img/vlcnextbutton.png
Normal file
|
After Width: | Height: | Size: 2.4 KiB |
BIN
var/mongoose/html/play/img/vlcnextbuttonclick.png
Normal file
|
After Width: | Height: | Size: 663 B |
BIN
var/mongoose/html/play/img/vlcnextbuttonpress.png
Normal file
|
After Width: | Height: | Size: 591 B |
BIN
var/mongoose/html/play/img/vlcpausebutton.png
Normal file
|
After Width: | Height: | Size: 590 B |
BIN
var/mongoose/html/play/img/vlcpausebuttonclick.png
Normal file
|
After Width: | Height: | Size: 733 B |
BIN
var/mongoose/html/play/img/vlcpausebuttonpress.png
Normal file
|
After Width: | Height: | Size: 659 B |
BIN
var/mongoose/html/play/img/vlcplaybutton.png
Normal file
|
After Width: | Height: | Size: 752 B |
BIN
var/mongoose/html/play/img/vlcplaybuttonclick.png
Normal file
|
After Width: | Height: | Size: 892 B |
BIN
var/mongoose/html/play/img/vlcplaybuttonpress.png
Normal file
|
After Width: | Height: | Size: 827 B |
BIN
var/mongoose/html/play/img/vlcpreviousbutton.png
Normal file
|
After Width: | Height: | Size: 1.9 KiB |
BIN
var/mongoose/html/play/img/vlcpreviousbuttonclick.png
Normal file
|
After Width: | Height: | Size: 663 B |
BIN
var/mongoose/html/play/img/vlcpreviousbuttonpress.png
Normal file
|
After Width: | Height: | Size: 586 B |
BIN
var/mongoose/html/play/img/vlcstopbutton.png
Normal file
|
After Width: | Height: | Size: 505 B |
BIN
var/mongoose/html/play/img/vlcstopbuttonclick.png
Normal file
|
After Width: | Height: | Size: 650 B |
BIN
var/mongoose/html/play/img/vlcstopbuttonpress.png
Normal file
|
After Width: | Height: | Size: 572 B |
BIN
var/mongoose/html/play/img/vlcvolumeindicator0.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
var/mongoose/html/play/img/vlcvolumeindicator1.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
var/mongoose/html/play/img/vlcvolumeindicator2.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
var/mongoose/html/play/img/vlcvolumeindicator3.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
var/mongoose/html/play/img/vlcvolumeindicatormute.png
Normal file
|
After Width: | Height: | Size: 2.1 KiB |
BIN
var/mongoose/html/play/img/volumebar100.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
BIN
var/mongoose/html/play/img/volumebar150.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
var/mongoose/html/play/img/volumebar50.png
Normal file
|
After Width: | Height: | Size: 983 B |
BIN
var/mongoose/html/play/img/volumebarfull.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
BIN
var/mongoose/html/play/img/volumebarmute.png
Normal file
|
After Width: | Height: | Size: 879 B |
@@ -29,11 +29,12 @@ if {![$ts flag "ODEncrypted"]} {
|
||||
|
||||
puts "
|
||||
<span id=url style=\"display: none\">$url</span>
|
||||
<span id=duration style=\"display: none\">[$ts duration 1]</span>
|
||||
"
|
||||
|
||||
puts {
|
||||
<script language="javascript" src="/js/jquery-vlc.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/css/vlc.css" />
|
||||
<script language=javascript src=vlc.js></script>
|
||||
<link rel=stylesheet type=text/css href=vlc.css />
|
||||
<script type=text/javascript src=play.js></script>
|
||||
|
||||
<fieldset class=cleft style="margin: 0 1em 1em 1em">
|
||||
@@ -1,7 +1,9 @@
|
||||
|
||||
|
||||
$(document).ready(function() {
|
||||
|
||||
var url = $('#url').text();
|
||||
var duration = $('#duration').text();
|
||||
|
||||
var vlc = VLCobject.embedPlayer('vlc', 800, 450, true);
|
||||
vlc.play(encodeURI(url));
|
||||
82
var/mongoose/html/play/vlc.css
Normal file
@@ -0,0 +1,82 @@
|
||||
.x-vlc-slider {
|
||||
background:#C7F2FF;
|
||||
text-align:center;
|
||||
|
||||
}
|
||||
.x-vlc-slider-thumb {
|
||||
background:#4EAECC;
|
||||
width:3px;
|
||||
}
|
||||
.x-vlc-main {
|
||||
|
||||
}
|
||||
.x-vlc-toolbar {
|
||||
|
||||
color:black;
|
||||
|
||||
}
|
||||
.x-vlc-toolbar * {
|
||||
vertical-align:top;
|
||||
|
||||
}
|
||||
.x-vlc-btn {
|
||||
padding-right:10px;
|
||||
height: 35px;
|
||||
}
|
||||
.x-vlc-btn-fullscreen {
|
||||
background:url(img/vlcfullscreenbutton.png) no-repeat;
|
||||
}
|
||||
.x-vlc-btn-fullscreen:hover {
|
||||
background:url(img/vlcfullscreenbuttonclick.png) no-repeat;
|
||||
}
|
||||
|
||||
.x-vlc-btn-ff {
|
||||
background:url(img/seekarrownovideoright.png) no-repeat;
|
||||
}
|
||||
|
||||
.x-vlc-btn-rew {
|
||||
background:url(img/seekarrownovideoleft.png) no-repeat;
|
||||
}
|
||||
|
||||
.x-vlc-btn-sub {
|
||||
background:url(img/playlist.png) no-repeat;
|
||||
}
|
||||
.x-vlc-btn-sub:hover, .x-vlc-btn-sub-clicked {
|
||||
background:url(img/playlistclick.png) no-repeat;
|
||||
}
|
||||
|
||||
.x-vlc-btn:hover {
|
||||
color:red;
|
||||
|
||||
}
|
||||
.x-vlc-btn-play {
|
||||
background:url(img/vlcplaybutton.png) no-repeat;
|
||||
}
|
||||
.x-vlc-btn-play:hover {
|
||||
background:url(img/vlcplaybuttonclick.png) no-repeat;
|
||||
}
|
||||
|
||||
.x-vlc-btn-stop {
|
||||
background:url(img/vlcstopbutton.png) no-repeat;
|
||||
}
|
||||
.x-vlc-btn-stop:hover {
|
||||
background:url(img/vlcstopbuttonclick.png) no-repeat;
|
||||
}
|
||||
|
||||
.x-vlc-btn-pause {
|
||||
background:url(img/vlcpausebutton.png) no-repeat;
|
||||
}
|
||||
.x-vlc-btn-pause:hover {
|
||||
background:url(img/vlcpausebuttonclick.png) no-repeat;
|
||||
}
|
||||
|
||||
.x-vlc-timer {
|
||||
width:100px;
|
||||
font-size:12px;
|
||||
vertical-align:top;
|
||||
text-align:center
|
||||
}
|
||||
.x-vlc-about {
|
||||
font-size:10px;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
VLC_PLUGIN:"VLC Multimedia Plug-in"
|
||||
,VLC_AX:"VideoLAN.VLCPlugin.2"
|
||||
,VLC_MIME_TYPE:"application/x-vlc-plugin"
|
||||
,TOOLBAR_HEIGHT:10
|
||||
,TOOLBAR_HEIGHT:15
|
||||
,INSTANCES:{} // holds multiples instances
|
||||
,UNICODES:{
|
||||
PLAY:'\u25ba'
|
||||
@@ -254,25 +254,36 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
var tgt = $('#' + playerId + '_toolbar');
|
||||
tgt.html('');
|
||||
this.createButton(playerId, ' ', 'x-vlc-btn-play', function(event) {
|
||||
//alert('play '+ event.data.instance.playerId);
|
||||
event.data.instance.togglePlay();
|
||||
});
|
||||
event.data.instance.togglePlay();
|
||||
}, 25);
|
||||
this.createButton(playerId, ' ', 'x-vlc-btn-stop', function(event) {
|
||||
//alert('stop '+ event.data.instance.playerId);
|
||||
event.data.instance.stop();
|
||||
});
|
||||
instance.createSlider();
|
||||
this.createButton(playerId, ' ', 'x-vlc-btn-rew', function(event) {
|
||||
event.data.instance.slower();
|
||||
});
|
||||
this.createButton(playerId, ' ', 'x-vlc-btn-ff', function(event) {
|
||||
event.data.instance.faster();
|
||||
});
|
||||
this.createSpeed(playerId);
|
||||
//instance.createSlider();
|
||||
this.getInstance(playerId).statusChanged();
|
||||
this.createTimer(playerId);
|
||||
//this.createTimer(playerId);
|
||||
this.createButton(playerId, ' ', 'x-vlc-btn-fullscreen', function(event) {
|
||||
//alert('stop '+ event.data.instance.playerId);
|
||||
event.data.instance.toggleFullscreen();
|
||||
});
|
||||
this.createButton(playerId, ' ', 'x-vlc-btn-plus', function(event) {
|
||||
this.createButton(playerId, ' ', 'x-vlc-btn-sub', function(event) {
|
||||
//alert('stop '+ event.data.instance.playerId);
|
||||
// event.data.instance.stop();
|
||||
$('#' + instance.playerId + '_about').slideToggle(0);
|
||||
event.data.instance.toggleSubtitles();
|
||||
});
|
||||
this.createStatus(playerId);
|
||||
// this.createButton(playerId, ' ', 'x-vlc-btn-plus', function(event) {
|
||||
// //alert('stop '+ event.data.instance.playerId);
|
||||
// // event.data.instance.stop();
|
||||
// $('#' + instance.playerId + '_about').slideToggle(0);
|
||||
// });
|
||||
aboutTxt = "";
|
||||
if (instance.version()) {
|
||||
aboutTxt = 'Installed version: ' + instance.version();
|
||||
@@ -290,10 +301,11 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
if(!playerId) playerId=this.INSTANCES[0];
|
||||
delete this.INSTANCES[playerId] ;
|
||||
}
|
||||
,createButton:function(playerId, html, cls, handler) {
|
||||
,createButton:function(playerId, html, cls, handler, width) {
|
||||
if (!width) width = 16;
|
||||
var tgt = $('#' + playerId + '_toolbar');
|
||||
var id = playerId + '_toolbar_btn' + tgt[0].childNodes.length;
|
||||
var btn = "<div id='" + id + "' style='float:left;width:16px;text-align:center;cursor:pointer' class='x-vlc-btn "+cls+"' >" + html + "</div>";
|
||||
var btn = "<div id='" + id + "' style='float:left;width:" + width + "px;text-align:center;cursor:pointer' class='x-vlc-btn "+cls+"' >" + html + "</div>";
|
||||
tgt.append(btn);
|
||||
var instance = this.getInstance(playerId);
|
||||
if (handler) {
|
||||
@@ -303,6 +315,16 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
|
||||
|
||||
|
||||
,createSpeed:function(playerId) {
|
||||
var tgt = $('#' + playerId + '_toolbar' );
|
||||
var speed = "<div id='" + playerId + "_speed' style='float:left;text-align:center;width:100px' class='x-vlc-timer'> x1 </div>"
|
||||
tgt.append(speed);
|
||||
}
|
||||
,createStatus:function(playerId) {
|
||||
var tgt = $('#' + playerId + '_toolbar' );
|
||||
var status = "<div id='" + playerId + "_status' style='float:left;text-align:center;width:200px' class='x-vlc-status'> </div>"
|
||||
tgt.append(status);
|
||||
}
|
||||
,createTimer:function(playerId) {
|
||||
var tgt = $('#' + playerId + '_toolbar' );
|
||||
var timer = "<div id='" + playerId + "_timer' style='float:left;text-align:center;width:100px' class='x-vlc-timer'> 00:00/00:00 </div>"
|
||||
@@ -325,6 +347,8 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
,btn_play:playerId + '_toolbar_btn0'
|
||||
,plugin:playerId + '_plugin'
|
||||
,timer:playerId + '_timer'
|
||||
,speed:playerId + '_speed'
|
||||
,stat:playerId + '_status'
|
||||
,status:null
|
||||
|
||||
,__getPlugin:function() {
|
||||
@@ -351,13 +375,14 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
// plugin.playlist.playItem(id);
|
||||
|
||||
}
|
||||
,play:function(uri) {
|
||||
,play:function(uri, duration) {
|
||||
var plugin = this.__getPlugin();
|
||||
if (!plugin) {
|
||||
setTimeout("VLCobject.getInstance('" + this.playerId + "').play('" + uri + "');", 500);
|
||||
return;
|
||||
}
|
||||
var options = this.options.get();
|
||||
|
||||
this.statusCheckStart();
|
||||
if (uri) {
|
||||
var id = plugin.playlist.add(uri, uri, options);
|
||||
@@ -379,16 +404,66 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
plugin.video.toggleFullscreen();
|
||||
//plugin.video.fullscreen();
|
||||
}
|
||||
,toggleSubtitles:function() {
|
||||
var plugin = this.__getPlugin();
|
||||
var tgt = $('.x-vlc-btn-sub');
|
||||
if (plugin.subtitle.track)
|
||||
{
|
||||
tgt.removeClass('x-vlc-btn-sub-clicked');
|
||||
plugin.subtitle.track = 0;
|
||||
this.setStatus('Subtitles disabled.');
|
||||
}
|
||||
else
|
||||
{
|
||||
tgt.addClass('x-vlc-btn-sub-clicked');
|
||||
plugin.subtitle.track = 1;
|
||||
this.setStatus('Subtitles enabled.');
|
||||
}
|
||||
}
|
||||
,setStatus:function(txt) {
|
||||
$('#' + this.stat)
|
||||
.html(txt)
|
||||
.show('slow')
|
||||
.delay(5000)
|
||||
.hide('slow');
|
||||
}
|
||||
,setSpeed:function() {
|
||||
var plugin = this.__getPlugin();
|
||||
if (plugin.input.rate == 1)
|
||||
this.setPlaying(true);
|
||||
else
|
||||
this.setPlaying(false);
|
||||
$('#' + this.speed).html(
|
||||
' x' + plugin.input.rate + ' ');
|
||||
this.setStatus('Set speed to x' + plugin.input.rate);
|
||||
}
|
||||
,faster:function() {
|
||||
var plugin = this.__getPlugin();
|
||||
if (plugin.input.rate < 8)
|
||||
plugin.input.rate *= 2;
|
||||
this.setSpeed();
|
||||
}
|
||||
,slower:function() {
|
||||
var plugin = this.__getPlugin();
|
||||
if (plugin.input.rate > 1)
|
||||
plugin.input.rate /= 2;
|
||||
this.setSpeed();
|
||||
}
|
||||
,togglePlay:function() {
|
||||
var plugin = this.__getPlugin();
|
||||
if (plugin.playlist.isPlaying) {
|
||||
plugin.playlist.togglePause();
|
||||
if (plugin.input.rate != 1)
|
||||
{
|
||||
plugin.input.rate = 1;
|
||||
this.setSpeed();
|
||||
}
|
||||
else
|
||||
plugin.playlist.togglePause();
|
||||
}
|
||||
else {
|
||||
plugin.playlist.play();
|
||||
}
|
||||
this.statusCheckStart();
|
||||
//plugin.playlist.togglePause();
|
||||
|
||||
}
|
||||
,stop:function() {
|
||||
@@ -499,6 +574,8 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
this.statusChanged();
|
||||
}
|
||||
if (plugin.playlist.isPlaying) {
|
||||
|
||||
|
||||
|
||||
this.updatePosition(plugin.input.time / 1000, plugin.input.length / 1000)
|
||||
|
||||
@@ -542,6 +619,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
return l;
|
||||
}
|
||||
,updateSlider:function(percentage) {
|
||||
return;
|
||||
var td1 = $('#' + this.slider +' :first-child :first-child :first-child');
|
||||
var td3 = $('#' + this.slider +' :first-child :first-child :last-child');
|
||||
|
||||
@@ -557,6 +635,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
tb.html(txt);
|
||||
}
|
||||
,updatePosition:function(position, length) {
|
||||
return;
|
||||
// update timer
|
||||
$('#' + this.timer).html(this.secsToTime(position) + '/' + this.secsToTime(length));
|
||||
var tb = $('#' +this.playerId + '_toolbar_slider' );
|
||||
@@ -592,7 +671,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
var table_id= this.playerId + '_toolbar_slider_tb';
|
||||
|
||||
var progress = "<table id='" + table_id + "' border=0 style='margin-top:5px;height:10px;cursor:pointer;display:inline' cellpadding=0 cellspacing=0 ><tr ><td width='0' class='x-vlc-slider'></td><td class='x-vlc-slider-thumb'></td><td width='" + (offset) + "' class='x-vlc-slider'></td></tr></table>";
|
||||
|
||||
|
||||
if ($('#' + slider_id).length == 0) {
|
||||
// div not preset exists
|
||||
var tgt = $('#' + this.playerId + '_toolbar' );
|
||||
@@ -43,7 +43,7 @@ puts {</div><div style="clear: both; padding-top: 1em">}
|
||||
menuitem "Service Management" "/img/spanner.png" \
|
||||
/services.shtml 217 228
|
||||
menuitem "Package Management" "/img/packages.png" \
|
||||
/pkg.shtml 217 228
|
||||
/pkg/index.shtml 217 228
|
||||
menuitem "Settings" "/images/326_1_00_Menu_Settings.png" \
|
||||
/cgi-bin/settings.jim 217 228
|
||||
menuitem "Diagnostics" "/img/diagnostics.png" \
|
||||
|
||||
@@ -39,7 +39,7 @@ tb "/images/323_1_10_Menu_Video.png" "Browse" "/cgi-bin/browse.jim"
|
||||
tb "/images/321_1_00_Menu_CHList.png" "Schedule" "/sched/sched.jim"
|
||||
tb "/images/328_1_26_Menu_TV_Guide.png" "EPG" $epglink
|
||||
tb "/img/spanner.png" "Services" "/services.shtml"
|
||||
tb "/img/packages.png" "Packages" "/pkg.shtml"
|
||||
tb "/img/packages.png" "Packages" "/pkg/index.shtml"
|
||||
tb "/images/326_1_00_Menu_Settings.png" "Settings" "/cgi-bin/settings.jim"
|
||||
tb "/img/diagnostics.png" "Diag" "/diag/diag.jim"
|
||||
eval_plugins toolbar
|
||||
|
||||
@@ -7,7 +7,6 @@ if {![acquire_lock webif_auto]} {
|
||||
puts "Cannot acquire exclusive lock, terminating."
|
||||
exit
|
||||
}
|
||||
puts "Got lock."
|
||||
|
||||
set tmp "/mod/tmp/webif_auto"
|
||||
if {![file exists $tmp]} {
|
||||
@@ -43,7 +42,7 @@ proc escape {str} {
|
||||
}
|
||||
|
||||
proc dedup {dir} {
|
||||
puts "DEDUP: \[$dir]"
|
||||
#puts "DEDUP: \[$dir]"
|
||||
puts [exec /mod/webif/html/dedup/dedup -yes [escape $dir]]
|
||||
exec /mod/webif/html/dedup/dedup -yes [escape $dir]
|
||||
}
|
||||
@@ -52,9 +51,8 @@ proc do_shrink {ts} {
|
||||
global tmp dustbin
|
||||
|
||||
set file [file rootname [$ts get file]]
|
||||
puts " SHRINK: $file"
|
||||
if {[catch {
|
||||
set perc [exec /mod/bin/stripts -aq [escape $file]]
|
||||
set perc [exec /mod/bin/stripts -aq $file]
|
||||
} msg]} {
|
||||
puts " Error: $msg"
|
||||
return
|
||||
@@ -66,13 +64,14 @@ proc do_shrink {ts} {
|
||||
}
|
||||
|
||||
if {$perc == 0} {
|
||||
puts " Already shrunk."
|
||||
#puts " Already shrunk."
|
||||
return
|
||||
}
|
||||
puts " SHRINK: $file"
|
||||
puts " Estimate $perc% saving."
|
||||
puts " Shrinking..."
|
||||
if {[catch {
|
||||
puts [exec /mod/bin/stripts -q [escape $file] $tmp/shrunk]
|
||||
puts [exec /mod/bin/stripts -q $file $tmp/shrunk]
|
||||
} msg]} {
|
||||
puts "Error during shrink: $msg"
|
||||
return
|
||||
@@ -114,19 +113,19 @@ proc do_decrypt {ts} {
|
||||
set file [$ts get file]
|
||||
set rfile [file rootname $file]
|
||||
set bfile [file tail $file]
|
||||
puts " DECRYPT: $rfile"
|
||||
|
||||
if {![$ts flag "ODEncrypted"]} {
|
||||
puts " Already decrypted."
|
||||
#puts " Already decrypted."
|
||||
return
|
||||
}
|
||||
|
||||
lassign [$ts dlnaloc] url
|
||||
if {$url eq ""} {
|
||||
puts " Not yet indexed."
|
||||
#puts " Not yet indexed."
|
||||
return
|
||||
}
|
||||
|
||||
puts " DECRYPT: $rfile"
|
||||
puts " DLNA: $url"
|
||||
exec wget -O "$tmp/$bfile" $url
|
||||
|
||||
@@ -187,6 +186,8 @@ proc scan {dir attr} {{indent 0}} {
|
||||
|
||||
#puts "[string repeat " " $indent]\[$dir]"
|
||||
|
||||
if {[string match {\[*} $dir]} continue
|
||||
|
||||
if {[file exists "$dir/.auto$attr"]} { $attr $dir }
|
||||
|
||||
foreach entry [readdir -nocomplain $dir] {
|
||||
|
||||
@@ -392,8 +392,10 @@ proc {epg dbfetch} {mode args} {
|
||||
#puts "QUERY -$query-"
|
||||
|
||||
set records {}
|
||||
foreach rec [$::channeldb query $query] {
|
||||
lappend records [epg new $rec]
|
||||
catch {
|
||||
foreach rec [$::channeldb query $query] {
|
||||
lappend records [epg new $rec]
|
||||
}
|
||||
}
|
||||
return $records
|
||||
}
|
||||
|
||||
@@ -35,6 +35,23 @@ if {![exists -proc get_channel_attr]} {
|
||||
return 0
|
||||
}
|
||||
|
||||
proc get_channel_attr_byorglcn {lcn {field hSvc}} {
|
||||
global rsvdb
|
||||
|
||||
set ff [$rsvdb query "
|
||||
select $field
|
||||
from channel.TBL_SVC
|
||||
where usOrgLcn = $lcn
|
||||
and usLcn < 800
|
||||
limit 1
|
||||
"]
|
||||
|
||||
if {[llength $ff] == 1} {
|
||||
return [lindex [lindex $ff 0] 1]
|
||||
}
|
||||
return 0
|
||||
}
|
||||
|
||||
proc get_channel_attr_byhsvc {hsvc {field usLcn}} {
|
||||
global rsvdb
|
||||
|
||||
|
||||
@@ -157,6 +157,12 @@ ts method copy {dst} {
|
||||
return 1
|
||||
}
|
||||
|
||||
ts method fileset {} {
|
||||
set root [file rootname $file]
|
||||
regsub -all {([\\["$])} $root {\\\1} root
|
||||
return [glob -nocomplain "${root}.*"]
|
||||
}
|
||||
|
||||
ts method settitle {newtitle} {
|
||||
if {[string length newtitle] > 48} { return }
|
||||
|
||||
|
||||