2017-08-22 02:49:35 +00:00
<!doctype html>
< html >
< head >
< title > intval 3< / title >
2017-10-22 01:54:17 +00:00
< meta name = "apple-mobile-web-app-capable" content = "yes" >
< meta name = "format-detection" content = "telephone=no" >
2017-10-22 02:01:46 +00:00
< meta name = "viewport" content = "width = 320, initial-scale = 1.0, user-scalable = no" >
2017-10-21 15:46:06 +00:00
< style >
html,body{
background: #212121;
2017-10-22 02:01:46 +00:00
height: 100%;
padding: 0;
margin: 0;
2017-10-21 15:46:06 +00:00
}
2017-10-22 01:54:17 +00:00
*{
color: #fff;
font-family: 'Arial Neue', Helvetical, Arial, sans-serif;
}
2017-10-22 02:01:46 +00:00
body{
}
2017-10-22 19:35:56 +00:00
#app,
#settings{
2017-10-22 02:13:38 +00:00
padding: 20px 10% 0 10%;
}
2017-10-22 19:35:56 +00:00
#settings{
display: none;
}
#settings h2{
font-size: 18px;
text-align: center;
font-weight: normal;
}
2017-10-22 02:13:38 +00:00
#bar{
2017-10-22 19:35:56 +00:00
height: 60px;
2017-10-22 02:13:38 +00:00
border-bottom: 1px solid #444;
width: 100%;
2017-10-22 02:01:46 +00:00
}
2017-10-22 01:22:02 +00:00
/* The switch - the box around the slider */
.switch {
position: relative;
2017-10-22 02:17:32 +00:00
display: block;
2017-10-22 01:22:02 +00:00
width: 60px;
height: 34px;
2017-10-22 02:17:32 +00:00
margin: 0 auto;
2017-10-22 01:22:02 +00:00
}
/* Hide default HTML checkbox */
.switch input {display:none;}
/* The slider */
.slider {
2017-10-22 01:44:07 +00:00
position: absolute;
cursor: pointer;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #20ce45;
-webkit-transition: .4s;
transition: .4s;
2017-10-22 01:22:02 +00:00
}
.slider:before {
2017-10-22 01:44:07 +00:00
position: absolute;
content: "";
height: 26px;
width: 26px;
left: 4px;
bottom: 4px;
background-color: white;
-webkit-transition: .4s;
transition: .4s;
2017-10-22 01:22:02 +00:00
}
input:checked + .slider {
2017-10-22 01:44:07 +00:00
background-color: #f32121;
2017-10-22 01:22:02 +00:00
}
input:focus + .slider {
2017-10-22 02:13:38 +00:00
2017-10-22 01:22:02 +00:00
}
input:checked + .slider:before {
2017-10-22 01:44:07 +00:00
-webkit-transform: translateX(26px);
-ms-transform: translateX(26px);
transform: translateX(26px);
2017-10-22 01:22:02 +00:00
}
/* Rounded sliders */
.slider.round {
2017-10-22 01:44:07 +00:00
border-radius: 34px;
2017-10-22 01:22:02 +00:00
}
.slider.round:before {
2017-10-22 01:44:07 +00:00
border-radius: 50%;
}
2017-10-22 19:35:56 +00:00
input[type=number],
input[type=text],
2017-10-23 04:03:12 +00:00
input[type=password],
2017-10-22 19:35:56 +00:00
select{
2017-10-22 02:13:38 +00:00
width: 100%;
border: 2px solid #fff;
2017-10-22 01:44:07 +00:00
border-radius: 5px;
color: #fff;
font-size: 18px;
-webkit-appearance: none;
background: transparent;
box-shadow: none;
2017-10-22 02:41:58 +00:00
outline: none;
2017-10-22 01:54:17 +00:00
margin: 5px 0;
2017-10-22 02:01:46 +00:00
padding: 5px 10px;
box-sizing: border-box;
2017-10-22 01:44:07 +00:00
}
2017-10-22 19:35:56 +00:00
option{
color: #212121;
}
2017-10-22 01:44:07 +00:00
button{
2017-10-22 02:13:38 +00:00
width: 100%;
2017-10-22 02:01:46 +00:00
border: 2px solid #fff;
2017-10-22 01:44:07 +00:00
border-radius: 5px;
color: #fff;
font-size: 18px;
background: transparent;
-webkit-appearance: none;
box-shadow: none;
2017-10-22 01:54:17 +00:00
outline: none;
margin: 5px 0;
2017-10-22 02:01:46 +00:00
padding: 5px 0;
text-align: center;
2017-10-22 01:44:07 +00:00
}
button:focus{
background-color: #20ce45;
border-color: #20ce45;
2017-10-22 01:54:17 +00:00
color: #212121;
2017-10-22 02:13:38 +00:00
font-weight: bold;
}
#fwdLabel,#bwdLabel{
display: block;
line-height: 34px;
height: 33px;
color: #444;
}
#fwdLabel.selected,
#bwdLabel.selected{
color: #fff;
}
#fwdLabel{
float: left;
}
#bwdLabel{
2017-10-22 02:17:32 +00:00
position: absolute;
right: 10%;
2017-10-22 02:13:38 +00:00
}
.label{
2017-10-22 02:41:58 +00:00
text-align: center;
2017-10-22 02:13:38 +00:00
color: #666;
2017-10-22 02:41:58 +00:00
margin-top: 10px;
margin-bottom: 5px;
2017-10-22 01:22:02 +00:00
}
2017-10-22 19:35:56 +00:00
#settingsIcon{
display: block;
position: absolute;
top: 20px;
left: 10px;
opacity: 0.8;
}
#settingsIcon:active,
#settingsIcon.selected{
opacity: 1.0;
}
#mscriptIcon{
display: block;
position: absolute;
top: 20px;
right: 10px;
opacity: 0.8;
}
#mscriptIcon:active,
#mscriptIcon.selected{
opacity: 1.0;
}
#bar h1 {
font-size: 28px;
text-align: center;
display: block;
box-sizing: border-box;
padding: 20px 0 0 0;
margin: 0;
font-weight: normal;
opacity: 0.8;
}
#bar h1.selected{
opacity: 1.0;
}
2017-10-23 04:03:12 +00:00
#exposure,
#delay{
width: 70%;
display: inline-block;
}
#scale,
#delayScale{
width: 25%;
display: inline-block;
float: right;
}
#str{
color: #fff;
}
2017-10-21 15:46:06 +00:00
< / style >
2017-08-22 02:49:35 +00:00
< / head >
< body >
2017-10-22 02:13:38 +00:00
< div id = "bar" >
2017-10-22 19:35:56 +00:00
< img id = "settingsIcon" onclick = "settingsPage();" src = "data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTkuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDU0IDU0IiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCA1NCA1NDsiIHhtbDpzcGFjZT0icHJlc2VydmUiIHdpZHRoPSIzMnB4IiBoZWlnaHQ9IjMycHgiPgo8Zz4KCTxwYXRoIGQ9Ik01MS4yMiwyMWgtNS4wNTJjLTAuODEyLDAtMS40ODEtMC40NDctMS43OTItMS4xOTdzLTAuMTUzLTEuNTQsMC40Mi0yLjExNGwzLjU3Mi0zLjU3MSAgIGMwLjUyNS0wLjUyNSwwLjgxNC0xLjIyNCwwLjgxNC0xLjk2NmMwLTAuNzQzLTAuMjg5LTEuNDQxLTAuODE0LTEuOTY3bC00LjU1My00LjU1M2MtMS4wNS0xLjA1LTIuODgxLTEuMDUyLTMuOTMzLDBsLTMuNTcxLDMuNTcxICAgYy0wLjU3NCwwLjU3My0xLjM2NiwwLjczMy0yLjExNCwwLjQyMUMzMy40NDcsOS4zMTMsMzMsOC42NDQsMzMsNy44MzJWMi43OEMzMywxLjI0NywzMS43NTMsMCwzMC4yMiwwSDIzLjc4ICAgQzIyLjI0NywwLDIxLDEuMjQ3LDIxLDIuNzh2NS4wNTJjMCwwLjgxMi0wLjQ0NywxLjQ4MS0xLjE5NywxLjc5MmMtMC43NDgsMC4zMTMtMS41NCwwLjE1Mi0yLjExNC0wLjQyMWwtMy41NzEtMy41NzEgICBjLTEuMDUyLTEuMDUyLTIuODgzLTEuMDUtMy45MzMsMGwtNC41NTMsNC41NTNjLTAuNTI1LDAuNTI1LTAuODE0LDEuMjI0LTAuODE0LDEuOTY3YzAsMC43NDIsMC4yODksMS40NCwwLjgxNCwxLjk2NmwzLjU3MiwzLjU3MSAgIGMwLjU3MywwLjU3NCwwLjczLDEuMzY0LDAuNDIsMi4xMTRTOC42NDQsMjEsNy44MzIsMjFIMi43OEMxLjI0NywyMSwwLDIyLjI0NywwLDIzLjc4djYuNDM5QzAsMzEuNzUzLDEuMjQ3LDMzLDIuNzgsMzNoNS4wNTIgICBjMC44MTIsMCwxLjQ4MSwwLjQ0NywxLjc5MiwxLjE5N3MwLjE1MywxLjU0LTAuNDIsMi4xMTRsLTMuNTcyLDMuNTcxYy0wLjUyNSwwLjUyNS0wLjgxNCwxLjIyNC0wLjgxNCwxLjk2NiAgIGMwLDAuNzQzLDAuMjg5LDEuNDQxLDAuODE0LDEuOTY3bDQuNTUzLDQuNTUzYzEuMDUxLDEuMDUxLDIuODgxLDEuMDUzLDMuOTMzLDBsMy41NzEtMy41NzJjMC41NzQtMC41NzMsMS4zNjMtMC43MzEsMi4xMTQtMC40MiAgIGMwLjc1LDAuMzExLDEuMTk3LDAuOTgsMS4xOTcsMS43OTJ2NS4wNTJjMCwxLjUzMywxLjI0NywyLjc4LDIuNzgsMi43OGg2LjQzOWMxLjUzMywwLDIuNzgtMS4yNDcsMi43OC0yLjc4di01LjA1MiAgIGMwLTAuODEyLDAuNDQ3LTEuNDgxLDEuMTk3LTEuNzkyYzAuNzUxLTAuMzEyLDEuNTQtMC4xNTMsMi4xMTQsMC40MmwzLjU3MSwzLjU3MmMxLjA1MiwxLjA1MiwyLjg4MywxLjA1LDMuOTMzLDBsNC41NTMtNC41NTMgICBjMC41MjUtMC41MjUsMC44MTQtMS4yMjQsMC44MTQtMS45NjdjMC0wLjc0Mi0wLjI4OS0xLjQ0LTAuODE0LTEuOTY2bC0zLjU3Mi0zLjU3MWMtMC41NzMtMC41NzQtMC43My0xLjM2NC0wLjQyLTIuMTE0ICAgUzQ1LjM1NiwzMyw0Ni4xNjgsMzNoNS4wNTJjMS41MzMsMCwyLjc4LTEuMjQ3LDIuNzgtMi43OFYyMy43OEM1NCwyMi4yNDcsNTIuNzUzLDIxLDUxLjIyLDIxeiBNNTIsMzAuMjIgICBDNTIsMzAuNjUsNTEuNjUsMzEsNTEuMjIsMzFoLTUuMDUyYy0xLjYyNCwwLTMuMDE5LDAuOTMyLTMuNjQsMi40MzJjLTAuNjIyLDEuNS0wLjI5NSwzLjE0NiwwLjg1NCw0LjI5NGwzLjU3MiwzLjU3MSAgIGMwLjMwNSwwLjMwNSwwLjMwNSwwLjgsMCwxLjEwNGwtNC41NTMsNC41NTNjLTAuMzA0LDAuMzA0LTAuNzk5LDAuMzA2LTEuMTA0LDBsLTMuNTcxLTMuNTcyYy0xLjE0OS0xLjE0OS0yLjc5NC0xLjQ3NC00LjI5NC0wLjg1NCAgIGMtMS41LDAuNjIxLTIuNDMyLDIuMDE2LTIuNDMyLDMuNjR2NS4wNTJDMzEsNTEuNjUsMzAuNjUsNTIsMzAuMjIsNTJIMjMuNzhDMjMuMzUsNTIsMjMsNTEuNjUsMjMsNTEuMjJ2LTUuMDUyICAgYzAtMS42MjQtMC45MzItMy4wMTktMi40MzItMy42NGMtMC41MDMtMC4yMDktMS4wMjEtMC4zMTEtMS41MzMtMC4zMTFjLTEuMDE0LDAtMS45OTcsMC40LTIuNzYxLDEuMTY0bC0zLjU3MSwzLjU3MiAgIGMtMC4zMDYsMC4zMDYtMC44MDEsMC4zMDQtMS4xMDQsMGwtNC41NTMtNC41NTNjLTAuMzA1LTAuMzA1LTAuMzA1LTAuOCwwLTEuMTA0bDMuNTcyLTMuNTcxYzEuMTQ4LTEuMTQ4LDEuNDc2LTIuNzk0LDAuODU0LTQuMjk0ICAgQzEwLjg1MSwzMS45MzIsOS40NTYsMzEsNy44MzIsMzFIMi43OEMyLjM1LDMxLDIsMzAuNjUsMiwzMC4yMlYyMy43OEMyLDIzLjM1LDIuMzUsMjMsMi43OCwyM2g1LjA1MiAgIGMxLjYyNCwwLDMuMDE5LTAuOTMyLDMuNjQtMi40MzJjMC42MjItMS41LDAuMjk1LTMuMTQ2LTAuODU0LTQuMjk0bC0zLjU3Mi0zLjU3MWMtMC4zMDUtMC4zMDUtMC4zMDUtMC44LDAtMS4xMDRsNC41NTMtNC41NTMgICBjMC4zMDQtMC4zMDUsMC43OTktMC4zMDUsMS4xMDQsMGwzLjU3MSwzLjU3MWMxLjE0NywxLjE0NywyLjc5MiwxLjQ3Niw0LjI5NCwwLjg1NEMyMi4wNjgsMTAuODUxLDIzLDkuNDU2LDIzLDcuODMyVjIuNzggICBDMjMsMi4zNSwyMy4zNSwyLDIzLjc4LDJoNi40MzlDMzAuNjUsMiwzMSwyLjM1LDMxLDIuNzh2NS4wNTJjMCwxLjYyNCwwLjkzMiwzLjAxOSwyLjQzMiwzLjY0ICAgYzEuNTAyLDAuNjIyLDMuMTQ2LDAuMjk0LDQuMjk0LTAuODU0bDMuNTcxLTMuNTcxYzAuMzA2LTAuMzA1LDAuODAxLTAuMzA1LDEuMTA0LDBsNC41NTMsNC41NTNjMC4zMDUsMC4zMDUsMC4zMDUsMC44LDAsMS4xMDQgICBsLTMuNTcyLDMuNTcxYy0xLjE0OCwxLjE0OC0xLjQ3NiwyLjc5NC0wLjg1NCw0LjI5NGMwLjYyMSwxLjUsMi4wMTYsMi40MzIsM
< img id = "mscriptIcon" src = "data:image/svg+xml;utf8;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8IS0tIEdlbmVyYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IgMTYuMC4wLCBTVkcgRXhwb3J0IFBsdWctSW4gLiBTVkcgVmVyc2lvbjogNi4wMCBCdWlsZCAwKSAgLS0+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiBpZD0iQ2FwYV8xIiB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjMycHgiIGhlaWdodD0iMzJweCIgdmlld0JveD0iMCAwIDUyMi40NjggNTIyLjQ2OSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgNTIyLjQ2OCA1MjIuNDY5OyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+CjxnPgoJPGc+CgkJPHBhdGggZD0iTTMyNS43NjIsNzAuNTEzbC0xNy43MDYtNC44NTRjLTIuMjc5LTAuNzYtNC41MjQtMC41MjEtNi43MDcsMC43MTVjLTIuMTksMS4yMzctMy42NjksMy4wOTQtNC40MjksNS41NjhMMTkwLjQyNiw0NDAuNTMgICAgYy0wLjc2LDIuNDc1LTAuNTIyLDQuODA5LDAuNzE1LDYuOTk1YzEuMjM3LDIuMTksMy4wOSwzLjY2NSw1LjU2OCw0LjQyNWwxNy43MDEsNC44NTZjMi4yODQsMC43NjYsNC41MjEsMC41MjYsNi43MS0wLjcxMiAgICBjMi4xOS0xLjI0MywzLjY2Ni0zLjA5NCw0LjQyNS01LjU2NEwzMzIuMDQyLDgxLjkzNmMwLjc1OS0yLjQ3NCwwLjUyMy00LjgwOC0wLjcxNi02Ljk5OSAgICBDMzMwLjA4OCw3Mi43NDcsMzI4LjIzNyw3MS4yNzIsMzI1Ljc2Miw3MC41MTN6IiBmaWxsPSIjRkZGRkZGIi8+CgkJPHBhdGggZD0iTTE2Ni4xNjcsMTQyLjQ2NWMwLTIuNDc0LTAuOTUzLTQuNjY1LTIuODU2LTYuNTY3bC0xNC4yNzctMTQuMjc2Yy0xLjkwMy0xLjkwMy00LjA5My0yLjg1Ny02LjU2Ny0yLjg1NyAgICBzLTQuNjY1LDAuOTU1LTYuNTY3LDIuODU3TDIuODU2LDI1NC42NjZDMC45NSwyNTYuNTY5LDAsMjU4Ljc1OSwwLDI2MS4yMzNjMCwyLjQ3NCwwLjk1Myw0LjY2NCwyLjg1Niw2LjU2NmwxMzMuMDQzLDEzMy4wNDQgICAgYzEuOTAyLDEuOTA2LDQuMDg5LDIuODU0LDYuNTY3LDIuODU0czQuNjY1LTAuOTUxLDYuNTY3LTIuODU0bDE0LjI3Ny0xNC4yNjhjMS45MDMtMS45MDIsMi44NTYtNC4wOTMsMi44NTYtNi41NyAgICBjMC0yLjQ3MS0wLjk1My00LjY2MS0yLjg1Ni02LjU2M0w1MS4xMDcsMjYxLjIzM2wxMTIuMjA0LTExMi4yMDFDMTY1LjIxNywxNDcuMTMsMTY2LjE2NywxNDQuOTM5LDE2Ni4xNjcsMTQyLjQ2NXoiIGZpbGw9IiNGRkZGRkYiLz4KCQk8cGF0aCBkPSJNNTE5LjYxNCwyNTQuNjYzTDM4Ni41NjcsMTIxLjYxOWMtMS45MDItMS45MDItNC4wOTMtMi44NTctNi41NjMtMi44NTdjLTIuNDc4LDAtNC42NjEsMC45NTUtNi41NywyLjg1N2wtMTQuMjcxLDE0LjI3NSAgICBjLTEuOTAyLDEuOTAzLTIuODUxLDQuMDktMi44NTEsNi41NjdzMC45NDgsNC42NjUsMi44NTEsNi41NjdsMTEyLjIwNiwxMTIuMjA0TDM1OS4xNjMsMzczLjQ0MiAgICBjLTEuOTAyLDEuOTAyLTIuODUxLDQuMDkzLTIuODUxLDYuNTYzYzAsMi40NzgsMC45NDgsNC42NjgsMi44NTEsNi41N2wxNC4yNzEsMTQuMjY4YzEuOTA5LDEuOTA2LDQuMDkzLDIuODU0LDYuNTcsMi44NTQgICAgYzIuNDcxLDAsNC42NjEtMC45NTEsNi41NjMtMi44NTRMNTE5LjYxNCwyNjcuOGMxLjkwMy0xLjkwMiwyLjg1NC00LjA5NiwyLjg1NC02LjU3ICAgIEM1MjIuNDY4LDI1OC43NTUsNTIxLjUxNywyNTYuNTY1LDUxOS42MTQsMjU0LjY2M3oiIGZpbGw9IiNGRkZGRkYiLz4KCTwvZz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8Zz4KPC9nPgo8L3N2Zz4K" / >
2017-10-23 04:03:12 +00:00
< h1 class = "selected" > < span onclick = "appPage();" > INTVAL< / span > < / h1 >
2017-10-22 02:13:38 +00:00
< / div >
2017-10-22 02:01:46 +00:00
< div id = "app" >
2017-10-22 19:35:56 +00:00
< div >
< div class = "label" > Counter< / div >
< input type = "number" id = "counter" value = "0" step = "1" / >
< / div >
2017-10-22 02:01:46 +00:00
< div >
2017-10-22 02:13:38 +00:00
< div class = "label" > Direction< / div >
2017-10-22 02:17:32 +00:00
< span id = "bwdLabel" > BACKWARD< / span >
2017-10-22 02:13:38 +00:00
< span id = "fwdLabel" class = "selected" > FORWARD< / span >
2017-10-22 02:41:58 +00:00
< label class = "switch" >
< input type = "checkbox" id = "dir" onclick = "setDir();" >
2017-10-22 02:01:46 +00:00
< span class = "slider round" > < / span >
< / label >
< / div >
< div >
2017-10-23 04:17:02 +00:00
< div class = "label" > Exposure < span id = "str" > 1/5< / span > < / div >
2017-10-23 04:03:12 +00:00
< input type = "number" id = "exposure" value = "630" min = "0" oninput = "setExposure();" / >
< select id = "scale" onchange = "setExposureScale();" >
< option value = "ms" selected > ms< / option >
< option value = "sec" > sec< / option >
< option value = "min" > min< / option >
< option value = "hour" > hour< / option >
< / select >
2017-10-22 02:01:46 +00:00
< / div >
< div >
2017-10-23 04:03:12 +00:00
< div class = "label" > Delay< / div >
2017-10-22 02:01:46 +00:00
< input type = "number" id = "delay" value = "0" min = "0" step = "1" / >
2017-10-23 04:03:12 +00:00
< select id = "delayScale" onchange = "setDelayScale();" >
< option value = "ms" selected > ms< / option >
< option value = "sec" > sec< / option >
< option value = "min" > min< / option >
< option value = "hour" > hour< / option >
< / select >
2017-10-22 02:01:46 +00:00
< / div >
< div >
2017-10-22 02:13:38 +00:00
< button id = "seq" > START SEQUENCE< / button >
2017-10-22 02:01:46 +00:00
< / div >
< div >
2017-10-22 02:13:38 +00:00
< button id = "frame" onclick = "frame();" > FRAME< / button >
2017-10-22 02:01:46 +00:00
< / div >
2017-10-22 01:44:07 +00:00
< / div >
2017-10-22 19:35:56 +00:00
< div id = "settings" >
< h2 > SETTINGS< / h2 >
< div >
2017-10-23 04:03:12 +00:00
< div class = "label" > Rex-o-fader< / div >
< select id = "angle" >
< option value = "133" selected > 0< / option >
< option value = "66" > 1< / option >
< option value = "33" > 2< / option >
2017-10-22 19:35:56 +00:00
< / select >
< / div >
2017-10-23 16:58:37 +00:00
< h2 > BLUETOOTH< / h2 >
< select id = "bluetooth" >
< option > N/A< / option >
< / select >
< h2 > WIFI< / h2 >
2017-10-23 04:03:12 +00:00
< div >
< input type = "text" id = "ssid" placeholder = "Wifi SSID" / >
< / div >
< div >
< input type = "password" id = "password" placeholder = "Wifi Password" / >
< / div >
2017-10-22 19:35:56 +00:00
< / div >
2017-10-22 01:07:45 +00:00
< script >
/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */
!function(a,b){"use strict";"object"==typeof module& & "object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a< 0 ? this [ a + this . length ] :this [ a ] } , pushStack:function ( a ) { var b = r.merge(this.constructor(),a);return b . prevObject = this,b},each:function(a){return r . each ( this , a ) } , map:function ( a ) { return this . pushStack ( r . map ( this , function ( b , c ) { return a . call ( b , c , b ) } ) ) } , slice:function ( ) { return this . pushStack ( f . apply ( this , arguments ) ) } , first:function ( ) { return this . eq ( 0 ) } , last:function ( ) { return this . eq ( -1 ) } , eq:function ( a ) { var b = this.length,c=+a+(a<0?b:0);return this . pushStack ( c > =0& & c< b ? [ this [ c ] ] : [ ] ) } , end:function ( ) { return this . prevObject | | this . constructor ( ) } , push:h , sort:c . sort , splice:c . splice } , r . extend = r.fn.extend=function(){var a , b , c , d , e , f , g = arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g & & ( j = g,g=arguments[h]||{},h++),"object"==typeof g | | r . isFunction ( g ) | | ( g = {}),h===i&&(g=this,h--);h<i;h++)if(null!=(a=arguments[h]))for(b in a ) c = g[b],d=a[b],g!==d&&(j&&d&&(r.isPlainObject(d)||(e=Array.isArray(d)))?(e?(e=!1,f=c&&Array.isArray(c)?c:[]):f=c&&r.isPlainObject(c)?c:{},g[b]=r.extend(j,f,d)):void 0 ! = = d & & ( g [ b ] = d ) ) ; return g } , r . extend ( { expando: " jQuery " + ( q + Math . random ( ) ) . replace ( / \ D / g , " " ) , isReady: ! 0 , error:function ( a ) { throw new Error ( a ) } , noop:function ( ) { } , isFunction:function ( a ) { return " function " = = = r . type ( a ) } , isWindow:function ( a ) { return null ! = a & & a = ==a.window},isNumeric:function(a){var b = r.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b , c ; return ! ( ! a | | " [ object Object ] " ! = = k . call ( a ) ) & & ( ! ( b = e(a))||(c=l.call(b,"constructor")&&b.constructor,"function"==typeof c & & m . call ( c ) = = = n ) ) } , isEmptyObject:function ( a ) { var b ; for ( b in a ) return ! 1 ; return ! 0 } , type:function ( a ) { return null = =a?a+"":"object"==typeof a | | " function " = = typeof a ? j [ k . call ( a ) ] | | " object " :typeof a } , globalEval:function ( a ) { p ( a ) } , camelCase:function ( a ) { return a . replace ( t , " ms- " ) . replace ( u , v ) } , each:function ( a , b ) { var c , d = 0;if(w(a)){for(c=a.length;d<c;d++)if(b.call(a[d],d,a[d])===!1)break}else for ( d in a ) if ( b . call ( a [ d ] , d , a [ d ] ) = = = ! 1 ) break ; return a } , trim:function ( a ) { return null = =a?"":(a+"").replace(s,"")},makeArray:function(a,b){var c = b||[];return null ! = a & & ( w ( Object ( a ) ) ? r . merge ( c , " string " = = typeof a ? [ a ] :a ) :h . call ( c , a ) ) , c } , inArray:function ( a , b , c ) { return null = =b?-1:i.call(b,a,c)},merge:function(a,b){for(var c = +b.length,d=0,e=a.length;d<c;d++)a[e++]=b[d];return a . length = e,a},grep:function(a,b,c){for(var d , e = [],f=0,g=a.length,h=!c;f<g;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e } , map:function ( a , b , c ) { var d , e , f = 0,h=[];if(w(a))for(d=a.length;f<d;f++)e=b(a[f],f,c),null!=e&&h.push(e);else for ( f in a ) e = b(a[f],f,c),null!=e&&h.push(e);return g . apply ( [ ] , h ) } , guid:1 , proxy:function ( a , b ) { var c , d , e ; if ( " string " = = typeof b & & ( c = a[b],b=a,a=c),r.isFunction(a))return d = f.call(arguments,2),e=function(){return a . apply ( b | | this , d . concat ( f . call ( arguments ) ) ) } , e . guid = a.guid=a.guid||r.guid++,e},now:Date.now,support:o}),"function"==typeof Symbol & & ( r . fn [ Symbol . iterator ] = c [ Symbol . iterator ] ) , r . each ( " Boolean Number String Function Array Date RegExp Object Error Symbol " . split ( " " ) , function ( a , b ) { j [ " [ object " + b + " ] " ] = b . toLowerCase ( ) } ) ; function w ( a ) { var b = !!a&&"length"in a & & a . length , c = r.type(a);return"function"!==c&&!r.isWindow(a)&&("array"===c||0===b||"number"==typeof b & & b > 0& & b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*
a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S)); var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d& & (e=!0,r.isFunction(d)||(g=!0),j& & (g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h< i ; h + + ) b ( a [ h ] , c , g ? d:d . call ( a [ h ] , h , b ( a [ h ] , c ) ) ) ; return e ? a:j ? b . call ( a ) :i ? b ( a [ 0 ] , c ) :f } , U = function(a){return 1 = ==a.nodeType||9===a.nodeType||!+a.nodeType};function V ( ) { this . expando = r.expando+V.uid++}V.uid=1,V.prototype={cache:function(a){var b = a[this.expando];return b | | ( b = {},U(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d , e = this.cache(a);if("string"==typeof b ) e [ r . camelCase ( b ) ] = c ; else for ( d in b ) e [ r . camelCase ( d ) ] = b [ d ] ; return e } , get:function ( a , b ) { return void 0 = ==b?this.cache(a):a[this.expando]&&a[this.expando][r.camelCase(b)]},access:function(a,b,c){return void 0 = ==b||b&&"string"==typeof b & & void 0 = ==c?this.get(a,b):(this.set(a,b,c),void 0 ! = = c ? c:b ) } , remove:function ( a , b ) { var c , d = a[this.expando];if(void 0 ! = = d ) { if ( void 0 ! = = b ) { Array . isArray ( b ) ? b = b.map(r.camelCase):(b=r.camelCase(b),b=b in d ? [ b ] :b . match ( L ) | | [ ] ) , c = b.length;while(c--)delete d [ b [ c ] ] } ( void 0 = ==b||r.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a [ this . expando ] ) } } , hasData:function ( a ) { var b = a[this.expando];return void 0 ! = = b & & ! r . isEmptyObject ( b ) } } ; var W = new V , X = new V , Y = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Z=/[A-Z]/g;function $ ( a ) { return " true " = = = a | | " false " ! = = a & & ( " null " = = = a ? null:a = ==+a+""?+a:Y.test(a)?JSON.parse(a):a)}function _ ( a , b , c ) { var d ; if ( void 0 = ==c&&1===a.nodeType)if(d="data-"+b.replace(Z,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c ) { try { c = $(c)}catch(e){}X.set(a,b,c)}else c = void 0 ; return c } r . extend ( { hasData:function ( a ) { return X . hasData ( a ) | | W . hasData ( a ) } , data:function ( a , b , c ) { return X . access ( a , b , c ) } , removeData:function ( a , b ) { X . remove ( a , b ) } , _data:function ( a , b , c ) { return W . access ( a , b , c ) } , _removeData:function ( a , b ) { W . remove ( a , b ) } } ) , r . fn . extend ( { data:function ( a , b ) { var c , d , e , f = this[0],g=f&&f.attributes;if(void 0 = ==a){if(this.length&&(e=X.get(f),1===f.nodeType&&!W.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=r.camelCase(d.slice(5)),_(f,d,e[d])));W.set(f,"hasDataAttrs",!0)}return e } return " object " = = typeof a ? this . each ( function ( ) { X . set ( this , a ) } ) :T ( this , function ( b ) { var c ; if ( f & & void 0 = ==b){if(c=X.get(f,a),void 0 ! = = c ) return c ; if ( c = _(f,a),void 0 ! = = c ) return c } else this . each ( function ( ) { X . set ( this , a , b ) } ) } , null , b , arguments . length > 1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx"; var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e& & (e=c.shift(),d--),e& & ("fx"===b& & c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d& & f& & f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a& & (b=a,a="fx",c--),arguments.length< c ? r . queue ( this [ 0 ] , a ) :void 0 = ==b?this:this.each(function(){var c = r.queue(this,a,b);r._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&r.dequeue(this,a)})},dequeue:function(a){return this . each ( function ( ) { r . dequeue ( this , a ) } ) } , clearQueue:function ( a ) { return this . queue ( a | | " fx " , [ ] ) } , promise:function ( a , b ) { var c , d = 1,e=r.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a & & ( b = a,a=void 0 ) , a = a||"fx";while(g--)c=W.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h ( ) , e . promise ( b ) } } ) ; var aa = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,ba=new RegExp ( " ^ ( ? : ( [ + - ] ) = | ) ( " + aa + " )
null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue& & "radio"===b& & B(a,"input")){var c=a.value;return a.setAttribute("type",b),c& & (a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L); if(e& & 1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f& & 8!==f& & 2!==f)return 1===f& & r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e& & "set"in e& & void 0!==(d=e.set(a,c,b))?d:a[b]=c:e& & "get"in e& & null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)& & a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b& & b.parentNode& & b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this}); function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute& & a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[]; while(c=this[i++])if(e=qb(c),d=1===c.nodeType& & " "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")< 0 & & ( d + = f + " " ) ; h = pb(d),e!==h&&c.setAttribute("class",h)}}return this } , removeClass:function ( a ) { var b , c , d , e , f , g , h , i = 0;if(r.isFunction(a))return this . each ( function ( b ) { r ( this ) . removeClass ( a . call ( this , b , qb ( this ) ) ) } ) ; if ( ! arguments . length ) return this . attr ( " class " , " " ) ; if ( " string " = = typeof a & & a ) { b = a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" " + pb ( e ) + " " ) { g = 0;while(f=b[g++])while(d.indexOf(" " + f + " " ) > -1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h& & c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b& & "string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a& & "boolean"!==c||(b=qb(this),b& & W.set(this,"__className__",b),this.setAttribute& & this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType& & (" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType& & (e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)& & (e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b& & "set"in b& & void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b& & "get"in b& & void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f< 0 ? i:g ? f:0 ; d < i ; d + + ) if ( c = e[d],(c.selected||d===f)&&!c.
< / script >
< script >
2017-10-23 04:03:12 +00:00
var BOLEX = {
angle : 133,
2017-10-23 04:17:02 +00:00
prism : 0.8,
expected : 630
2017-10-23 04:03:12 +00:00
};
2017-10-22 19:35:56 +00:00
var STATE = {
2017-10-23 04:03:12 +00:00
dir : true,
exposure : 630, //always ms
delay : 0,
scale : 'ms',
delayScale : 'ms',
counter : 0
2017-10-22 19:35:56 +00:00
}
2017-10-22 01:54:17 +00:00
var frame;
2017-10-22 19:35:56 +00:00
var getState;
2017-10-22 01:54:17 +00:00
var setDir;
var setExposure;
var setDelay;
2017-10-23 04:03:12 +00:00
//ms
var shutter = function (exposure) {
'use strict';
2017-10-23 04:17:02 +00:00
var fraction = BOLEX.expected / 1000;
2017-10-23 04:03:12 +00:00
var speed;
var corrected;
var str;
2017-10-23 04:33:02 +00:00
if (exposure > BOLEX.expected) {
2017-10-23 04:03:12 +00:00
//if exposure is explicitly set
fraction = exposure / 1000;
speed = fraction;
} else {
speed = fraction * (BOLEX.angle / 360);
}
corrected = speed * BOLEX.prism;
if (corrected < 1.0 ) {
//less than a second
2017-10-23 04:17:02 +00:00
str = '1/' + Math.round(Math.pow(corrected, -1)) + ' sec';
2017-10-23 04:03:12 +00:00
} else if (corrected >= 1.0 & & corrected < 60 ) {
//greater than a second, less than a minute
str = '' + (Math.round(corrected * 10) / 10) + ' sec'
} else if (corrected >= 60 & & corrected < 60 * 60 ) {
//greater than a minute, less than an hour
str = '' + (Math.round(corrected / 6) / 10) + ' min';
} else if (corrected >= 60 * 60 & & corrected < 60 * 60 * 24 ) {
//greater than an hour, less than a day
str = '' + (Math.round(corrected / (6 * 60)) / 10) + ' hr';
} else if (corrected >= 60 * 60 * 24) {
//greater than a day
str = '' + (Math.round(corrected / (6 * 60 * 24)) / 10) + ' day';
}
return { speed : speed, str : str }
};
var scaleAuto = function (ms) {
'use strict';
if (ms < 1000 ) {
return 'ms'
} else if (ms >= 1000 & & ms < 1000 * 60 ) {
return 'sec'
} else if (ms >= 1000 * 60 & & ms < 1000 * 60 * 60 ) {
return 'min'
} else if (ms >= 1000 * 60 * 60) {
return 'hour'
}
};
var scaleTime = function (raw, scale) {
'use strict';
if (scale === 'ms') {
return raw
} else if (scale === 'sec') {
return raw * 1000;
} else if (scale === 'min') {
return raw * (1000 * 60);
} else if (scale === 'hour') {
return raw * (1000 * 60 * 60);
}
};
var setExposureScale = function () {
'use strict';
var scale = $('#scale').val();
if (scale === 'ms') {
$('#exposure').val(STATE.exposure);
} else if (scale === 'sec') {
$('#exposure').val(STATE.exposure / 1000);
} else if (scale === 'min') {
$('#exposure').val(STATE.exposure / (1000 * 60));
} else if (scale === 'hour') {
$('#exposure').val(STATE.exposure / (1000 * 60 * 60));
}
STATE.scale = scale;
};
var setDelayScale = function () {
'use strict';
var scale = $('#scale').val();
if (scale === 'ms') {
$('#delay').val(STATE.delay);
} else if (scale === 'sec') {
$('#delay').val(STATE.delay / 1000);
} else if (scale === 'min') {
$('#delay').val(STATE.delay / (1000 * 60));
} else if (scale === 'hour') {
$('#delay').val(STATE.delay / (1000 * 60 * 60));
}
STATE.delayScale = scale;
};
2017-10-22 02:41:58 +00:00
var setDirLabel = function (dir) {
'use strict';
if (dir) {
$('#bwdLabel').removeClass();
$('#fwdLabel').addClass('selected');
} else {
$('#fwdLabel').removeClass();
$('#bwdLabel').addClass('selected');
}
};
2017-10-22 19:35:56 +00:00
var incCounter = function (val) {
2017-10-23 04:03:12 +00:00
'use strict';
2017-10-22 19:35:56 +00:00
var current = $('#counter').val();
2017-10-23 00:01:43 +00:00
$('#counter').val(parseInt(current) + val);
2017-10-23 04:03:12 +00:00
STATE.counter += val;
};
var appPage = function () {
'use strict';
$('#app').show();
$('#settings').hide();
$('#settingsIcon').removeClass('selected');
$('#mscriptIcon').removeClass('selected');
$('#bar h1').addClass('selected');
2017-10-22 19:35:56 +00:00
};
var settingsPage = function () {
2017-10-23 04:03:12 +00:00
'use strict';
2017-10-22 19:35:56 +00:00
$('#settings').show();
$('#app').hide();
$('#bar h1').removeClass('selected');
$('#mscriptIcon').removeClass('selected');
$('#settingsIcon').addClass('selected');
};
2017-10-22 01:07:45 +00:00
< / script >
< script >
2017-10-22 01:54:17 +00:00
var web = {};
web.frame = function () {
'use strict';
$.ajax({
method : 'POST',
url : '/frame',
2017-10-22 02:50:56 +00:00
contentType: 'application/json',
2017-10-22 02:47:12 +00:00
dataType : 'json',
2017-10-22 01:54:17 +00:00
success : web.frameSuccess
});
}
web.frameSuccess = function (res) {
'use strict';
$('#frame').blur();
2017-10-22 19:35:56 +00:00
if (res.dir === true) {
incCounter(1);
} else {
incCounter(-1);
}
2017-10-22 01:54:17 +00:00
};
web.setDir = function () {
2017-10-22 02:41:58 +00:00
'use strict';
var dir = !$('#dir').is(':checked');
$.ajax({
method : 'POST',
url : '/dir',
2017-10-22 02:53:35 +00:00
data : JSON.stringify({ dir : dir}),
2017-10-22 02:50:56 +00:00
contentType: 'application/json',
2017-10-22 02:44:01 +00:00
dataType : 'json',
2017-10-22 02:41:58 +00:00
success : web.setDirSuccess
2017-10-23 04:03:12 +00:00
});
2017-10-22 01:54:17 +00:00
};
web.setDirSuccess = function (res) {
2017-10-22 19:35:56 +00:00
'use strict';
2017-10-23 04:03:12 +00:00
STATE.dir = res.dir;
2017-10-22 19:35:56 +00:00
setDirLabel(res.dir);
2017-10-23 04:03:12 +00:00
console.log('setDir to ' + res.dir);
2017-10-22 19:35:56 +00:00
};
web.getState = function () {
'use strict';
$.ajax({
method : 'GET',
url : '/status',
success : web.getStateSuccess
2017-10-23 04:03:12 +00:00
});
2017-10-22 19:35:56 +00:00
};
web.getStateSuccess = function (res) {
2017-10-22 01:54:17 +00:00
'use strict';
2017-10-23 04:03:12 +00:00
var exposure;
2017-10-23 04:17:02 +00:00
var scale;
2017-10-22 23:59:38 +00:00
if (res.frame.dir !== true) {
$('#dir').prop('checked', true);
2017-10-23 04:03:12 +00:00
STATE.dir = res.frame.dir;
2017-10-22 23:59:38 +00:00
setDirLabel(false);
}
$('#counter').val(res.counter);
2017-10-23 04:03:12 +00:00
STATE.count = res.counter;
2017-10-23 05:11:46 +00:00
2017-10-23 04:03:12 +00:00
if (res.frame.exposure === 0) {
2017-10-23 04:17:02 +00:00
res.frame.exposure = BOLEX.expected;
2017-10-23 04:03:12 +00:00
}
STATE.exposure = res.frame.exposure;
exposure = shutter(STATE.exposure);
2017-10-23 04:19:48 +00:00
scale = scaleAuto(STATE.exposure);
2017-10-23 05:17:05 +00:00
$('#str').text(exposure.str);
2017-10-23 05:11:46 +00:00
$('#scale').val(scale);
2017-10-23 05:20:20 +00:00
setExposureScale();
2017-10-23 05:08:18 +00:00
2017-10-22 23:59:38 +00:00
$('#delay').val(res.frame.delay);
2017-10-23 04:03:12 +00:00
STATE.delay = res.frame.delay;
};
web.setExposure = function () {
var exposure = $('#exposure').val();
2017-10-23 05:24:22 +00:00
if (exposure === '' || exposure === null) {
exposure = 0;
}
2017-10-23 04:03:12 +00:00
var scaledExposure = scaleTime(exposure, STATE.scale);
$.ajax({
method : 'POST',
url : '/exposure',
2017-10-23 04:17:02 +00:00
data : JSON.stringify({ exposure : scaledExposure }),
2017-10-23 04:03:12 +00:00
contentType: 'application/json',
dataType : 'json',
success : web.setExposureSuccess
});
STATE.exposure = scaledExposure;
};
web.setExposureSuccess = function (res) {
'use strict';
var exposure;
2017-10-23 04:26:53 +00:00
if (res.exposure < BOLEX.expected ) {
2017-10-23 04:17:02 +00:00
res.exposure = BOLEX.expected;
2017-10-23 04:03:12 +00:00
}
STATE.exposure = res.exposure;
exposure = shutter(STATE.exposure);
$('#str').text(exposure.str);
console.log('setExposure to ' + res.exposure);
};
web.setDelay = function () {
var delay = $('#delay').val();
var scaledDelay = scaleTime(delay, STATE.delayScale);
$.ajax({
method : 'POST',
url : '/delay',
data : JSON.stringify({ exposure : exposure }),
contentType: 'application/json',
dataType : 'json',
success : web.setDelaySuccess
})
STATE.delay = scaledDelay;
};
web.setDelaySuccess = function (res) {
STATE.delay = res.delay;
console.log('setDelay to ' + res.delay)
2017-10-22 01:54:17 +00:00
};
web.init = function () {
'use strict';
frame = web.frame;
2017-10-22 19:35:56 +00:00
getState = web.getState;
2017-10-22 01:54:17 +00:00
setDir = web.setDir;
setExposure = web.setExposure;
2017-10-22 23:59:38 +00:00
2017-10-22 19:35:56 +00:00
web.getState();
2017-10-22 01:54:17 +00:00
};
web.init();
2017-10-22 01:07:45 +00:00
< / script >
< script >
2017-10-22 01:54:17 +00:00
var mobile = {};
mobile.init = function () {
'use strict';
};
2017-10-22 01:07:45 +00:00
< / script >
2017-08-22 02:49:35 +00:00
< / body >
< / html >