PageRenderTime 28ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/share/lua/http/index.html

https://github.com/mstorsjo/vlc
HTML | 287 lines | 264 code | 1 blank | 22 comment | 0 complexity | 7e0f141d3e483f5f169e589d404e3adc MD5 | raw file
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
  2. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >
  3. < index.html: VLC media player web interface - VLM
  4. < - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >
  5. < Copyright (C) 2005-2014 VLC authors and VideoLAN
  6. < $Id$
  7. <
  8. < Authors: Brandon Brooks <bwbrooks -at- archmageinc -dot- com>
  9. <
  10. < This program is free software; you can redistribute it and/or modify
  11. < it under the terms of the GNU General Public License as published by
  12. < the Free Software Foundation; either version 2 of the License, or
  13. < (at your option) any later version.
  14. <
  15. < This program is distributed in the hope that it will be useful,
  16. < but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. < MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  18. < GNU General Public License for more details.
  19. <
  20. < You should have received a copy of the GNU General Public License
  21. < along with this program; if not, write to the Free Software
  22. < Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  23. < - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  24. <html>
  25. <head>
  26. <title><?vlc gettext("VLC media player - Web Interface") ?></title>
  27. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  28. <link href="favicon.ico" type="image/x-icon" rel="shortcut icon" />
  29. <script type="text/javascript" src="js/common.js"></script>
  30. <script type="text/javascript">
  31. //<![CDATA[
  32. if(isMobile()){
  33. window.location='mobile.html';
  34. }
  35. //]]>
  36. </script>
  37. <link type="text/css" href="css/ui-lightness/jquery-ui-1.8.13.custom.css" rel="stylesheet" />
  38. <link type="text/css" href="css/main.css" rel="stylesheet" />
  39. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
  40. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js"></script>
  41. <script type="text/javascript" src="js/jquery.jstree.js"></script>
  42. <script type="text/javascript" src="js/ui.js"></script>
  43. <script type="text/javascript" src="js/controllers.js"></script>
  44. <script type="text/javascript">
  45. //<![CDATA[
  46. var pollStatus = true;
  47. $(function(){
  48. $('.button').hover(function(){$(this).addClass('ui-state-hover')},function(){$(this).removeClass('ui-state-hover')});
  49. $('#buttonPlayList').click(function(){
  50. $('#libraryContainer').animate({
  51. height: 'toggle'
  52. });
  53. $('#buttonszone1').animate({
  54. width: 'toggle'
  55. });
  56. return false;
  57. });
  58. $('#buttonViewer').click(function(){
  59. $('#viewContainer').animate({
  60. height: 'toggle'
  61. })
  62. return false;
  63. });
  64. $('#buttonEqualizer').click(function(){
  65. updateEQ();
  66. $('#window_equalizer').dialog('open');
  67. return false;
  68. })
  69. $('#buttonOffsets').click(function(){
  70. $('#window_offset').dialog('open');
  71. return false;
  72. });
  73. $('#buttonBatch').click(function(){
  74. $('#window_batch').dialog('open');
  75. return false;
  76. });
  77. $('#buttonOpen').click(function(){
  78. browse_target = 'default';
  79. browse();
  80. $('#window_browse').dialog('open');
  81. return false;
  82. });
  83. $('#buttonPrev').mousedown(function(){
  84. intv = 1;
  85. ccmd = 'prev';
  86. setIntv();
  87. return false;
  88. });
  89. $('#buttonPrev').mouseup(function(){
  90. if(intv<=5){
  91. sendCommand({'command':'pl_previous'});
  92. }
  93. intv = 0;
  94. return false;
  95. });
  96. $('#buttonNext').mousedown(function(){
  97. intv = 1;
  98. ccmd = 'next';
  99. setIntv();
  100. return false;
  101. });
  102. $('#buttonNext').mouseup(function(){
  103. if(intv<=5){
  104. sendCommand({'command':'pl_next'});
  105. }
  106. intv = 0;
  107. return false;
  108. });
  109. $('#buttonPlEmpty').click(function(){
  110. sendCommand({'command':'pl_empty'})
  111. updatePlayList(true);
  112. return false;
  113. });
  114. $('#buttonLoop').click(function(){
  115. sendCommand({'command':'pl_loop'});
  116. return false;
  117. });
  118. $('#buttonRepeat').click(function(){
  119. sendCommand({'command':'pl_repeat'});
  120. return false;
  121. });
  122. $('#buttonShuffle').click(function(){
  123. sendCommand({'command':'pl_random'});
  124. return false;
  125. })
  126. $('#buttonRefresh').click(function(){
  127. updatePlayList(true);
  128. return false;
  129. });
  130. $('#buttonPlPlay').click(function(){
  131. sendCommand({
  132. 'command': 'pl_play',
  133. 'id':$('.jstree-clicked','#libraryTree').first().parents().first().attr('id').substr(5)
  134. })
  135. return false;
  136. });
  137. $('#buttonPlAdd').click(function(){
  138. $('.jstree-clicked','#libraryTree').each(function(){
  139. if($(this).parents().first().attr('uri')){
  140. sendCommand({
  141. 'command':'in_enqueue',
  142. 'input' : $(this).parents().first().attr('uri')
  143. });
  144. };
  145. });
  146. $('#libraryTree').jstree('deselect_all');
  147. setTimeout(function(){updatePlayList(true);},1000);
  148. return false;
  149. });
  150. $('#buttonStreams, #buttonStreams2').click(function(){
  151. updateStreams();
  152. $('#window_streams').dialog('open');
  153. });
  154. $('#buttonSout').click(function(){
  155. if(current_que=='main'){
  156. $('#windowStreamConfirm').dialog('open');
  157. }else{
  158. $('#player').empty();
  159. current_que = 'main';
  160. sendVLMCmd('del Current');
  161. updateStatus();
  162. }
  163. return false;
  164. });
  165. $('#windowStreamConfirm').dialog({
  166. autoOpen: false,
  167. width:600,
  168. modal: true,
  169. buttons:{
  170. "<?vlc gettext("Yes") ?>":function(){
  171. var file = $('[current="current"]','#libraryTree').length>0 ? $('[current="current"]','#libraryTree').first().attr('uri') : ($('.jstree-clicked','#libraryTree').length>0 ? $('.jstree-clicked','#libraryTree').first().parents().first().attr('uri') : ($('#plid_'+current_id).attr('uri') ? $('#plid_'+current_id).attr('uri') : false));
  172. if(file){
  173. if($('#viewContainer').css('display')=='none'){
  174. $('#buttonViewer').click();
  175. }
  176. var defaultStream = 'new Current broadcast enabled input "'+file+'" output #transcode{vcodec=FLV1,vb=4096,fps=25,scale=1,acodec=mp3,ab=512,samplerate=44100,channels=2}:std{access='+$('#stream_protocol').val()+',mux=avformat{{mux=flv}},dst=0.0.0.0:'+$('#stream_port').val()+'/'+$('#stream_file').val()+'}';
  177. sendVLMCmd('del Current;'+defaultStream+';control Current play');
  178. $('#player').attr('href',$('#stream_protocol').val()+'://'+$('#stream_host').val()+':'+$('#stream_port').val()+'/'+$('#stream_file').val());
  179. current_que = 'stream';
  180. updateStreams();
  181. }
  182. $(this).dialog('close');
  183. },
  184. "<?vlc gettext("No") ?>":function(){
  185. $(this).dialog('close');
  186. }
  187. }
  188. });
  189. $('#viewContainer').animate({height: 'toggle'});
  190. });
  191. /* delay script loading so we won't block if we have no net access */
  192. $.getScript('http://releases.flowplayer.org/js/flowplayer-3.2.6.min.js', function(data, textStatus){
  193. $('#player').empty();
  194. flowplayer("player", "http://releases.flowplayer.org/swf/flowplayer-3.2.7.swf");
  195. /* .getScript only handles success() */
  196. });
  197. //]]>
  198. </script>
  199. </head>
  200. <body id="regular_layout">
  201. <div class="centered">
  202. <div id="mainContainer" class="centered">
  203. <div id="controlContainer" class="ui-widget">
  204. <div id="controlTable" class="ui-widget-content">
  205. <ul id="controlButtons">
  206. <li id="buttonPrev" class="button48 ui-corner-all" title="<?vlc gettext("Previous") ?>"></li>
  207. <li id="buttonPlay" class="button48 ui-corner-all paused" title="<?vlc gettext("Play") ?>"></li>
  208. <li id="buttonNext" class="button48 ui-corner-all" title="<?vlc gettext("Next") ?>"></li>
  209. <li id="buttonOpen" class="button48 ui-corner-all" title="<?vlc gettext("Open Media") ?>"></li>
  210. <li id="buttonStop" class="button48 ui-corner-all" title="<?vlc gettext("Stop") ?>"></li>
  211. <li id="buttonFull" class="button48 ui-corner-all" title="<?vlc gettext("Full Screen") ?>"></li>
  212. <li id="buttonSout" class="button48 ui-corner-all" title="<?vlc gettext("Easy Stream") ?>"></li>
  213. </ul>
  214. <ul id="buttonszone2" class="buttonszone">
  215. <li id="buttonPlayList" class="button ui-widget ui-state-default ui-corner-all" title="<?vlc gettext("Hide / Show Library") ?>"><span class="ui-icon ui-icon-note"></span><?vlc gettext("Hide / Show Library") ?></li>
  216. <li id="buttonViewer" class="button ui-widget ui-state-default ui-corner-all" title="<?vlc gettext("Hide / Show Viewer") ?>"><span class="ui-icon ui-icon-video"></span><?vlc gettext("Hide / Show Viewer") ?></li>
  217. <li id="buttonStreams" class="button ui-widget ui-state-default ui-corner-all" title="<?vlc gettext("Manage Streams") ?>"><span class="ui-icon ui-icon-script"></span><?vlc gettext("Manage Streams") ?></li>
  218. <li id="buttonOffsets" class="button ui-widget ui-state-default ui-corner-all" title="<?vlc gettext("Track Synchronisation") ?>"><span class="ui-icon ui-icon-transfer-e-w"></span><?vlc gettext("Track Synchronisation") ?></li>
  219. <li id="buttonEqualizer" class="button ui-widget ui-state-default ui-corner-all" title="<?vlc gettext("Equalizer") ?>"><span class="ui-icon ui-icon-signal"></span><?vlc gettext("Equalizer") ?></li>
  220. <li id="buttonBatch" class="button ui-widget ui-state-default ui-corner-all" title="<?vlc gettext("VLM Batch Commands") ?>"><span class="ui-icon ui-icon-suitcase"></span><?vlc gettext("VLM Batch Commands") ?></li>
  221. </ul>
  222. <div id="volumesliderzone">
  223. <div id="volumeSlider" title="Volume"><img src="images/speaker-32.png" class="ui-slider-handle" alt="volume"/></div>
  224. <div id="currentVolume" class="dynamic">50%</div>
  225. </div>
  226. <div id="artszone">
  227. <img id="albumArt" src="/art" width="141px" height="130px" alt="Album Art"/>
  228. </div>
  229. <div id="mediaTitle" class="dynamic"></div>
  230. <div id="seekContainer">
  231. <div id="seekSlider" title="<?vlc gettext("Seek Time") ?>"></div>
  232. <div id="currentTime" class="dynamic">00:00:00</div>
  233. <div id="totalTime" class="dynamic">00:00:00</div>
  234. </div>
  235. </div>
  236. </div>
  237. <div id="libraryContainer" class="ui-widget">
  238. <ul id="buttonszone1" align="left" class="buttonszone ui-widget-content" style="overflow:hidden; white-space: nowrap;">
  239. <li id="buttonShuffle" class="button ui-widget ui-state-default ui-corner-all" title="<?vlc gettext("Shuffle") ?>"><span class="ui-icon ui-icon-shuffle"></span><?vlc gettext("Shuffle") ?></li>
  240. <li id="buttonLoop" class="button ui-widget ui-state-default ui-corner-all" title="<?vlc gettext("Loop") ?>"><span class="ui-icon ui-icon-refresh"></span><?vlc gettext("Loop") ?></li>
  241. <li id="buttonRepeat" class="button ui-widget ui-state-default ui-corner-all" title="<?vlc gettext("Repeat") ?>"><span class="ui-icon ui-icon-arrowreturnthick-1-w"></span><?vlc gettext("Repeat") ?></li>
  242. <li id="buttonPlEmpty" class="button ui-widget ui-state-default ui-corner-all" title="<?vlc gettext("Empty Playlist") ?>"><span class="ui-icon ui-icon-trash"></span><?vlc gettext("Empty Playlist") ?></li>
  243. <li id="buttonPlAdd" class="button ui-widget ui-state-default ui-corner-all" title="<?vlc gettext("Queue Selected") ?>"><span class="ui-icon ui-icon-plus"></span><?vlc gettext("Queue Selected") ?></li>
  244. <li id="buttonPlPlay" class="button ui-widget ui-state-default ui-corner-all" title="<?vlc gettext("Play Selected") ?>"><span class="ui-icon ui-icon-play"></span><?vlc gettext("Play Selected") ?></li>
  245. <li id="buttonRefresh" class="button ui-widget ui-state-default ui-corner-all" title="<?vlc gettext("Refresh List") ?>"><span class="ui-icon ui-icon-arrowrefresh-1-n"></span><?vlc gettext("Refresh List") ?></li>
  246. </ul>
  247. <div id="libraryTree" class="ui-widget-content"></div>
  248. </div>
  249. <div id="viewContainer" class="ui-widget">
  250. <div id="mediaViewer" class="ui-widget-content">
  251. <div href="http://localhost:8081/stream.flv" style="display:block; width:100%" id="player">
  252. <p><?vlc gettext("Loading flowplayer...") ?><br/><?vlc gettext("If nothing appears, check your internet connection.") ?></p>
  253. </div>
  254. </div>
  255. </div>
  256. <div class="footer">
  257. VLC <?vlc print(vlc.misc.version() .. ' - Lua Web Interface - <a id="mobileintflink" href="/mobile.html">Mobile Interface</a> - ' .. vlc.misc.copyright()) ?>
  258. </div>
  259. </div>
  260. </div>
  261. <div id="windowStreamConfirm" title="Confirm Stream Settings">
  262. <p>
  263. <?vlc gettext("By creating a stream, the <i>Main Controls</i> will operate the stream instead of the main interface.") ?>
  264. <?vlc gettext("The stream will be created using default settings, for more advanced configuration, or to modify the default settings, select the button to the right: <i>Manage Streams</i>") ?>
  265. <span id="buttonStreams2" class="button ui-widget ui-state-default ui-corner-all" title="<?vlc gettext("Manage Streams") ?>"><span class="ui-icon ui-icon-script"></span></span>
  266. </p>
  267. <p>
  268. <?vlc gettext("Once the stream is created, the <i>Media Viewer</i> window will display the stream.") ?>
  269. <?vlc gettext("Volume will be controlled by the player, and not the <i>Main Controls</i>.") ?>
  270. </p>
  271. <p>
  272. <?vlc gettext("The current playing item will be streamed. If there is no currently playing item, the first selected item from the <i>Library</i> will be the subject of the stream.") ?>
  273. </p>
  274. <p>
  275. <?vlc gettext("To stop the stream and resume normal controls, click the <i>Open Stream</i> button again.") ?>
  276. </p>
  277. <p>
  278. <?vlc gettext("Are you sure you wish to create the stream?") ?>
  279. </p>
  280. </div>
  281. <?vlc
  282. current_page = "index"
  283. dialogs("browse_window.html","stream_window.html","create_stream.html","offset_window.html","mosaic_window.html","equalizer_window.html","batch_window.html","error_window.html");
  284. ?>
  285. </body>
  286. </html>