summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2013-08-19 13:44:04 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2013-08-19 13:44:04 +0000
commitee73d34b8c5126ba8fa77b345f4fea8c9130e6ab (patch)
treec7ccb774a8ad95b7faebe5ac46c9abcbc39e3dcc
parentcb281a06a5173a7602ae47003d42014a579eac0b (diff)
add sliders to settings page, and show current values (nw)
-rw-r--r--.gitattributes5
-rw-r--r--src/emu/webengine.c47
-rw-r--r--web/driver.html0
-rw-r--r--web/image.html0
-rw-r--r--web/index.html36
-rw-r--r--web/info.html0
-rw-r--r--web/logs.html0
-rw-r--r--web/options.html1
8 files changed, 63 insertions, 26 deletions
diff --git a/.gitattributes b/.gitattributes
index 16ec5f943a1..59599275b77 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -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
diff --git a/src/emu/webengine.c b/src/emu/webengine.c
index 9fc01630ee1..5b456311772 100644
--- a/src/emu/webengine.c
+++ b/src/emu/webengine.c
@@ -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;
}
diff --git a/web/driver.html b/web/driver.html
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/web/driver.html
diff --git a/web/image.html b/web/image.html
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/web/image.html
diff --git a/web/index.html b/web/index.html
index 0bfda89104d..087be401fd6 100644
--- a/web/index.html
+++ b/web/index.html
@@ -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>
diff --git a/web/info.html b/web/info.html
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/web/info.html
diff --git a/web/logs.html b/web/logs.html
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/web/logs.html
diff --git a/web/options.html b/web/options.html
new file mode 100644
index 00000000000..97f1d939964
--- /dev/null
+++ b/web/options.html
@@ -0,0 +1 @@
+<a href="javascript:executeSlider();" data-role="button">Slider</a>