equal
deleted
inserted
replaced
43 offset + 1, /* string starts after size*/ |
43 offset + 1, /* string starts after size*/ |
44 size /* size of string */ |
44 size /* size of string */ |
45 )), size + 1]; /* total increment */ |
45 )), size + 1]; /* total increment */ |
46 } |
46 } |
47 }; |
47 }; |
48 |
|
49 // Apply updates recieved through ws.onmessage to subscribed widgets |
|
50 function apply_updates() { |
|
51 updates.forEach((value, index) => { |
|
52 dispatch_value(index, value); |
|
53 }); |
|
54 updates.clear(); |
|
55 } |
|
56 |
48 |
57 // Called on requestAnimationFrame, modifies DOM |
49 // Called on requestAnimationFrame, modifies DOM |
58 var requestAnimationFrameID = null; |
50 var requestAnimationFrameID = null; |
59 function animate() { |
51 function animate() { |
60 let rearm = true; |
52 let rearm = true; |
124 i += 4; |
116 i += 4; |
125 let iectype = hmitree_types[index]; |
117 let iectype = hmitree_types[index]; |
126 if(iectype != undefined){ |
118 if(iectype != undefined){ |
127 let dvgetter = dvgetters[iectype]; |
119 let dvgetter = dvgetters[iectype]; |
128 let [value, bytesize] = dvgetter(dv,i); |
120 let [value, bytesize] = dvgetter(dv,i); |
129 updates.set(index, value); |
121 dispatch_value(index, value); |
130 i += bytesize; |
122 i += bytesize; |
131 } else { |
123 } else { |
132 throw new Error("Unknown index "+index); |
124 throw new Error("Unknown index "+index); |
133 } |
125 } |
134 }; |
126 }; |
135 |
127 |
136 apply_updates(); |
|
137 // register for rendering on next frame, since there are updates |
128 // register for rendering on next frame, since there are updates |
138 } catch(err) { |
129 } catch(err) { |
139 // 1003 is for "Unsupported Data" |
130 // 1003 is for "Unsupported Data" |
140 // ws.close(1003, err.message); |
131 // ws.close(1003, err.message); |
141 |
132 |