add sliders to settings page, and show current values (nw)

This commit is contained in:
Miodrag Milanovic 2013-08-19 13:44:04 +00:00
parent cb281a06a5
commit ee73d34b8c
8 changed files with 63 additions and 26 deletions

5
.gitattributes vendored
View File

@ -8898,8 +8898,13 @@ web/css/images/icons-18-white.png -text svneol=unset#image/png
web/css/images/icons-36-black.png -text svneol=unset#image/png web/css/images/icons-36-black.png -text svneol=unset#image/png
web/css/images/icons-36-white.png -text svneol=unset#image/png web/css/images/icons-36-white.png -text svneol=unset#image/png
web/css/jquery.mobile.css svneol=native#text/css web/css/jquery.mobile.css svneol=native#text/css
web/driver.html svneol=native#text/html
web/favicon.ico -text web/favicon.ico -text
web/image.html svneol=native#text/html
web/images/logo-mame-small.png -text svneol=unset#image/png web/images/logo-mame-small.png -text svneol=unset#image/png
web/index.html svneol=native#text/html web/index.html svneol=native#text/html
web/info.html svneol=native#text/html
web/js/jquery.js svneol=native#text/javascript web/js/jquery.js svneol=native#text/javascript
web/js/jquery.mobile.js svneol=native#text/javascript web/js/jquery.mobile.js svneol=native#text/javascript
web/logs.html svneol=native#text/html
web/options.html svneol=native#text/html

View File

@ -107,35 +107,46 @@ int web_engine::json_slider_handler(struct mg_connection *conn)
{ {
const slider_state *curslider; const slider_state *curslider;
astring tempstring; astring tempstring;
Json::Value array(Json::arrayValue);
/* add all sliders */ /* add all sliders */
for (curslider = ui_get_slider_list(); curslider != NULL; curslider = curslider->next) for (curslider = ui_get_slider_list(); curslider != NULL; curslider = curslider->next)
{ {
INT32 curval = (*curslider->update)(machine(), curslider->arg, &tempstring, SLIDER_NOCHANGE); INT32 curval = (*curslider->update)(machine(), curslider->arg, &tempstring, SLIDER_NOCHANGE);
printf("%d\n",curval); Json::Value data;
/* UINT32 flags = 0; data["description"] = curslider->description;
if (curval > curslider->minval) data["minval"] = curslider->minval;
flags |= MENU_FLAG_LEFT_ARROW; data["maxval"] = curslider->maxval;
if (curval < curslider->maxval) data["defval"] = curslider->defval;
flags |= MENU_FLAG_RIGHT_ARROW; data["incval"] = curslider->incval;
item_append(curslider->description, tempstring, flags, (void *)curslider); data["curval"] = curval;
array.append(data);
if (menuless_mode)
break;*/
} }
/* add all sliders */ /* add all sliders */
for (curslider = (slider_state*)machine().osd().get_slider_list(); curslider != NULL; curslider = curslider->next) for (curslider = (slider_state*)machine().osd().get_slider_list(); curslider != NULL; curslider = curslider->next)
{ {
INT32 curval = (*curslider->update)(machine(), curslider->arg, &tempstring, SLIDER_NOCHANGE); INT32 curval = (*curslider->update)(machine(), curslider->arg, &tempstring, SLIDER_NOCHANGE);
printf("%d\n",curval); Json::Value data;
/*UINT32 flags = 0; data["description"] = curslider->description;
if (curval > curslider->minval) data["minval"] = curslider->minval;
flags |= MENU_FLAG_LEFT_ARROW; data["maxval"] = curslider->maxval;
if (curval < curslider->maxval) data["defval"] = curslider->defval;
flags |= MENU_FLAG_RIGHT_ARROW; data["incval"] = curslider->incval;
item_append(curslider->description, tempstring, flags, (void *)curslider);*/ data["curval"] = curval;
array.append(data);
} }
Json::FastWriter writer;
const char *json = writer.write(array).c_str();
// Send HTTP reply to the client
mg_printf(conn,
"HTTP/1.1 200 OK\r\n"
"Content-Type: application/json\r\n"
"Content-Length: %d\r\n" // Always set Content-Length
"\r\n"
"%s",
(int)strlen(json), json);
return 1; return 1;
} }

0
web/driver.html Normal file
View File

0
web/image.html Normal file
View File

View File

@ -26,9 +26,9 @@
document.getElementById('main').innerHTML = '<center><img src="/screenshot.png"/></center>'; document.getElementById('main').innerHTML = '<center><img src="/screenshot.png"/></center>';
} }
function loadCommands() function loadContent(htmlName)
{ {
$("#main").load('commands.html', function () { $("#main").load(htmlName+'.html', function () {
$(this).trigger('create'); $(this).trigger('create');
}); });
} }
@ -44,6 +44,26 @@
}); });
} }
function executeSlider()
{
$.ajax({
url: "/json/slider",
cache: false,
dataType: "json",
success: function(data) {
var items = [];
for (var i in data) {
items.push('<label for="slider-mini">'+data[i].description +':</label>');
items.push('<input type="range" name="slider-mini" id="slider-mini" value="'+data[i].curval+'" min="'+data[i].minval+'" max="'+data[i].maxval+'" step=="'+data[i].incval+'" data-highlight="true" data-mini="true" />');
}
$('#main').html('');
$('#main').append(items.join('')).trigger('create');
},
error: function (request, status, error) { alert(status + ", " + error); }
});
}
function startWebSocket() { function startWebSocket() {
var url = 'ws://localhost:8080/foo'; var url = 'ws://localhost:8080/foo';
@ -95,16 +115,16 @@
<div data-role="navbar" data-iconpos="top"> <div data-role="navbar" data-iconpos="top">
<ul> <ul>
<li> <li>
<a href="#page1" data-transition="fade" data-icon="bars">Driver</a> <a href="javascript:loadContent('driver');" data-transition="fade" data-icon="bars">Driver</a>
</li> </li>
<li> <li>
<a href="#page1" data-transition="fade" data-icon="gear">Options</a> <a href="javascript:loadContent('options');" data-transition="fade" data-icon="gear">Options</a>
</li> </li>
<li> <li>
<a href="#page1" data-transition="fade" data-icon="grid">Image</a> <a href="javascript:loadContent('image');" data-transition="fade" data-icon="grid">Image</a>
</li> </li>
<li> <li>
<a href="javascript:loadCommands();" data-transition="fade" data-icon="star">Commands</a> <a href="javascript:loadContent('commands');" data-transition="fade" data-icon="star">Commands</a>
</li> </li>
</ul> </ul>
</div> </div>
@ -115,10 +135,10 @@
<div data-role="navbar" data-iconpos="top"> <div data-role="navbar" data-iconpos="top">
<ul> <ul>
<li> <li>
<a href="#page1" data-transition="fade" data-icon="info">Info</a> <a href="javascript:loadContent('info');" data-transition="fade" data-icon="info">Info</a>
</li> </li>
<li> <li>
<a href="#page1" data-transition="fade" data-icon="check">Logs</a> <a href="javascript:loadContent('logs');" data-transition="fade" data-icon="check">Logs</a>
</li> </li>
<li> <li>
<a href="javascript:takeScreenshot();" data-transition="fade" data-icon="search">Screenshot</a> <a href="javascript:takeScreenshot();" data-transition="fade" data-icon="search">Screenshot</a>

0
web/info.html Normal file
View File

0
web/logs.html Normal file
View File

1
web/options.html Normal file
View File

@ -0,0 +1 @@
<a href="javascript:executeSlider();" data-role="button">Slider</a>