nodeskini 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/README.md +31 -0
  2. package/client/archive/bundle.js +11528 -0
  3. package/client/archive/golem.html +60 -0
  4. package/client/archive/golemClient.js +595 -0
  5. package/client/archive/golembundle.js +11634 -0
  6. package/client/archive/sequencer.html +43 -0
  7. package/client/archive/sequenceurClient.js +815 -0
  8. package/client/archive/stylegolem.css +158 -0
  9. package/client/archive/stylesequenceur.css +204 -0
  10. package/client/clientListe/Sortable-master/.circleci/config.yml +33 -0
  11. package/client/clientListe/Sortable-master/.editorconfig +15 -0
  12. package/client/clientListe/Sortable-master/.github/ISSUE_TEMPLATE/bug-report.md +73 -0
  13. package/client/clientListe/Sortable-master/.github/ISSUE_TEMPLATE/custom-template.md +48 -0
  14. package/client/clientListe/Sortable-master/.github/ISSUE_TEMPLATE/feature-request.md +41 -0
  15. package/client/clientListe/Sortable-master/.jshintrc +25 -0
  16. package/client/clientListe/Sortable-master/.testcaferc.json +7 -0
  17. package/client/clientListe/Sortable-master/CONTRIBUTING.md +26 -0
  18. package/client/clientListe/Sortable-master/LICENSE +21 -0
  19. package/client/clientListe/Sortable-master/README.md +813 -0
  20. package/client/clientListe/Sortable-master/Sortable.js +3709 -0
  21. package/client/clientListe/Sortable-master/Sortable.min.js +2 -0
  22. package/client/clientListe/Sortable-master/Sortable.min.old.js +2 -0
  23. package/client/clientListe/Sortable-master/Sortable.min.old.old.js +2 -0
  24. package/client/clientListe/Sortable-master/babel.config.js +27 -0
  25. package/client/clientListe/Sortable-master/bower.json +30 -0
  26. package/client/clientListe/Sortable-master/entry/entry-complete.js +8 -0
  27. package/client/clientListe/Sortable-master/entry/entry-core.js +19 -0
  28. package/client/clientListe/Sortable-master/entry/entry-defaults.js +19 -0
  29. package/client/clientListe/Sortable-master/index.html +460 -0
  30. package/client/clientListe/Sortable-master/modular/sortable.complete.esm.js +3701 -0
  31. package/client/clientListe/Sortable-master/modular/sortable.core.esm.js +3698 -0
  32. package/client/clientListe/Sortable-master/modular/sortable.esm.js +3699 -0
  33. package/client/clientListe/Sortable-master/package-lock.json +5704 -0
  34. package/client/clientListe/Sortable-master/package.json +56 -0
  35. package/client/clientListe/Sortable-master/plugins/AutoScroll/AutoScroll.js +270 -0
  36. package/client/clientListe/Sortable-master/plugins/AutoScroll/README.md +80 -0
  37. package/client/clientListe/Sortable-master/plugins/AutoScroll/index.js +1 -0
  38. package/client/clientListe/Sortable-master/plugins/MultiDrag/MultiDrag.js +617 -0
  39. package/client/clientListe/Sortable-master/plugins/MultiDrag/README.md +96 -0
  40. package/client/clientListe/Sortable-master/plugins/MultiDrag/index.js +1 -0
  41. package/client/clientListe/Sortable-master/plugins/OnSpill/OnSpill.js +79 -0
  42. package/client/clientListe/Sortable-master/plugins/OnSpill/README.md +60 -0
  43. package/client/clientListe/Sortable-master/plugins/OnSpill/index.js +1 -0
  44. package/client/clientListe/Sortable-master/plugins/README.md +178 -0
  45. package/client/clientListe/Sortable-master/plugins/Swap/README.md +55 -0
  46. package/client/clientListe/Sortable-master/plugins/Swap/Swap.js +90 -0
  47. package/client/clientListe/Sortable-master/plugins/Swap/index.js +1 -0
  48. package/client/clientListe/Sortable-master/scripts/banner.js +8 -0
  49. package/client/clientListe/Sortable-master/scripts/build.js +17 -0
  50. package/client/clientListe/Sortable-master/scripts/esm-build.js +28 -0
  51. package/client/clientListe/Sortable-master/scripts/minify.js +11 -0
  52. package/client/clientListe/Sortable-master/scripts/test-compat.js +30 -0
  53. package/client/clientListe/Sortable-master/scripts/test.js +21 -0
  54. package/client/clientListe/Sortable-master/scripts/umd-build.js +15 -0
  55. package/client/clientListe/Sortable-master/src/Animation.js +175 -0
  56. package/client/clientListe/Sortable-master/src/BrowserInfo.js +12 -0
  57. package/client/clientListe/Sortable-master/src/EventDispatcher.js +57 -0
  58. package/client/clientListe/Sortable-master/src/PluginManager.js +87 -0
  59. package/client/clientListe/Sortable-master/src/Sortable.js +1971 -0
  60. package/client/clientListe/Sortable-master/src/utils.js +556 -0
  61. package/client/clientListe/Sortable-master/st/app.js +224 -0
  62. package/client/clientListe/Sortable-master/st/iframe/frame.html +32 -0
  63. package/client/clientListe/Sortable-master/st/iframe/index.html +49 -0
  64. package/client/clientListe/Sortable-master/st/logo.png +0 -0
  65. package/client/clientListe/Sortable-master/st/og-image.png +0 -0
  66. package/client/clientListe/Sortable-master/st/prettify/prettify.css +1 -0
  67. package/client/clientListe/Sortable-master/st/prettify/prettify.js +46 -0
  68. package/client/clientListe/Sortable-master/st/prettify/run_prettify.js +64 -0
  69. package/client/clientListe/Sortable-master/st/saucelabs.svg +1 -0
  70. package/client/clientListe/Sortable-master/st/theme.css +254 -0
  71. package/client/clientListe/Sortable-master/tests/Sortable.compat.test.js +39 -0
  72. package/client/clientListe/Sortable-master/tests/Sortable.test.js +386 -0
  73. package/client/clientListe/Sortable-master/tests/dual-list.html +34 -0
  74. package/client/clientListe/Sortable-master/tests/empty-list.html +30 -0
  75. package/client/clientListe/Sortable-master/tests/filter.html +27 -0
  76. package/client/clientListe/Sortable-master/tests/handles.html +27 -0
  77. package/client/clientListe/Sortable-master/tests/nested.html +67 -0
  78. package/client/clientListe/Sortable-master/tests/single-list.html +25 -0
  79. package/client/clientListe/Sortable-master/tests/style.css +18 -0
  80. package/client/clientListe/clientListe.html +148 -0
  81. package/client/clientListe/clientListe.js +1508 -0
  82. package/client/clientListe/clientListebundle.js +13164 -0
  83. package/client/clientListe/images/poubelle.png +0 -0
  84. package/client/clientListe/images/start.png +0 -0
  85. package/client/clientListe/images/stop.png +0 -0
  86. package/client/clientListe/images/submit.png +0 -0
  87. package/client/clientListe/sortable-theme-bootstrap.css +90 -0
  88. package/client/configurateur/configReact.js +273 -0
  89. package/client/configurateur/configReactbundle.js +295 -0
  90. package/client/configurateur/configurateur.css +95 -0
  91. package/client/configurateur/configurateur.html +48 -0
  92. package/client/configurateur/lib/jexcel.css +755 -0
  93. package/client/configurateur/lib/jexcel.js +14970 -0
  94. package/client/configurateur/lib/jsuites.css +2801 -0
  95. package/client/configurateur/lib/jsuites.js +11822 -0
  96. package/client/configurateur/lib/react-dom.production.min.js +239 -0
  97. package/client/configurateur/lib/react.production.min.js +32 -0
  98. package/client/configurateur/src/configReact.js +247 -0
  99. package/client/controleur/clientcontroleur.js +536 -0
  100. package/client/controleur/clientcontroleur.test.js +282 -0
  101. package/client/controleur/controleur.html +51 -0
  102. package/client/controleur/controleurbundle.js +565 -0
  103. package/client/controleur/stylecontroleur.css +236 -0
  104. package/client/controleurHH/controleurHH.html +71 -0
  105. package/client/controleurHH/controleurHH.js +252 -0
  106. package/client/controleurHH/styles/index.css +320 -0
  107. package/client/controleurHH/styles/material.css +11552 -0
  108. package/client/parametrage/paramReact.js +473 -0
  109. package/client/parametrage/paramReactbundle.js +500 -0
  110. package/client/parametrage/parametrage.css +111 -0
  111. package/client/parametrage/parametrage.html +163 -0
  112. package/client/parametrage/src/paramReact.js +459 -0
  113. package/client/score/hash.js +83 -0
  114. package/client/score/p5.min.js +3 -0
  115. package/client/score/parto1.js +1171 -0
  116. package/client/score/parto1bundle.js +1181 -0
  117. package/client/score/processing.min.js +431 -0
  118. package/client/score/score.html +15 -0
  119. package/client/score/score.js +34 -0
  120. package/client/simulateurListe/simulateurFork.js +750 -0
  121. package/client/simulateurListe/simulateurFork.mjs +681 -0
  122. package/client/simulateurListe/simulateurForkSansReorg.js +569 -0
  123. package/client/simulateurListe/simulateurListe.js +628 -0
  124. package/myReact/archive/Nodeemitvaluedlocal1.hh.js +52 -0
  125. package/myReact/archive/abort-parNode.js +79 -0
  126. package/myReact/archive/abroNode.js +169 -0
  127. package/myReact/archive/abroNode2.js +80 -0
  128. package/myReact/archive/atom.compile.hh.js +51 -0
  129. package/myReact/archive/await-countNode.js +67 -0
  130. package/myReact/archive/await-nowvalNode.js +44 -0
  131. package/myReact/archive/callHH.js +96 -0
  132. package/myReact/archive/emit-if2.hh.compiled.js +113 -0
  133. package/myReact/archive/every1Node.js +35 -0
  134. package/myReact/archive/if-runNode.js +74 -0
  135. package/myReact/archive/if1Node.js +43 -0
  136. package/myReact/archive/makeawait.js +0 -0
  137. package/myReact/archive/myReact.old.js +684 -0
  138. package/myReact/archive/orchestration.js +281 -0
  139. package/myReact/archive/orchestration1.js +132 -0
  140. package/myReact/archive/orchestration1.xml +465 -0
  141. package/myReact/archive/orchestration2.js +161 -0
  142. package/myReact/archive/orchestrationHH.mano.js +280 -0
  143. package/myReact/archive/orchestrationHHTest.js +428 -0
  144. package/myReact/archive/orchestrationHHTest.xml +234 -0
  145. package/myReact/archive/orchestrationHHTestRun.js +104 -0
  146. package/myReact/archive/orchestrationHHTestRun.xml +34 -0
  147. package/myReact/archive/orchestrationTest0.js +178 -0
  148. package/myReact/archive/orchestrationTest1.js +181 -0
  149. package/myReact/archive/orchestrationTest2.js +281 -0
  150. package/myReact/archive/run3pointsNode.js +59 -0
  151. package/myReact/archive/runNode.js +123 -0
  152. package/myReact/archive/runNode2.js +91 -0
  153. package/myReact/archive/testAwait1.js +141 -0
  154. package/myReact/archive/testAwait1.xml +86 -0
  155. package/myReact/archive/testEvery1.js +122 -0
  156. package/myReact/archive/testEvery1.xml +79 -0
  157. package/myReact/archive/testHH1.js +135 -0
  158. package/myReact/archive/testHH1.xml +86 -0
  159. package/myReact/archive/testHH1revu.js +104 -0
  160. package/myReact/archive/testHH2.js +122 -0
  161. package/myReact/archive/testHH2.xml +79 -0
  162. package/myReact/archive/testHH3.js +130 -0
  163. package/myReact/archive/testHH3.xml +86 -0
  164. package/myReact/archive/testHHabort.js +121 -0
  165. package/myReact/archive/testHHabort.xml +83 -0
  166. package/myReact/archive/testMakeawait.js +202 -0
  167. package/myReact/archive/testRun1.js +168 -0
  168. package/myReact/archive/testRun1.xml +142 -0
  169. package/myReact/archive/titi.js +28 -0
  170. package/myReact/archive/titi.xml +110 -0
  171. package/myReact/archive/toto.js +73 -0
  172. package/myReact/archive/toto.xml +198 -0
  173. package/myReact/archive/trap-await-parallelNode.js +123 -0
  174. package/myReact/inutiles/hiver2022.xml +804 -0
  175. package/myReact/inutiles/hopeNode.xml +459 -0
  176. package/myReact/inutiles/mars2022.xml +871 -0
  177. package/myReact/inutiles/mystique1.xml +318 -0
  178. package/myReact/inutiles/mystiqueOSC.xml +277 -0
  179. package/myReact/inutiles/opus5Node.xml +1271 -0
  180. package/myReact/inutiles/opus5NodeLinux.xml +1241 -0
  181. package/myReact/inutiles/orchestrationHH.xml +541 -0
  182. package/myReact/inutiles/orchestrationHH2.xml +547 -0
  183. package/myReact/inutiles/testHH.xml +95 -0
  184. package/myReact/inutiles/trouveLaPercuTenor.xml +349 -0
  185. package/myReact/myReact.js +744 -0
  186. package/myReact/myReact.min.js +1 -0
  187. package/myReact/orchestrationHH.js +311 -0
  188. package/myReact/orchestrationHH.mjs +436 -0
  189. package/myReact/orchestrationHH.mjs.map +1 -0
  190. package/package.json +46 -0
  191. package/serveur/OSCandMidi.mjs +361 -0
  192. package/serveur/computeScore.mjs +415 -0
  193. package/serveur/controleDAW.mjs +1149 -0
  194. package/serveur/defaultSession.csv +2 -0
  195. package/serveur/defaultSkiniParametres.js +119 -0
  196. package/serveur/gameOSC.mjs +96 -0
  197. package/serveur/groupeClientsSons.mjs +1014 -0
  198. package/serveur/ipConfig.json +24 -0
  199. package/serveur/ipConfig127.json +19 -0
  200. package/serveur/ipConfig75.json +17 -0
  201. package/serveur/ipConfigBH.json +19 -0
  202. package/serveur/ipConfigLocal.json +19 -0
  203. package/serveur/midiConfig.json +26 -0
  204. package/serveur/midiConfigBH.json +26 -0
  205. package/serveur/midiConfigVoid.json +3 -0
  206. package/serveur/midimix.mjs +570 -0
  207. package/serveur/saveParam.mjs +159 -0
  208. package/serveur/skiniParametres.good.js +132 -0
  209. package/serveur/skiniParametres.js +106 -0
  210. package/serveur/utilsHHSkini.hh.js +64 -0
  211. package/serveur/utilsSkini.mjs +137 -0
  212. package/serveur/websocketServer.mjs +2052 -0
  213. package/serveur/workerInterfaceZ.mjs +327 -0
  214. package/serveur/workerSynchro.mjs +49 -0
  215. package/skini.mjs +141 -0
