diff options
author | 2013-08-19 13:44:04 +0000 | |
---|---|---|
committer | 2013-08-19 13:44:04 +0000 | |
commit | ee73d34b8c5126ba8fa77b345f4fea8c9130e6ab (patch) | |
tree | c7ccb774a8ad95b7faebe5ac46c9abcbc39e3dcc | |
parent | cb281a06a5173a7602ae47003d42014a579eac0b (diff) |
add sliders to settings page, and show current values (nw)
-rw-r--r-- | .gitattributes | 5 | ||||
-rw-r--r-- | src/emu/webengine.c | 47 | ||||
-rw-r--r-- | web/driver.html | 0 | ||||
-rw-r--r-- | web/image.html | 0 | ||||
-rw-r--r-- | web/index.html | 36 | ||||
-rw-r--r-- | web/info.html | 0 | ||||
-rw-r--r-- | web/logs.html | 0 | ||||
-rw-r--r-- | web/options.html | 1 |
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> |