Initial commit: Add ShadowStream media application with file scanning and classification
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
$(function(){
|
||||
$('#window_batch').dialog({
|
||||
autoOpen: false,
|
||||
width: 600,
|
||||
modal: true,
|
||||
buttons:{
|
||||
"<?vlc gettext("Send") ?>":function(){
|
||||
var cmds = $('#batchCommand').val().split("\n");
|
||||
for(var i=0;i<cmds.length;i++){
|
||||
cmds[i] = cmds[i].replace(/^#.*$/,'\n');
|
||||
}
|
||||
cmds = cmds.join(";").replace(/\n/g,';').replace(/;+/g,';').replace(/^;/,'');
|
||||
sendVLMCmd(cmds);
|
||||
$(this).dialog('close');
|
||||
},
|
||||
"<?vlc gettext("Cancel") ?>":function(){
|
||||
$(this).dialog('close');
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
//]]>
|
||||
</script>
|
||||
<div id="window_batch" title="<?vlc gettext("VLM Batch Commands") ?>">
|
||||
<textarea id="batchCommand" cols="50" rows="16">
|
||||
<?vlc gettext("#paste your VLM commands here") ?>
|
||||
|
||||
<?vlc gettext("#separate commands with a new line or a semi-colon") ?>
|
||||
</textarea>
|
||||
</div>
|
@@ -0,0 +1,44 @@
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
var browse_target = 'default';
|
||||
$(function(){
|
||||
$('#window_browse').dialog({
|
||||
autoOpen: false,
|
||||
width: 600,
|
||||
height: 650,
|
||||
modal: true,
|
||||
resizable: false,
|
||||
buttons: {
|
||||
"<?vlc gettext("Open") ?>":function(){
|
||||
$('li.ui-selected','#browse_elements').each(function(){
|
||||
$(this).dblclick();
|
||||
});
|
||||
},
|
||||
"<?vlc gettext("Enqueue") ?>": function() {
|
||||
$('li.ui-selected','#browse_elements').each(function(){
|
||||
var path = this.getAttribute('opendir') ? this.getAttribute('opendir') : this.getAttribute('openfile');
|
||||
switch(browse_target){
|
||||
default:
|
||||
sendCommand('command=in_enqueue&input='+encodeURI(path));
|
||||
setTimeout(function(){updatePlayList(true);},1000);
|
||||
break;
|
||||
}
|
||||
});
|
||||
$(this).dialog("close");
|
||||
},
|
||||
"<?vlc gettext("Cancel") ?>" : function(){
|
||||
$(this).dialog("close")
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
//]]>
|
||||
</script>
|
||||
|
||||
<div id="window_browse" title="<?vlc gettext("Media Browser") ?>">
|
||||
<div style="height:500px;overflow: auto;">
|
||||
<ol id='browse_elements' selectable="selectable">
|
||||
<li><?vlc gettext("Play List") ?></li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
@@ -0,0 +1,394 @@
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
$(function(){
|
||||
$('#stream_out_method').change(function(){
|
||||
$('#output_options').empty();
|
||||
switch($(this).val()){
|
||||
case 'file':
|
||||
var options = $('#file_options').clone();
|
||||
break;
|
||||
case 'http':
|
||||
var options = $('#net_options').clone();
|
||||
break;
|
||||
case 'mmsh':
|
||||
case 'rtp':
|
||||
case 'udp':
|
||||
var options = $('#net_options').clone();
|
||||
$('#stream_out_file_',options).val('');
|
||||
break;
|
||||
}
|
||||
$('[id]',options).each(function(){
|
||||
$(this).attr('id',$(this).attr('id').substr(0,$(this).attr('id').length-1));
|
||||
$(this).attr('name',$(this).attr('name').substr(0,$(this).attr('name').length-1));
|
||||
});
|
||||
$(options).css({
|
||||
'visibility':'visible',
|
||||
'display':'block'
|
||||
})
|
||||
$(options).appendTo('#output_options');
|
||||
});
|
||||
$('#stream_out_mux').change(function(){
|
||||
if($(this).val()=='ffmpeg'){
|
||||
$('#stream_out_mux_opts').val('{mux=flv}');
|
||||
}else{
|
||||
$('#stream_out_mux_opts').val('');
|
||||
}
|
||||
});
|
||||
$('#window_create_stream').dialog({
|
||||
autoOpen: false,
|
||||
width:800,
|
||||
modal: true,
|
||||
buttons:{
|
||||
"<?vlc gettext("Create") ?>":function(){
|
||||
var e = false;
|
||||
$('input',$(this)).removeClass('ui-state-error');
|
||||
$('#stream_error_container').css({
|
||||
'visibility':'hidden',
|
||||
'display':'none'
|
||||
});
|
||||
if(!$('#stream_name').val()){
|
||||
$('#stream_name').addClass('ui-state-error');
|
||||
e = true;
|
||||
}
|
||||
if(!$('#stream_input').val()){
|
||||
$('#stream_input').addClass('ui-state-error');
|
||||
e = true;
|
||||
}
|
||||
|
||||
if($('#stream_out_method').val()!='file' && !$('#stream_out_port').val()){
|
||||
$('#stream_out_port').addClass('ui-state-error');
|
||||
e = true;
|
||||
}
|
||||
if($('#stream_out_method').val()!='file' && !$('#stream_out_dest').val()){
|
||||
$('#stream_out_dest').addClass('ui-state-error');
|
||||
e = true;
|
||||
}
|
||||
|
||||
if($('#stream_out_method').val()=='file' && !$('#stream_out_filename').val()){
|
||||
$('#stream_out_filename').addClass('ui-state-error');
|
||||
e = true;
|
||||
}
|
||||
if(e){
|
||||
$('#stream_error_message').empty();
|
||||
$('#stream_error_message').append('One or more fields require attention.');
|
||||
$('#stream_error_container').css({
|
||||
'visibility':'visible',
|
||||
'display':'block'
|
||||
})
|
||||
}else{
|
||||
sendVLMCmd(buildStreamCode());
|
||||
$(this).dialog('close');
|
||||
}
|
||||
},
|
||||
"<?vlc gettext("Cancel") ?>":function(){
|
||||
$(this).dialog('close');
|
||||
}
|
||||
}
|
||||
});
|
||||
$('#button_input').click(function(){
|
||||
browse_target = '#stream_input';
|
||||
browse();
|
||||
$('#window_browse').dialog('open');
|
||||
});
|
||||
$('#button_in_screen').click(function(){
|
||||
$('#stream_input').val('screen://');
|
||||
});
|
||||
});
|
||||
function buildStreamCode(){
|
||||
var name = $('#stream_name').val().replace(' ','_');
|
||||
var infile = $('#stream_input').val();
|
||||
|
||||
var vcodec = $('#stream_vcodec').val();
|
||||
var vb = $('#stream_vb').val();
|
||||
var fps = $('#stream_fps').val();
|
||||
var scale = $('#stream_scale').val();
|
||||
var dlace = $('#stream_deinterlace').is(':checked');
|
||||
|
||||
var acodec = $('#stream_acodec').val();
|
||||
var ab = $('#stream_ab').val();
|
||||
var srate = $('#stream_samplerate').val();
|
||||
var channels = $('#stream_channels').val();
|
||||
|
||||
var scodec = $('#stream_scodec').val() && !$('#stream_soverlay').checked ? ','+$('#stream_scodec').val() : '';
|
||||
var soverlay = $('#stream_soverlay').is(':checked') ? ',soverlay' : '';
|
||||
|
||||
var outmethod = $('#stream_out_method').val();
|
||||
var mux = $('#stream_out_mux').val();
|
||||
var muxoptions = $('#stream_out_mux_opts').val() ? '{'+$('#stream_out_mux_opts').val()+'}' : '';
|
||||
|
||||
if(outmethod=='file'){
|
||||
var filename = $('#stream_out_filename').val();
|
||||
}else{
|
||||
var outport = $('#stream_out_port').val();
|
||||
var outdest = $('#stream_out_dest').val();
|
||||
var outfile = $('#stream_out_file').val();
|
||||
}
|
||||
var dest = outmethod=='file' ? filename : (outfile ? outdest+':'+outport+'/'+outfile : outdest+':'+outport);
|
||||
var inCode = 'new '+name+' broadcast enabled input "'+infile+'" ';
|
||||
var transCode = 'output #transcode{vcodec='+vcodec+',vb='+vb+',fps='+fps+',scale='+scale+',acodec='+acodec+',ab='+ab+',samplerate='+srate+',channels='+channels+scodec+soverlay+'}';
|
||||
var outCode = ':std{access='+outmethod+',mux='+mux+muxoptions+',dst='+dest+'}';
|
||||
|
||||
return inCode+transCode+outCode;
|
||||
}
|
||||
//]]>
|
||||
</script>
|
||||
<div id="window_create_stream" title="<?vlc gettext("Create Stream") ?>">
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td style="text-align:right" valign="top">
|
||||
<h5><?vlc gettext("Stream name") ?></h5>
|
||||
</td>
|
||||
<td colspan="5" valign="top">
|
||||
<input type="text" name="stream_name" id="stream_name" value=""/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th colspan="2" valign="top">
|
||||
<h5><?vlc gettext("Video") ?></h5>
|
||||
</th>
|
||||
<th colspan="2" valign="top">
|
||||
<h5><?vlc gettext("Audio") ?></h5>
|
||||
</th>
|
||||
<th colspan="2" valign="top">
|
||||
<h5><?vlc gettext("Subtitles") ?></h5>
|
||||
</th>
|
||||
<th colspan="2" valign="top">
|
||||
<h5><?vlc gettext("Output") ?></h5>
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right" valign="top"><?vlc gettext("Video codec") ?></td>
|
||||
<td valign="top">
|
||||
<select name="stream_vcodec" id="stream_vcodec">
|
||||
<option value="FLV1">FLV1</option>
|
||||
<option value="mp1v">mp1v</option>
|
||||
<option value="mp2v">mp2v</option>
|
||||
<option value="mp4v">mp4v</option>
|
||||
<option value="DIV1">DIV1</option>
|
||||
<option value="DIV2">DIV2</option>
|
||||
<option value="DIV3">DIV3</option>
|
||||
<option value="h263">H263</option>
|
||||
<option value="h264">H264</option>
|
||||
<option value="WMV1">WMV1</option>
|
||||
<option value="WMV2">WMV2</option>
|
||||
<option value="MJPG">MJPG</option>
|
||||
<option value="theo">theo</option>
|
||||
</select>
|
||||
</td>
|
||||
<td style="text-align:right" valign="top"><?vlc gettext("Audio codec") ?></td>
|
||||
<td valign="top">
|
||||
<select name="stream_acodec" id="stream_acodec">
|
||||
<option value="mp3">mp3</option>
|
||||
<option value="mpga">mpga</option>
|
||||
<option value="mp2a">mp2a</option>
|
||||
<option value="mp4a">mp4a</option>
|
||||
<option value="a52">a52</option>
|
||||
<option value="vorb">vorb</option>
|
||||
<option value="flac">flac</option>
|
||||
<option value="spx">spx</option>
|
||||
<option value="s16l">s16l</option>
|
||||
<option value="fl32">fl32</option>
|
||||
</select>
|
||||
</td>
|
||||
<td style="text-align:right" valign="top"><?vlc gettext("Subtitle codec") ?></td>
|
||||
<td valign="top">
|
||||
<select name="stream_scodec" id="stream_scodec">
|
||||
<option value=""><?vlc gettext("None") ?></option>
|
||||
<option value="dvbs">dvbs</option>
|
||||
</select>
|
||||
</td>
|
||||
<td style="text-align:right" valign="top"><?vlc gettext("Output method") ?></td>
|
||||
<td valign="top">
|
||||
<select name="stream_out_method" id="stream_out_method">
|
||||
<option value="http">HTTP</option>
|
||||
<option value="file"><?vlc gettext("File") ?></option>
|
||||
<option value="mmsh">MMSH</option>
|
||||
<option value="rtp">RTP</option>
|
||||
<option value="udp">UDP</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right" valign="top"><?vlc gettext("Video bitrate") ?></td>
|
||||
<td valign="top">
|
||||
<select name="stream_vb" id="stream_vb">
|
||||
<option value="4096">4096</option>
|
||||
<option value="3072">3072</option>
|
||||
<option value="2048">2048</option>
|
||||
<option value="1024">1024</option>
|
||||
<option value="768">768</option>
|
||||
<option value="512">512</option>
|
||||
<option value="384">384</option>
|
||||
<option value="256">256</option>
|
||||
<option value="192">192</option>
|
||||
<option value="128">128</option>
|
||||
<option value="96">96</option>
|
||||
<option value="64">64</option>
|
||||
<option value="32">32</option>
|
||||
<option value="16">16</option>
|
||||
</select>
|
||||
</td>
|
||||
<td style="text-align:right" valign="top"><?vlc gettext("Audio bitrate") ?></td>
|
||||
<td valign="top">
|
||||
<select name="stream_ab" id="stream_ab">
|
||||
<option value="512">512</option>
|
||||
<option value="384">384</option>
|
||||
<option value="256">256</option>
|
||||
<option value="192">192</option>
|
||||
<option value="128">128</option>
|
||||
<option value="96">96</option>
|
||||
<option value="64">64</option>
|
||||
<option value="32">32</option>
|
||||
<option value="16">16</option>
|
||||
</select>
|
||||
</td>
|
||||
<td style="text-align:right" valign="top"><?vlc gettext("Overlay") ?></td>
|
||||
<td valign="top">
|
||||
<input type="checkbox" name="stream_soverlay" id="stream_soverlay" value="1" />
|
||||
</td>
|
||||
<td style="text-align:right" valign="top"><?vlc gettext("Multiplexer") ?></td>
|
||||
<td valign="top">
|
||||
<select name="stream_out_mux" id="stream_out_mux">
|
||||
<option value="ts">MPEG TS</option>
|
||||
<option value="ps">MPEG PS</option>
|
||||
<option value="mpeg1">MPEG 1</option>
|
||||
<option value="ogg">OGG</option>
|
||||
<option value="asf">ASF</option>
|
||||
<option value="mp4">MP4</option>
|
||||
<option value="mov">MOV</option>
|
||||
<option value="wav">WAV</option>
|
||||
<option value="raw">Raw</option>
|
||||
<option value="ffmpeg" selected="selected">FFMPEG</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right" valign="top"><?vlc gettext("Video FPS") ?></td>
|
||||
<td valign="top">
|
||||
<select name="stream_fps" id="stream_fps">
|
||||
<option value="300">300</option>
|
||||
<option value="120">120</option>
|
||||
<option value="100">100</option>
|
||||
<option value="72">72</option>
|
||||
<option value="60">60</option>
|
||||
<option value="50">50</option>
|
||||
<option value="48">48</option>
|
||||
<option value="30">30</option>
|
||||
<option value="25" selected="selected">25</option>
|
||||
<option value="24">24</option>
|
||||
</select>
|
||||
</td>
|
||||
<td style="text-align:right" valign="top"><?vlc gettext("Audio sample rate") ?></td>
|
||||
<td valign="top">
|
||||
<select name="stream_samplerate" id="stream_samplerate">
|
||||
<option value="192000">192 KHz</option>
|
||||
<option value="96000">96 KHz</option>
|
||||
<option value="50000">50 KHz</option>
|
||||
<option value="48000">48 KHz</option>
|
||||
<option value="44100" selected="selected">44 KHz</option>
|
||||
<option value="32000">32 KHz</option>
|
||||
<option value="22050">22 KHz</option>
|
||||
<option value="16000">16 KHz</option>
|
||||
<option value="11025">11 KHz</option>
|
||||
<option value="8000">8 KHz</option>
|
||||
</select>
|
||||
</td>
|
||||
<td colspan="2" valign="top"> </td>
|
||||
<td style="text-align:right" valign="top"><?vlc gettext("MUX options") ?></td>
|
||||
<td valign="top">
|
||||
<input type="text" name="stream_out_mux_opts" id="stream_out_mux_opts" value="{mux=flv}" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right" valign="top"><?vlc gettext("Video scale") ?></td>
|
||||
<td valign="top">
|
||||
<select name="stream_scale" id="stream_scale">
|
||||
<option value="0.25">25%</option>
|
||||
<option value="0.5">50%</option>
|
||||
<option value="0.75">75%</option>
|
||||
<option selected="selected" value="1">100%</option>
|
||||
<option value="1.25">125%</option>
|
||||
<option value="1.5">150%</option>
|
||||
<option value="1.75">175%</option>
|
||||
<option value="2">200%</option>
|
||||
</select>
|
||||
</td>
|
||||
<td style="text-align:right" valign="top"><?vlc gettext("Audio channels") ?></td>
|
||||
<td valign="top">
|
||||
<select name="stream_channels" id="stream_channels" >
|
||||
<option value="1">1</option>
|
||||
<option value="2" selected="selected">2</option>
|
||||
<option value="4">4</option>
|
||||
<option value="6">6</option>
|
||||
</select>
|
||||
</td>
|
||||
<td colspan="2" valign="top"> </td>
|
||||
<td colspan="2" rowspan="2" valign="top">
|
||||
<div id="output_options">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="text-align:right" valign="top"><?vlc gettext("Output port") ?></td>
|
||||
<td valign="top"><input type="text" name="stream_out_port" id="stream_out_port" value="8081" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right" valign="top"><?vlc gettext("Output destination") ?></td>
|
||||
<td><input type="text" name="stream_out_dest" id="stream_out_dest" value="0.0.0.0" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right" valign="top"><?vlc gettext("Output file") ?></td>
|
||||
<td valign="top"><input type="text" name="stream_out_file" id="stream_out_file" value="stream.flv" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td valign="top" style="text-align:right"><?vlc gettext("Deinterlace") ?></td>
|
||||
<td valign="top">
|
||||
<input type="checkbox" name="stream_deinterlace" id="stream_deinterlace" value="1" />
|
||||
</td>
|
||||
<td colspan="2" valign="top"> </td>
|
||||
<td colspan="2" valign="top"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right" colspan="2" valign="top">
|
||||
<?vlc gettext("Input media") ?>
|
||||
</td>
|
||||
<td colspan="6" valign="top">
|
||||
<input type="text" name="stream_input" id="stream_input" value="" size="50" />
|
||||
<div id="button_input" class="button icon ui-widget ui-state-default" title="<?vlc gettext("Media file") ?>" opendialog="window_browse"><span class="ui-icon ui-icon-eject"></span></div>
|
||||
<div id="button_in_screen" class="button icon ui-widget ui-state-default" title="<?vlc gettext("Capture screen") ?>" ><span class="ui-icon ui-icon-contact"></span></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="ui-widget" id="stream_error_container" style="display:none;visibility: hidden;">
|
||||
<div class="ui-state-error ui-corner-all" style="padding: 0 .7em;">
|
||||
<p><span class="ui-icon ui-icon-alert" style="float: left; margin-right: .3em;"></span>
|
||||
<strong><?vlc gettext("Error:") ?></strong> <span id="stream_error_message"><?vlc gettext("Sample ui-state-error style.") ?></span></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="net_options" style="display:none;visibility: hidden;">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="text-align:right" valign="top"><?vlc gettext("Output port") ?></td>
|
||||
<td valign="top"><input type="text" name="stream_out_port_" id="stream_out_port_" value="8081" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right" valign="top"><?vlc gettext("Output destination") ?></td>
|
||||
<td valign="top"><input type="text" name="stream_out_dest_" id="stream_out_dest_" value="0.0.0.0" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right" valign="top"><?vlc gettext("Output file") ?></td>
|
||||
<td valign="top"><input type="text" name="stream_out_file_" id="stream_out_file_" value="stream.flv" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<div id="file_options" style="display:none;visibility: hidden;">
|
||||
<table>
|
||||
<tr>
|
||||
<td style="text-align:right" valign="top"><?vlc gettext("File name") ?></td>
|
||||
<td valign="top"><input type="text" name="stream_out_filename_" id="stream_out_filename_"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
@@ -0,0 +1,54 @@
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
var bands = new Array('60Hz','170Hz','310Hz','600Hz','1kHz','3kHz','6kHz','12kHz','14kHz','16kHz');
|
||||
$(function(){
|
||||
$('#window_equalizer').dialog({
|
||||
autoOpen: false,
|
||||
height: 650,
|
||||
width: 500,
|
||||
resizable: false,
|
||||
buttons:{
|
||||
"<?vlc gettext("Reset") ?>":function(){
|
||||
$('.eqBand').each(function(){
|
||||
$(this).slider('value',0);
|
||||
sendEQCmd({
|
||||
command:'equalizer',
|
||||
val: 0,
|
||||
band: $(this).attr('id').substr(2)
|
||||
})
|
||||
});
|
||||
|
||||
},
|
||||
"<?vlc gettext("Close") ?>":function(){
|
||||
$(this).dialog("close");
|
||||
}
|
||||
}
|
||||
});
|
||||
$('#preamp').slider({
|
||||
min: -20,
|
||||
max: 20,
|
||||
step: 0.1,
|
||||
range: "min",
|
||||
animate: true,
|
||||
stop: function(event,ui){
|
||||
$('#preamp_txt').empty().append(ui.value+'dB');
|
||||
sendEQCmd({
|
||||
command:'preamp',
|
||||
val: ui.value
|
||||
})
|
||||
},
|
||||
slide: function(event,ui){
|
||||
$('#preamp_txt').empty().append(ui.value+'dB');
|
||||
}
|
||||
});
|
||||
});
|
||||
//]]>
|
||||
</script>
|
||||
<div id="window_equalizer" title="<?vlc gettext("Graphical Equalizer") ?>">
|
||||
<div style="margin: 5px 5px 5px 5px;">
|
||||
<div><?vlc gettext("Preamp:") ?> <span id="preamp_txt">0dB</span></div>
|
||||
</div>
|
||||
<div style="margin: 5px 5px 10px 5px;">
|
||||
<div id="preamp" style="font-size: 18px;"></div>
|
||||
</div>
|
||||
</div>
|
@@ -0,0 +1,19 @@
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$('#window_error').dialog({
|
||||
autoOpen: false,
|
||||
width:400,
|
||||
modal: true,
|
||||
buttons:{
|
||||
"<?vlc gettext("Close") ?>":function(){
|
||||
$('#error_container').empty();
|
||||
$(this).dialog('close');
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
</script>
|
||||
<div id="window_error" title="<?vlc gettext("Error!") ?>">
|
||||
<div class="ui-state-error"><div class="ui-icon ui-icon-alert"></div></div>
|
||||
<div id="error_container" class="ui-state-error"></div>
|
||||
</div>
|
@@ -0,0 +1,146 @@
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
$(function(){
|
||||
$('#window_mosaic').dialog({
|
||||
autoOpen: false,
|
||||
width: 800,
|
||||
maxWidth: 1000,
|
||||
minWidth: 800,
|
||||
minHeight: 500,
|
||||
modal: true,
|
||||
buttons: {
|
||||
"<?vlc gettext("Create") ?>": function() {
|
||||
$(this).dialog("close");
|
||||
},
|
||||
"<?vlc gettext("Cancel") ?>" : function(){
|
||||
$(this).dialog("close")
|
||||
}
|
||||
}
|
||||
});
|
||||
$('#mosaic_bg').resizable({
|
||||
maxWidth: 780,
|
||||
ghost: true
|
||||
});
|
||||
$('#mosaic_tiles').draggable({
|
||||
maxWidth: 780,
|
||||
handle: 'h3',
|
||||
containment: [13,98,99999999,99999999],
|
||||
drag:function(event,ui){
|
||||
var xoff = ui.offset.left - $('#mosaic_bg').offset().left;
|
||||
var yoff = ui.offset.top - $('#mosaic_bg').offset().top-17;
|
||||
$('#mosaic_xoff').val(xoff);
|
||||
$('#mosaic_yoff').val(yoff);
|
||||
}
|
||||
});
|
||||
$('input','#mosaic_options').change(setMosaic);
|
||||
setMosaic();
|
||||
});
|
||||
function setMosaic(){
|
||||
var rows = Number($('#mosaic_rows').val());
|
||||
var cols = Number($('#mosaic_cols').val());
|
||||
var n = 0;
|
||||
$('#mosaic_tiles').empty()
|
||||
$('#mosaic_tiles').append('<tr><td colspan="99"><h3 style="margin:0px;cursor:move; font-weight:normal" class="ui-widget-header"><?vlc gettext("Mosaic Tiles") ?></h3></td></tr>');
|
||||
for(var i=0;i<rows;i++){
|
||||
$('#mosaic_tiles').append('<tr>');
|
||||
for(var j=0;j<cols;j++){
|
||||
$('tr:last','#mosaic_tiles').append('<td class="mosaic">');
|
||||
$('td:last','#mosaic_tiles').append('<div id="mosaic_open__'+n+'" class="button icon ui-widget ui-state-default" title="Open Media" style="margin-top:49%"><span class="ui-icon ui-icon-eject"></span></div>');
|
||||
n++;
|
||||
}
|
||||
}
|
||||
$('.mosaic').resizable({
|
||||
alsoResize: '.mosaic',
|
||||
resize:function(event,ui){
|
||||
$('#mosaic_width').val(ui.size.width);
|
||||
$('#mosaic_height').val(ui.size.height);
|
||||
$('[id^=mosaic_open]').css({
|
||||
'margin-top': Number($('#mosaic_height').val()/2)
|
||||
});
|
||||
}
|
||||
});
|
||||
$('.mosaic').css({
|
||||
'background': '#33FF33',
|
||||
'width': Number($('#mosaic_width').val()),
|
||||
'height':Number($('#mosaic_height').val()),
|
||||
'text-align': 'center',
|
||||
'float' : 'left',
|
||||
'border' : '1px solid #990000',
|
||||
'margin-left': Number($('#mosaic_rbord').val()),
|
||||
'margin-right': Number($('#mosaic_rbord').val()),
|
||||
'margin-top': Number($('#mosaic_cbord').val()),
|
||||
'margin-bottom': Number($('#mosaic_cbord').val())
|
||||
});
|
||||
$('[id^=mosaic_open_]').each(function(){
|
||||
$(this).css({
|
||||
'margin-top': Number($('#mosaic_height').val()/2)
|
||||
});
|
||||
$(this).click(function(){
|
||||
browse_target = '#'+$(this).attr('id');
|
||||
get_dir();
|
||||
$('#window_browse').dialog('open');
|
||||
});
|
||||
});
|
||||
|
||||
$('.button').hover(
|
||||
function() { $(this).addClass('ui-state-hover'); },
|
||||
function() { $(this).removeClass('ui-state-hover'); }
|
||||
);
|
||||
}
|
||||
//]]>
|
||||
</script>
|
||||
|
||||
<div id="window_mosaic" title="<?vlc gettext("Create Mosaic") ?>">
|
||||
<table id="mosaic_options">
|
||||
<tr>
|
||||
<td style="text-align:right"><?vlc gettext("Rows") ?></td>
|
||||
<td>
|
||||
<input type="text" name="mosaic_rows" id="mosaic_rows" size="3" value="2"/>
|
||||
</td>
|
||||
<td style="text-align:right"><?vlc gettext("X offset") ?></td>
|
||||
<td>
|
||||
<input type="text" name="mosaic_xoff" id="mosaic_xoff" size="3" value="0" disabled="disabled"/>
|
||||
</td>
|
||||
<td style="text-align:right"><?vlc gettext("Row border") ?></td>
|
||||
<td>
|
||||
<input type="text" name="mosaic_rbord" id="mosaic_rbord" size="3" value="5"/>
|
||||
</td>
|
||||
<td style="text-align:right"><?vlc gettext("Width") ?></td>
|
||||
<td>
|
||||
<input type="text" name="mosaic_width" id="mosaic_width" size="3" value="100" disabled="disabled"/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right"><?vlc gettext("Columns") ?></td>
|
||||
<td>
|
||||
<input type="text" name="mosaic_cols" id="mosaic_cols" size="3" value="2"/>
|
||||
</td>
|
||||
<td style="text-align:right"><?vlc gettext("Y offset") ?></td>
|
||||
<td>
|
||||
<input type="text" name="mosaic_yoff" id="mosaic_yoff" size="3" value="0" disabled="disabled"/>
|
||||
</td>
|
||||
<td style="text-align:right"><?vlc gettext("Column border") ?></td>
|
||||
<td>
|
||||
<input type="text" name="mosaic_cbord" id="mosaic_cbord" size="3" value="5"/>
|
||||
</td>
|
||||
<td style="text-align:right"><?vlc gettext("Height") ?></td>
|
||||
<td>
|
||||
<input type="text" name="mosaic_height" id="mosaic_height" size="3" value="100" disabled="disabled"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div id="mosaic_bg" class="ui-widget-content" style="background: #3333FF;width:400px; height:300px;text-align: center; vertical-align: middle;">
|
||||
<h3 style="margin:0px;font-weight:normal" class="ui-widget-header"><?vlc gettext("Background") ?></h3>
|
||||
<table id="mosaic_tiles" class="ui-widget-content" cellpadding="0" cellspacing="0">
|
||||
<tr><td colspan="99"><h3 style="margin:0px;cursor:move; font-weight:normal" class="ui-widget-header"><?vlc gettext("Mosaic Tiles") ?></h3></td></tr>
|
||||
<tr>
|
||||
<td class="mosaic"></td>
|
||||
<td class="mosaic"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="mosaic"></td>
|
||||
<td class="mosaic"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
@@ -0,0 +1,79 @@
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
$(function(){
|
||||
$('#window_offset').dialog({
|
||||
autoOpen: false,
|
||||
minWidth: 400,
|
||||
buttons:{
|
||||
"Close":function(){
|
||||
$(this).dialog("close");
|
||||
}
|
||||
}
|
||||
});
|
||||
$( "#rateSlider" ).slider({
|
||||
range: "min",
|
||||
value: 1,
|
||||
min: 0.25,
|
||||
max: 10,
|
||||
step: 0.25,
|
||||
stop: function( event, ui ) {
|
||||
sendCommand({
|
||||
'command':'rate',
|
||||
'val':(ui.value)
|
||||
})
|
||||
},
|
||||
slide: function(event,ui){
|
||||
$('#currentRate').empty();
|
||||
$('#currentRate').append(ui.value+'x');
|
||||
}
|
||||
});
|
||||
$( "#audioSlider" ).slider({
|
||||
range: "min",
|
||||
value: 0,
|
||||
min: -10,
|
||||
max: 10,
|
||||
step: 0.25,
|
||||
stop: function( event, ui ) {
|
||||
sendCommand({
|
||||
'command':'audiodelay',
|
||||
'val':(ui.value)
|
||||
})
|
||||
},
|
||||
slide: function(event,ui){
|
||||
$('#currentAudioDelay').empty();
|
||||
$('#currentAudioDelay').append(ui.value+'s');
|
||||
}
|
||||
});
|
||||
$( "#subtitleSlider" ).slider({
|
||||
range: "min",
|
||||
value: 0,
|
||||
min: -10,
|
||||
max: 10,
|
||||
step: 0.25,
|
||||
stop: function( event, ui ) {
|
||||
sendCommand({
|
||||
'command':'subdelay',
|
||||
'val':(ui.value)
|
||||
})
|
||||
},
|
||||
slide: function(event,ui){
|
||||
$('#currentSubtitleDelay').empty();
|
||||
$('#currentSubtitleDelay').append(ui.value+'s');
|
||||
}
|
||||
});
|
||||
});
|
||||
//]]>
|
||||
</script>
|
||||
<div id="window_offset" title="<?vlc gettext("Track Synchronisation") ?>">
|
||||
<div><?vlc gettext("Playback Rate") ?></div>
|
||||
<div id="rateSlider" title="<?vlc gettext("Playback Rate") ?>"></div>
|
||||
<div id="currentRate" class="dynamic">1x</div>
|
||||
<br/>
|
||||
<div><?vlc gettext("Audio Delay") ?></div>
|
||||
<div id="audioSlider" title="<?vlc gettext("Audio Delay") ?>"></div>
|
||||
<div id="currentAudioDelay" class="dynamic">0s</div>
|
||||
<br/>
|
||||
<div><?vlc gettext("Subtitle Delay") ?></div>
|
||||
<div id="subtitleSlider" title="<?vlc gettext("Subtitle Delay") ?>"></div>
|
||||
<div id="currentSubtitleDelay" class="dynamic">0s</div>
|
||||
</div>
|
@@ -0,0 +1,40 @@
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
$('#window_stream_config').dialog({
|
||||
autoOpen: false,
|
||||
width:400,
|
||||
modal: true,
|
||||
buttons:{
|
||||
"<?vlc gettext("Okay") ?>":function(){
|
||||
$('#player').empty();
|
||||
$('#player').attr('href',$('#stream_protocol').val()+'://'+$('#stream_host').val()+':'+$('#stream_port').val()+'/'+$('#stream_file').val());
|
||||
flowplayer("player", "https://releases.flowplayer.org/swf/flowplayer-3.2.7.swf");
|
||||
$(this).dialog('close');
|
||||
},
|
||||
"<?vlc gettext("Cancel") ?>":function(){
|
||||
$(this).dialog('close');
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
</script>
|
||||
<div id="window_stream_config" title="<?vlc gettext("Stream Input Configuration") ?>">
|
||||
<table>
|
||||
<tr>
|
||||
<td><?vlc gettext("Protocol") ?></td>
|
||||
<td><input type="text" name="stream_protocol" id="stream_protocol" value="http" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?vlc gettext("Host") ?></td>
|
||||
<td><input type="text" name="stream_host" id="stream_host" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?vlc gettext("Port") ?></td>
|
||||
<td><input type="text" name="stream_port" id="stream_port" value="8081" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?vlc gettext("File") ?></td>
|
||||
<td><input type="text" name="stream_file" id="stream_file" value="stream.flv" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
@@ -0,0 +1,99 @@
|
||||
<script type="text/javascript">
|
||||
//<![CDATA[
|
||||
var stream_server = window.location.hostname;
|
||||
function configureStreamWindow(stream_protocol,stream_server,stream_port,stream_file){
|
||||
$('#stream_protocol').val(stream_protocol);
|
||||
$('#stream_host').val(stream_server);
|
||||
$('#stream_port').val(stream_port);
|
||||
$('#stream_file').val(stream_file);
|
||||
}
|
||||
$(function(){
|
||||
$('#window_streams').dialog({
|
||||
autoOpen: false,
|
||||
minWidth: 600,
|
||||
minHeight: 430,
|
||||
buttons:{
|
||||
"<?vlc gettext("Close") ?>":function(){
|
||||
$(this).dialog("close");
|
||||
}
|
||||
}
|
||||
});
|
||||
$('#window_stream_config').dialog({
|
||||
autoOpen: false,
|
||||
width:400,
|
||||
modal: true,
|
||||
buttons:{
|
||||
"<?vlc gettext("Okay") ?>":function(){
|
||||
$(this).dialog('close');
|
||||
}
|
||||
}
|
||||
});
|
||||
$('#button_create_stream').click(function(){
|
||||
$('#window_create_stream').dialog('open');
|
||||
return false;
|
||||
});
|
||||
$('#button_clear_streams').click(function(){
|
||||
sendVLMCmd('del all');
|
||||
return false;
|
||||
});
|
||||
$('#button_config_streams').click(function(){
|
||||
$('#window_stream_config').dialog('open');
|
||||
return false;
|
||||
});
|
||||
$('#button_create_mosaic').click(function(){
|
||||
$('#window_mosaic').dialog('open');
|
||||
return false;
|
||||
});
|
||||
$('#button_refresh_streams').click(function(){
|
||||
updateStreams();
|
||||
return false;
|
||||
})
|
||||
$('#stream_host').val(stream_server);
|
||||
});
|
||||
//]]>
|
||||
</script>
|
||||
<div id="stream_status_" style="visibility:hidden;display:none;">
|
||||
<h3><a href="#" id="stream_title_"></a></h3>
|
||||
<div>
|
||||
<div id="button_stream_stop_" class="button icon ui-widget ui-state-default" title="<?vlc gettext("Stop") ?>"><span class="ui-icon ui-icon-stop"></span></div>
|
||||
<div id="button_stream_play_" class="button icon ui-widget ui-state-default" title="<?vlc gettext("Play") ?>"><span class="ui-icon ui-icon-play"></span></div>
|
||||
<div id="button_stream_loop_" class="button icon ui-widget ui-state-default" title="<?vlc gettext("Loop") ?>"><span class="ui-icon ui-icon-refresh"></span></div>
|
||||
<div id="button_stream_delete_" class="button icon ui-widget ui-state-default" title="<?vlc gettext("Remove Stream") ?>"><span class="ui-icon ui-icon-trash"></span></div>
|
||||
<div>Title: <span id="stream_file_"></span></div>
|
||||
<div style="width: 260px; margin: 5px 0px 10px 0px;">
|
||||
<div id="stream_pos_"></div>
|
||||
<?vlc gettext("Time:") ?> <span id="stream_current_time_">00:00:00</span> / <span id="stream_total_time_">00:00:00</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="window_streams" title="<?vlc gettext("Manage Streams") ?>">
|
||||
<div id="button_create_stream" class="button icon ui-widget ui-state-default" title="<?vlc gettext("Create New Stream") ?>" opendialog="window_create_stream"><span class="ui-icon ui-icon-plus"></span></div>
|
||||
<div id="button_create_mosaic" class="button icon ui-widget ui-state-default" title="<?vlc gettext("Create Mosaic") ?>" opendialog="window_create_mosaiac"><span class="ui-icon ui-icon-calculator"></span></div>
|
||||
<div id="button_clear_streams" class="button icon ui-widget ui-state-default" title="<?vlc gettext("Delete All Streams") ?>"><span class="ui-icon ui-icon-trash"></span></div>
|
||||
<div id="button_config_streams" class="button icon ui-widget ui-state-default" title="<?vlc gettext("Configure Stream Defaults") ?>"><span class="ui-icon ui-icon-wrench"></span></div>
|
||||
<div id="button_refresh_streams" class="button ui-widget ui-state-default ui-corner-all" title="<?vlc gettext("Refresh Streams") ?>"><span class="ui-icon ui-icon-arrowrefresh-1-n"></span></div>
|
||||
<div id="stream_info">
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div id="window_stream_config" title="<?vlc gettext("Stream Input Configuration") ?>">
|
||||
<table>
|
||||
<tr>
|
||||
<td><?vlc gettext("Protocol") ?></td>
|
||||
<td><input type="text" name="stream_protocol" id="stream_protocol" value="http" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?vlc gettext("Host") ?></td>
|
||||
<td><input type="text" name="stream_host" id="stream_host" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?vlc gettext("Port") ?></td>
|
||||
<td><input type="text" name="stream_port" id="stream_port" value="8081" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><?vlc gettext("File") ?></td>
|
||||
<td><input type="text" name="stream_file" id="stream_file" value="stream.flv" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
Reference in New Issue
Block a user