@@ -0,0 +1,163 @@
1
+ <html>
2
+ <!-- Keep the lib from the configurateur to avoid copies -->
3
+ <script src="./client/configurateur/lib/jexcel.js"></script>
4
+ <link rel="stylesheet" href="./client/configurateur/lib/jexcel.css" type="text/css" />
5
+ <script src="./client/configurateur/lib/jsuites.js"></script>
6
+ <link rel="stylesheet" href="./client/configurateur/lib/jsuites.css" type="text/css" />
7
+
8
+ <head>
9
+ <meta charset="UTF-8" name="viewport" />
10
+ <link rel="stylesheet" type="text/css" href="./client/parametrage/parametrage.css">
11
+ <script defer></script>
12
+
13
+ </head>
14
+
15
+ <body onload="initWSSocket(window.location.hostname);">
16
+ <!-- <hr>
17
+ <div style="color:white">Info: <span style="color:white" id="MessageDuServeur"> Rien </span></div>
18
+ <hr> -->
19
+
20
+ <BR>
21
+ <!-- <div id="like_button_container"></div> -->
22
+ <div>
23
+ <input type="checkbox" id="directMidi" name="parameter" value="directMidi" checked>
24
+ <label class="info" for="directMidi">Direct Midi</label>
25
+ </div>
26
+ <div>
27
+ <input type="checkbox" id="english" name="parameter" value="english" checked>
28
+ <label class="info" for="english">English</label>
29
+ </div>
30
+ <div>
31
+ <input type="checkbox" id="reactOnPlay" name="parameter" value="reactOnPlay" checked>
32
+ <label class="info" for="reactOnPlay">React on Play</label>
33
+ </div>
34
+ <div>
35
+ <input type="checkbox" id="pulsationON" name="parameter" value="pulsationON" checked>
36
+ <label class="info" for="pulsationON">Pulsation ON</label>
37
+ </div>
38
+ <div>
39
+ <label class="info" for="nbeDeGroupesClients">Number of client groups</label>
40
+ <input class="inputText" type="number" id="nbeDeGroupesClients" />
41
+ </div>
42
+ <div>
43
+ <input type="checkbox" id="shufflePatterns" name="parameter" value="shufflePatterns" checked>
44
+ <label class="info" for="shufflePatterns">Shuffle Patterns</label>
45
+ </div>
46
+ <div>
47
+ <label class="info" for="algoGestionFifo">Algo Fifo management</label>
48
+ <input class="inputText" type="number" id="algoGestionFifo" />
49
+ </div>
50
+
51
+ <HR>
52
+ <div>
53
+ <input type="checkbox" id="useRaspberries" name="parameter" value="useRaspberries" checked>
54
+ <label class="info" for="useRaspberries">Use Raspberries</label>
55
+ </div>
56
+ <div>
57
+ <label class="info" for="playBufferMessage">Play Buffer Message</label>
58
+ <input class="inputText" type="text" id="playBufferMessage" />
59
+ </div>
60
+ <div>
61
+ <label class="info" for="raspOSCPort">Raspberry OSC Port</label>
62
+ <input class="inputText" type="number" id="raspOSCPort" />
63
+ </div>
64
+
65
+ <HR>
66
+ <div>
67
+ <input type="radio" id="synchoOnMidiClock" name="parameter" value="synchoOnMidiClock" checked>
68
+ <label class="info" for="synchoOnMidiClock">Syncho On Midi Clock</label>
69
+ </div>
70
+ <div>
71
+ <input type="radio" id="synchroLink" name="parameter" value="synchroLink" checked>
72
+ <label class="info" for="synchroLink">Synchro Link</label>
73
+ </div>
74
+ <div>
75
+ <input type="radio" id="synchroSkini" name="parameter" value="synchroSkini" checked>
76
+ <label class="info" for="synchroSkini">Synchro Skini</label>
77
+ </div>
78
+
79
+ <div>
80
+ <label class="info" for="timer">Timer</label>
81
+ <input class="inputText" type="number" id="timer" />
82
+ </div>
83
+
84
+ <HR>
85
+ <div>
86
+ <label class="info" for="soundFilesPath1">Sound Files Path</label>
87
+ <input class="inputText" type="text" id="soundFilesPath1" />
88
+ </div>
89
+ <HR>
90
+ <div>
91
+ <input type="checkbox" id="simulatorInAseperateGroup" name="parameter" value="simulatorInAseperateGroup" checked>
92
+ <label class="info" for="simulatorInAseperateGroup">Simulator in a seperate Group</label>
93
+ </div>
94
+ <div>
95
+ <label class="info" for="tempoMax">Tempo Max</label>
96
+ <input class="inputText" type="number" id="tempoMax" />
97
+ </div>
98
+ <div>
99
+ <label class="info" for="tempoMin">Tempo Min</label>
100
+ <input class="inputText" type="number" id="tempoMin" />
101
+ </div>
102
+ <div>
103
+ <label class="info" for="limiteDureeAttente">Limit Waiting Time (in pulse)</label>
104
+ <input class="inputText" type="number" id="limiteDureeAttente" />
105
+ </div>
106
+
107
+ <HR>
108
+ <div>
109
+ <input type="checkbox" id="gameOSC" name="parameter" value="gameOSC" checked>
110
+ <label class="info" for="gameOSC">Game OSC</label>
111
+ </div>
112
+
113
+ <div>
114
+ <input type="checkbox" id="sensorOSC" name="parameter" value="sensorOSC" checked>
115
+ <label class="info" for="sensorOSC">Sensor OSC</label>
116
+ </div>
117
+
118
+ <div>
119
+ <label class="info" for="sensorInit1">Sensors Temporisation</label>
120
+ <input class="sensorParam" type="number" id="sensorInit1" />
121
+ <input class="sensorParam" type="number" id="sensorInit2" />
122
+ <input class="sensorParam" type="number" id="sensorInit3" />
123
+ <input class="sensorParam" type="number" id="sensorInit4" />
124
+ <input class="sensorParam" type="number" id="sensorInit5" />
125
+ <input class="sensorParam" type="number" id="sensorInit6" />
126
+ <input class="sensorParam" type="number" id="sensorInit7" />
127
+ <input class="sensorParam" type="number" id="sensorInit8" />
128
+ <input class="sensorParam" type="number" id="sensorInit9" />
129
+ <input class="sensorParam" type="number" id="sensorInit10" />
130
+ <input class="sensorParam" type="number" id="sensorInit11" />
131
+ <input class="sensorParam" type="number" id="sensorInit12" />
132
+ </div>
133
+
134
+ <div>
135
+ <label class="info" for="sensorSensibily1">Sensors Sensibilities</label>
136
+ <input class="sensorParam" type="number" id="sensorSensibily1" />
137
+ <input class="sensorParam" type="number" id="sensorSensibily2" />
138
+ <input class="sensorParam" type="number" id="sensorSensibily3" />
139
+ <input class="sensorParam" type="number" id="sensorSensibily4" />
140
+ <input class="sensorParam" type="number" id="sensorSensibily5" />
141
+ <input class="sensorParam" type="number" id="sensorSensibily6" />
142
+ <input class="sensorParam" type="number" id="sensorSensibily7" />
143
+ <input class="sensorParam" type="number" id="sensorSensibily8" />
144
+ <input class="sensorParam" type="number" id="sensorSensibily9" />
145
+ <input class="sensorParam" type="number" id="sensorSensibily10" />
146
+ <input class="sensorParam" type="number" id="sensorSensibily11" />
147
+ <input class="sensorParam" type="number" id="sensorSensibily12" />
148
+ </div>
149
+
150
+ <BR>
151
+ <div id="spreadsheet"></div>
152
+
153
+ <input id="buttonClose" class="button button2" type="button" value="CLOSE" onclick="self.close();">
154
+
155
+ <!-- Load React localy from the configurateur -->
156
+ <script src="./client/configurateur/lib/react.production.min.js" crossorigin></script>
157
+ <script src="./client/configurateur/lib/react-dom.production.min.js" crossorigin></script>
158
+ <!-- Charge notre composant React -->
159
+ <script src="./client/parametrage/paramReactbundle.js"></script>
160
+
161
+ </body>
162
+
163
+ </html>
@@ -0,0 +1,459 @@
1
+ /**
2
+ * @fileOverview Parametrage in React.js
3
+ * To compile JSX to js, launch this in the terminal, in ./client/parametrage
4
+ * npx babel --watch src --out-dir . --presets react-app/prod
5
+ * Do also : browserify paramReact.js -o paramReactbundle.js in
6
+ *
7
+ * @author Bertrand Petit-Hédelin <bertrand@hedelin.fr>
8
+ * @version 1.0
9
+ * @copyright (C) 2022 Bertrand Petit-Hédelin
10
+ *
11
+ * This program is free software: you can redistribute it and/or modify
12
+ * it under the terms of the GNU General Public License as published by
13
+ * the Free Software Foundation, either version 3 of the License, or
14
+ * any later version.
15
+ *
16
+ * This program is distributed in the hope that it will be useful,
17
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
+ * GNU General Public License for more details.
20
+ *
21
+ * You should have received a copy of the GNU General Public License
22
+ * along with this program. If not, see <https://www.gnu.org/licenses/>.
23
+ */
24
+ 'use strict';
25
+
26
+ var par;
27
+ var ipConfig = require("../../serveur/ipConfig.json");
28
+ var debug1 = true;
29
+
30
+ var index = Math.floor((Math.random() * 10000) + 1); // Pour identifier le client
31
+ var ws;
32
+
33
+ // Variables de parametres en local
34
+ // Elles sont nécessaires pour le traitement avant la mise à jour globale
35
+ // après validation.
36
+ // Le chargement met à jour ces données.
37
+
38
+ var directMidiON = false;
39
+ var english = false;
40
+ var reactOnPlay = false;
41
+ var pulsationON = false;
42
+ var shufflePatterns = false;
43
+ var nbeDeGroupesClients;
44
+
45
+ var synchoOnMidiClock = false;
46
+ var synchroLink = false;
47
+ var synchroSkini = false;
48
+ var timer;
49
+
50
+ var soundFilesPath1;
51
+
52
+ var simulatorInAseperateGroup = false;
53
+ var tempoMax;
54
+ var tempoMin;
55
+ var limiteDureeAttente;
56
+
57
+ var useRaspberries = false;
58
+ var playBufferMessage;
59
+ var raspOSCPort;
60
+ var algoGestionFifo;
61
+ var gameOSCSignals = false;
62
+
63
+ var sensorOSC = false;
64
+ var tempoSensorsInit = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
65
+ var sensorsSensibilities = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
66
+
67
+ var msg = { // On met des valeurs pas defaut
68
+ type: "configuration",
69
+ text: "ECRAN_NOIR",
70
+ pseudo: "Anonyme",
71
+ value: 0
72
+ }
73
+
74
+ function updateParameters() {
75
+ // On ne récuppère que les "true" avec le querySelectorAll
76
+ // Donc on met les status locaux à "false" avant mise à jour.
77
+ directMidiON = false;
78
+ english = false;
79
+ reactOnPlay = false;
80
+ shufflePatterns = false;
81
+ pulsationON = false;
82
+ simulatorInAseperateGroup = false;
83
+ useRaspberries = false;
84
+ synchoOnMidiClock = false;
85
+ synchroLink = false;
86
+ synchroSkini = false;
87
+ gameOSCSignals = false;
88
+ sensorOSC = false;
89
+
90
+ var parameters = document.querySelectorAll('input[name="parameter"]:checked');
91
+ parameters.forEach((checkbox) => {
92
+ switch (checkbox.value) {
93
+ case "directMidi":
94
+ directMidiON = true;
95
+ break;
96
+
97
+ case "english":
98
+ english = true;
99
+ break;
100
+
101
+ case "reactOnPlay":
102
+ reactOnPlay = true;
103
+ break;
104
+
105
+ case "shufflePatterns":
106
+ shufflePatterns = true;
107
+ break;
108
+
109
+ case "pulsationON":
110
+ pulsationON = true;
111
+ break;
112
+
113
+ case "useRaspberries":
114
+ useRaspberries = true;
115
+ break;
116
+
117
+ case "simulatorInAseperateGroup":
118
+ simulatorInAseperateGroup = true;
119
+ break;
120
+
121
+ case "gameOSC":
122
+ gameOSCSignals = true;
123
+ break;
124
+
125
+ case "sensorOSC":
126
+ sensorOSC = true;
127
+ break;
128
+
129
+ case "synchoOnMidiClock":
130
+ synchoOnMidiClock = true;
131
+ break;
132
+
133
+ case "synchroLink":
134
+ synchroLink = true;
135
+ break;
136
+
137
+ case "synchroSkini":
138
+ synchroSkini = true;
139
+ break;
140
+
141
+ default:
142
+ }
143
+ });
144
+ }
145
+
146
+ function initWSSocket(host) {
147
+
148
+ window.resizeTo(600, 600);
149
+
150
+ ws = new WebSocket("ws://" + host + ":" + ipConfig.websocketServeurPort);
151
+ console.log("configurateur ws://" + host + ":" + ipConfig.websocketServeurPort);
152
+
153
+ ws.onopen = function (event) {
154
+ var msg = {
155
+ type: "startSpectateur",
156
+ text: "pieceParameters",
157
+ id: index
158
+ }
159
+ console.log("ID sent to server:", msg.id);
160
+ ws.send(JSON.stringify(msg));
161
+ };
162
+
163
+ //Traitement de la Réception sur le client
164
+ ws.onmessage = function (event) {
165
+ var msgRecu = JSON.parse(event.data);
166
+ switch (msgRecu.type) {
167
+
168
+ case "message":
169
+ console.log(msgRecu);
170
+ //document.getElementById("MessageDuServeur").innerHTML = msgRecu.value;
171
+ break;
172
+
173
+ case "skiniParametres":
174
+ console.log("skiniParametres:", msgRecu.value);
175
+ par = msgRecu.value;
176
+ var options = {
177
+ data: par.groupesDesSons,
178
+ minDimensions: [9, 5],
179
+ columns: [
180
+ { type: 'text', width: 80, title: 'Groupe' },
181
+ { type: 'text', width: 80, title: 'Index' },
182
+ { type: 'text', width: 80, title: 'Type' },
183
+ { type: 'text', width: 80, title: 'X' },
184
+ { type: 'text', width: 80, title: 'Y' },
185
+ { type: 'text', width: 140, title: 'Nb of El. or Tank nb' },
186
+ { type: 'text', width: 80, title: 'Color' },
187
+ { type: 'text', width: 80, title: 'Previous' },
188
+ { type: 'text', width: 80, title: 'Scene' },
189
+ ]
190
+ };
191
+ ReactDOM.render(<Jspreadsheet options={options} />, document.getElementById('spreadsheet'));
192
+
193
+ // Initialiser l'affichage en fonction des parametres chargés
194
+ if (debug1) console.log("par.directMidiON:", par.directMidiON);
195
+
196
+ directMidiON = par.directMidiON;
197
+ document.getElementById("directMidi").checked = directMidiON;
198
+
199
+ english = par.english;
200
+ document.getElementById("english").checked = english;
201
+
202
+ reactOnPlay = par.reactOnPlay;
203
+ document.getElementById("reactOnPlay").checked = reactOnPlay;
204
+
205
+ shufflePatterns = par.shufflePatterns;
206
+ document.getElementById("shufflePatterns").checked = shufflePatterns;
207
+
208
+ pulsationON = par.pulsationON;
209
+ document.getElementById("pulsationON").checked = pulsationON;
210
+
211
+ simulatorInAseperateGroup = par.simulatorInAseperateGroup;
212
+ document.getElementById("simulatorInAseperateGroup").checked = simulatorInAseperateGroup;
213
+
214
+ useRaspberries = par.useRaspberries;
215
+ document.getElementById("useRaspberries").checked = useRaspberries;
216
+
217
+ gameOSCSignals = par.gameOSCSignals;
218
+ document.getElementById("gameOSC").checked = gameOSCSignals;
219
+
220
+ sensorOSC = par.sensorOSC;
221
+ document.getElementById("sensorOSC").checked = sensorOSC;
222
+
223
+ synchoOnMidiClock = par.synchoOnMidiClock;
224
+ document.getElementById("synchoOnMidiClock").checked = synchoOnMidiClock;
225
+
226
+ synchroLink = par.synchroLink;
227
+ document.getElementById("synchroLink").checked = synchroLink;
228
+
229
+ synchroSkini = par.synchroSkini;
230
+ document.getElementById("synchroSkini").checked = synchroSkini;
231
+
232
+ soundFilesPath1 = par.soundFilesPath1;
233
+ document.getElementById("soundFilesPath1").value = soundFilesPath1;
234
+
235
+ tempoMax = par.tempoMax;
236
+ document.getElementById("tempoMax").value = tempoMax;
237
+
238
+ tempoMin = par.tempoMin;
239
+ document.getElementById("tempoMin").value = tempoMin;
240
+
241
+ limiteDureeAttente = par.limiteDureeAttente;
242
+ document.getElementById("limiteDureeAttente").value = limiteDureeAttente;
243
+
244
+ playBufferMessage = par.playBufferMessage;
245
+ document.getElementById("playBufferMessage").value = playBufferMessage;
246
+
247
+ raspOSCPort = par.raspOSCPort;
248
+ document.getElementById("raspOSCPort").value = raspOSCPort;
249
+
250
+ nbeDeGroupesClients = par.nbeDeGroupesClients;
251
+ document.getElementById("nbeDeGroupesClients").value = nbeDeGroupesClients;
252
+
253
+ timer = par.timer;
254
+ document.getElementById("timer").value = timer;
255
+
256
+ algoGestionFifo = par.algoGestionFifo;
257
+ document.getElementById("algoGestionFifo").value = algoGestionFifo;
258
+
259
+ if (par.tempoSensorsInit !== undefined) {
260
+ tempoSensorsInit = par.tempoSensorsInit;
261
+ document.getElementById("sensorInit1").value = tempoSensorsInit[0];
262
+ document.getElementById("sensorInit2").value = tempoSensorsInit[1];
263
+ document.getElementById("sensorInit3").value = tempoSensorsInit[2];
264
+ document.getElementById("sensorInit4").value = tempoSensorsInit[3];
265
+ document.getElementById("sensorInit5").value = tempoSensorsInit[4];
266
+ document.getElementById("sensorInit6").value = tempoSensorsInit[5];
267
+ document.getElementById("sensorInit7").value = tempoSensorsInit[6];
268
+ document.getElementById("sensorInit8").value = tempoSensorsInit[7];
269
+ document.getElementById("sensorInit9").value = tempoSensorsInit[8];
270
+ document.getElementById("sensorInit10").value = tempoSensorsInit[9];
271
+ document.getElementById("sensorInit11").value = tempoSensorsInit[10];
272
+ document.getElementById("sensorInit12").value = tempoSensorsInit[11];
273
+ } else {
274
+ tempoSensorsInit = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
275
+ }
276
+
277
+ if (par.sensorsSensibilities !== undefined) {
278
+ sensorsSensibilities = par.sensorsSensibilities;
279
+ document.getElementById("sensorSensibily1").value = sensorsSensibilities[0];
280
+ document.getElementById("sensorSensibily2").value = sensorsSensibilities[1];
281
+ document.getElementById("sensorSensibily3").value = sensorsSensibilities[2];
282
+ document.getElementById("sensorSensibily4").value = sensorsSensibilities[3];
283
+ document.getElementById("sensorSensibily5").value = sensorsSensibilities[4];
284
+ document.getElementById("sensorSensibily6").value = sensorsSensibilities[5];
285
+ document.getElementById("sensorSensibily7").value = sensorsSensibilities[6];
286
+ document.getElementById("sensorSensibily8").value = sensorsSensibilities[7];
287
+ document.getElementById("sensorSensibily9").value = sensorsSensibilities[8];
288
+ document.getElementById("sensorSensibily10").value = sensorsSensibilities[9];
289
+ document.getElementById("sensorSensibily11").value = sensorsSensibilities[10];
290
+ document.getElementById("sensorSensibily12").value = sensorsSensibilities[11];
291
+ } else {
292
+ sensorsSensibilities = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
293
+ }
294
+ break;
295
+
296
+ default: //console.log("Client reçoit un message inconnu", msgRecu.type);
297
+ }
298
+ };
299
+
300
+ ws.onclose = function (event) {
301
+ console.log("Client: websocket closed for :", index);
302
+ }
303
+
304
+ window.onbeforeunload = function () {
305
+ msg.type = "closeSpectateur";
306
+ msg.text = "DISCONNECT_SPECTATEUR";
307
+ ws.send(JSON.stringify(msg));
308
+ ws.close();
309
+ }
310
+ }
311
+ window.initWSSocket = initWSSocket;
312
+
313
+ // Pour test, inutile sinon
314
+ /* class LikeButton extends React.Component {
315
+ constructor(props) {
316
+ super(props);
317
+ this.state = { liked: false };
318
+ }
319
+
320
+ render() {
321
+ if (this.state.liked) {
322
+ return par.sessionPath;
323
+ }
324
+
325
+ return (
326
+ <button onClick={() => this.setState({ liked: true })}>
327
+ Like
328
+ </button>
329
+ );
330
+ }
331
+ }
332
+ */
333
+ class Jspreadsheet extends React.Component {
334
+ constructor(props) {
335
+ super(props);
336
+ this.options = props.options;
337
+ this.wrapper = React.createRef();
338
+ }
339
+
340
+ hideSomeColumns = function (obj) {
341
+ //obj.hideColumn(2);
342
+ //obj.hideColumn(6);
343
+ //obj.hideColumn(8);
344
+ //obj.hideColumn(11);
345
+ //obj.hideColumn(12);
346
+ }
347
+
348
+ componentDidMount = function () {
349
+ this.el = jspreadsheet(this.wrapper.current, this.options);
350
+ this.hideSomeColumns(this.el);
351
+ }
352
+
353
+ addRow = function () {
354
+ this.el.insertRow();
355
+ }
356
+
357
+ updateAll = function () {
358
+ let param;
359
+ param = this.el.getData();
360
+ console.log(param);
361
+
362
+ par.groupesDesSons = param;
363
+ par.directMidiON = directMidiON;
364
+ par.english = english;
365
+ par.reactOnPlay = reactOnPlay;
366
+ par.shufflePatterns = shufflePatterns;
367
+ par.pulsationON = pulsationON;
368
+ par.simulatorInAseperateGroup = simulatorInAseperateGroup;
369
+ par.useRaspberries = useRaspberries;
370
+ par.synchoOnMidiClock = synchoOnMidiClock;
371
+ par.synchroLink = synchroLink;
372
+ par.synchroSkini = synchroSkini;
373
+ par.gameOSCSignals = gameOSCSignals;
374
+ par.sensorOSC = sensorOSC;
375
+
376
+ par.soundFilesPath1 = document.getElementById("soundFilesPath1").value;
377
+ par.tempoMax = document.getElementById("tempoMax").value;
378
+ par.tempoMin = document.getElementById("tempoMin").value;
379
+ par.limiteDureeAttente = document.getElementById("limiteDureeAttente").value;
380
+ par.playBufferMessage = document.getElementById("playBufferMessage").value;
381
+ par.raspOSCPort = document.getElementById("raspOSCPort").value;
382
+ par.nbeDeGroupesClients = document.getElementById("nbeDeGroupesClients").value;
383
+ par.timer = document.getElementById("timer").value;
384
+ par.algoGestionFifo = document.getElementById("algoGestionFifo").value;
385
+
386
+ console.log("****", typeof document.getElementById("sensorInit1").value);
387
+
388
+ if (document.getElementById("sensorInit1").value !== '') {
389
+ par.tempoSensorsInit[0] = document.getElementById("sensorInit1").value;
390
+ par.tempoSensorsInit[1] = document.getElementById("sensorInit2").value;
391
+ par.tempoSensorsInit[2] = document.getElementById("sensorInit3").value;
392
+ par.tempoSensorsInit[3] = document.getElementById("sensorInit4").value;
393
+ par.tempoSensorsInit[4] = document.getElementById("sensorInit5").value;
394
+ par.tempoSensorsInit[5] = document.getElementById("sensorInit6").value;
395
+ par.tempoSensorsInit[6] = document.getElementById("sensorInit7").value;
396
+ par.tempoSensorsInit[7] = document.getElementById("sensorInit8").value;
397
+ par.tempoSensorsInit[8] = document.getElementById("sensorInit9").value;
398
+ par.tempoSensorsInit[9] = document.getElementById("sensorInit10").value;
399
+ par.tempoSensorsInit[10] = document.getElementById("sensorInit11").value;
400
+ par.tempoSensorsInit[11] = document.getElementById("sensorInit12").value;
401
+ } else {
402
+ par.tempoSensorsInit = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
403
+ }
404
+
405
+ if (document.getElementById("sensorSensibily1").value !== '') {
406
+ par.sensorsSensibilities[0] = document.getElementById("sensorSensibily1").value;
407
+ par.sensorsSensibilities[1] = document.getElementById("sensorSensibily2").value;
408
+ par.sensorsSensibilities[2] = document.getElementById("sensorSensibily3").value;
409
+ par.sensorsSensibilities[3] = document.getElementById("sensorSensibily4").value;
410
+ par.sensorsSensibilities[4] = document.getElementById("sensorSensibily5").value;
411
+ par.sensorsSensibilities[5] = document.getElementById("sensorSensibily6").value;
412
+ par.sensorsSensibilities[6] = document.getElementById("sensorSensibily7").value;
413
+ par.sensorsSensibilities[7] = document.getElementById("sensorSensibily8").value;
414
+ par.sensorsSensibilities[8] = document.getElementById("sensorSensibily9").value;
415
+ par.sensorsSensibilities[9] = document.getElementById("sensorSensibily10").value;
416
+ par.sensorsSensibilities[10] = document.getElementById("sensorSensibily11").value;
417
+ par.sensorsSensibilities[11] = document.getElementById("sensorSensibily12").value;
418
+ } else {
419
+ par.sensorsSensibilities = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
420
+ }
421
+
422
+ var msg = {
423
+ type: "updateParameters",
424
+ data: par
425
+ }
426
+ ws.send(JSON.stringify(msg));
427
+ }
428
+
429
+ render() {
430
+ return (
431
+ <div>
432
+ <div ref={this.wrapper} />
433
+ <br />
434
+ <input
435
+ className="button"
436
+ type="button"
437
+ value="Add new row"
438
+ onClick={() => this.addRow()}
439
+ />
440
+ <input
441
+ className="button"
442
+ type="button"
443
+ value="Update parameters"
444
+ onClick={
445
+ () => {
446
+ updateParameters();
447
+ this.updateAll();
448
+ }
449
+ }
450
+ />
451
+ </div>
452
+ );
453
+ }
454
+ }
455
+
456
+ /*
457
+ let domContainer = document.querySelector('#like_button_container');
458
+ ReactDOM.render(<LikeButton />, domContainer);
459
+ */