From 4348289aa68aa69466b012d1454a419a35160223 Mon Sep 17 00:00:00 2001 From: Antoine Cellerier Date: Sun, 29 Jan 2006 16:44:04 +0000 Subject: [PATCH] main, functions.js, slider_*.png : add position slider status.xml : add "seek" command vlm, refresh.png : add refresh buttons (page doesn't autorefresh) --- share/http/dialogs/main | 25 +++++----- share/http/dialogs/vlm | 11 +++++ share/http/images/refresh.png | Bin 0 -> 277 bytes share/http/images/slider_bar.png | Bin 0 -> 190 bytes share/http/images/slider_left.png | Bin 0 -> 203 bytes share/http/images/slider_point.png | Bin 0 -> 237 bytes share/http/images/slider_right.png | Bin 0 -> 204 bytes share/http/js/functions.js | 74 ++++++++++++++++++++++++++++- share/http/requests/status.xml | 3 ++ 9 files changed, 101 insertions(+), 12 deletions(-) create mode 100644 share/http/images/refresh.png create mode 100644 share/http/images/slider_bar.png create mode 100644 share/http/images/slider_left.png create mode 100644 share/http/images/slider_point.png create mode 100644 share/http/images/slider_right.png diff --git a/share/http/dialogs/main b/share/http/dialogs/main index 427d696502..67db9e0810 100644 --- a/share/http/dialogs/main +++ b/share/http/dialogs/main @@ -36,52 +36,52 @@ sout and playlist .
-   - - -   - -   - -   -   - - @@ -93,6 +93,9 @@ sout and playlist . - Volume : (?)
+ + slider leftslider pointslider right +
(?)
diff --git a/share/http/dialogs/vlm b/share/http/dialogs/vlm index 499843bc42..d86e6ae298 100644 --- a/share/http/dialogs/vlm +++ b/share/http/dialogs/vlm @@ -30,10 +30,12 @@ sout and vlmelements .
VLC media player - VLM interface +
@@ -149,6 +151,9 @@ sout and vlmelements .
Broadcast Elements +
@@ -156,6 +161,9 @@ sout and vlmelements .
Video on Demand Elements +
@@ -163,6 +171,9 @@ sout and vlmelements .
Schedule Elements +
diff --git a/share/http/images/refresh.png b/share/http/images/refresh.png new file mode 100644 index 0000000000000000000000000000000000000000..645335096b6b11f54a19e8a9f16ba429f678c1b1 GIT binary patch literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkEOc3h~i-`xB<_)@fE=;lyLvnq;J|YU?up zHKUKi4%_@`DdC<*H@?q|c&zU9G;{8oDZ6*JmigwNXH5zTIduOT^Q{zjp8vKDj6g>) Nc)I$ztaD0e0suxgSrY&N literal 0 HcmV?d00001 diff --git a/share/http/images/slider_bar.png b/share/http/images/slider_bar.png new file mode 100644 index 0000000000000000000000000000000000000000..ad03479f6a4c681ea718013536ee116d205b78cb GIT binary patch literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^j6f{F!3HF+&llYeq}Y|gW!U_%O?XxI14-? ziy0WWg+Z8+Vb&Z8pdfpRr>`sfHAY!JD~@eG9g099*%H@?66gHf+|;}h2Ir#G#FEq$ zh4Rdj426)4R0VfW-+=cis(C<#N}eu`Asp9}6Am!{GtRxWrL*zp=jZ2nd1jmC{yNVx d{lH3AhAm}WT`^@>c!8=JJYD@<);T3K0RV;tH~#{XE)7O>#8lx8_`iF1B#Zfaf$gL6@8Vo7R> zLV0FMhC)b2s)D`!@12DDWJFX@}%jA5L~c#`DCC7XMsm# zF#`j)FbFd;%$g$s6l5>)^mS#w#wg2Yp?O01*I%HJY>8_`iF1B#Zfaf$gL6@8Vo7R> zLV0FMhC)b2s)DGv)XX)`brj+c-J& zE)6Nq%!$}MKfIIgxCBE=+QuD+W@@^&Z)2Pga_QQB6~&b<38L>l1s^OE{krqj@r@O; ae=}@URC3i?{S@dz1_n=8KbLh*2~7aaWKCB9 literal 0 HcmV?d00001 diff --git a/share/http/images/slider_right.png b/share/http/images/slider_right.png new file mode 100644 index 0000000000000000000000000000000000000000..1b15f8b3dc89a1785219f662c728041c6414fde4 GIT binary patch literal 204 zcmeAS@N?(olHy`uVBq!ia0vp^%s?!_!3HERXC3VVQfx`y?k)`fL2$v|<&%LToCO|{ z#S9GG!XV7ZFl&wkP>{XE)7O>#8lx!MP|ku_QG` zp**uBLm?z1Rl(iUH{gAWY93Ibfv1aO2*>rcJsWu$3^)$+uotb7Um`3tH`;%qsHEKm q;~>_IsR7apR-O2Jeq&ZlV>+Ke0-xc@91$a+UItHBKbLh*2~7awyf|(E literal 0 HcmV?d00001 diff --git a/share/http/js/functions.js b/share/http/js/functions.js index f7fdb65d6c..d4542b3c0e 100644 --- a/share/http/js/functions.js +++ b/share/http/js/functions.js @@ -25,6 +25,54 @@ var old_time = 0; +/********************************************************************** + * Slider functions + *********************************************************************/ + +var slider_mouse_down = 0; +var slider_dx = 0; + +/* findPosX() from http://www.quirksmode.rg/js/indpos.html */ +function findPosX(obj) +{ + var curleft = 0; + if (obj.offsetParent) + { + while (obj.offsetParent) + { + curleft += obj.offsetLeft + obj = obj.offsetParent; + } + } + else if (obj.x) + curleft += obj.x; + return curleft; +} + +function slider_seek( e, bar ) +{ + seek(Math.floor(( e.clientX + document.body.scrollLeft - findPosX( bar )) / 4)+"%25"); +} +function slider_down( e, point ) +{ + slider_mouse_down = 1; + slider_dx = e.clientX - findPosX( point ); +} +function slider_up( e, bar ) +{ + slider_mouse_down = 0; + /* slider_seek( e, bar ); */ +} +function slider_move( e, bar ) +{ + if( slider_mouse_down == 1 ) + { + var slider_position = Math.floor( e.clientX - slider_dx + document.body.scrollLeft - findPosX( bar )); + document.getElementById( 'main_slider_point' ).style.left = slider_position+"px"; + slider_seek( e, bar ); + } +} + /********************************************************************** * Misc utils *********************************************************************/ @@ -277,6 +325,10 @@ function volume_up() { loadXMLDoc( 'requests/status.xml?command=volume&val=%2B20', parse_status ); } +function seek( pos ) +{ + loadXMLDoc( 'requests/status.xml?command=seek&val='+pos, parse_status ); +} function fullscreen() { loadXMLDoc( 'requests/status.xml?command=fullscreen', parse_status ); @@ -302,21 +354,41 @@ function parse_status() { var status = req.responseXML.documentElement; var new_time = status.getElementsByTagName( 'time' )[0].firstChild.data; + var length = status.getElementsByTagName( 'length' )[0].firstChild.data; + var slider_position; + if( length < 100 ) + { + slider_position = ( status.getElementsByTagName( 'position' )[0] + .firstChild.data * 4 ) + "px"; + } + else + { + /* this is more precise if length > 100 */ + slider_position = Math.floor( ( new_time * 400 ) / length ) + "px"; + } if( old_time > new_time ) setTimeout('update_playlist()',50); old_time = new_time; set_text( 'time', format_time( new_time ) ); - set_text( 'length', format_time( status.getElementsByTagName( 'length' )[0].firstChild.data ) ); + set_text( 'length', format_time( length ) ); if( status.getElementsByTagName( 'volume' ).length != 0 ) set_text( 'volume', Math.floor(status.getElementsByTagName( 'volume' )[0].firstChild.data/5.12)+'%' ); set_text( 'state', status.getElementsByTagName( 'state' )[0].firstChild.data ); + if( slider_mouse_down == 0 ) + { + document.getElementById( 'main_slider_point' ).style.left = slider_position; + } if( status.getElementsByTagName( 'state' )[0].firstChild.data == "playing" ) { document.getElementById( 'btn_pause_img' ).setAttribute( 'src', 'images/pause.png' ); + document.getElementById( 'btn_pause_img' ).setAttribute( 'alt', 'Pause' ); + document.getElementById( 'btn_pause' ).setAttribute( 'title', 'Pause' ); } else { document.getElementById( 'btn_pause_img' ).setAttribute( 'src', 'images/play.png' ); + document.getElementById( 'btn_pause_img' ).setAttribute( 'alt', 'Play' ); + document.getElementById( 'btn_pause' ).setAttribute( 'title', 'Play' ); } } else diff --git a/share/http/requests/status.xml b/share/http/requests/status.xml index 7ee7f56e64..202fac7e22 100644 --- a/share/http/requests/status.xml +++ b/share/http/requests/status.xml @@ -83,6 +83,9 @@ + + + -- 2.39.2