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-white.png -text svneol=unset#image/png
web/css/jquery.mobile.css svneol=native#text/css
web/driver.html svneol=native#text/html
web/favicon.ico -text
web/image.html svneol=native#text/html
web/images/logo-mame-small.png -text svneol=unset#image/png
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.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;
astring tempstring;
Json::Value array(Json::arrayValue);
/* add all sliders */
for (curslider = ui_get_slider_list(); curslider != NULL; curslider = curslider->next)
{
INT32 curval = (*curslider->update)(machine(), curslider->arg, &tempstring, SLIDER_NOCHANGE);
printf("%d\n",curval);
/* UINT32 flags = 0;
if (curval > curslider->minval)
flags |= MENU_FLAG_LEFT_ARROW;
if (curval < curslider->maxval)
flags |= MENU_FLAG_RIGHT_ARROW;
item_append(curslider->description, tempstring, flags, (void *)curslider);
if (menuless_mode)
break;*/
Json::Value data;
data["description"] = curslider->description;
data["minval"] = curslider->minval;
data["maxval"] = curslider->maxval;
data["defval"] = curslider->defval;
data["incval"] = curslider->incval;
data["curval"] = curval;
array.append(data);
}
/* add all sliders */
for (curslider = (slider_state*)machine().osd().get_slider_list(); curslider != NULL; curslider = curslider->next)
{
INT32 curval = (*curslider->update)(machine(), curslider->arg, &tempstring, SLIDER_NOCHANGE);
printf("%d\n",curval);
/*UINT32 flags = 0;
if (curval > curslider->minval)
flags |= MENU_FLAG_LEFT_ARROW;
if (curval < curslider->maxval)
flags |= MENU_FLAG_RIGHT_ARROW;
item_append(curslider->description, tempstring, flags, (void *)curslider);*/
Json::Value data;
data["description"] = curslider->description;
data["minval"] = curslider->minval;
data["maxval"] = curslider->maxval;
data["defval"] = curslider->defval;
data["incval"] = curslider->incval;
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;
}

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>';
}
function loadCommands()
function loadContent(htmlName)
{
$("#main").load('commands.html', function () {
$("#main").load(htmlName+'.html', function () {
$(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() {
var url = 'ws://localhost:8080/foo';
@ -95,16 +115,16 @@
<div data-role="navbar" data-iconpos="top">
<ul>
<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>
<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>
<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>
<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>
</ul>
</div>
@ -115,10 +135,10 @@
<div data-role="navbar" data-iconpos="top">
<ul>
<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>
<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>
<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>