diff --git a/.classpath b/.classpath
index d43dd0c..bd70087 100644
--- a/.classpath
+++ b/.classpath
@@ -21,7 +21,22 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/CheckStyle.xml b/CheckStyle.xml
index d68aedd..1bae003 100755
--- a/CheckStyle.xml
+++ b/CheckStyle.xml
@@ -3,12 +3,12 @@
+-.
+-.
diff --git a/CleanUp.xml b/CleanUp.xml
index 6cf4cba..543d7b0 100644
--- a/CleanUp.xml
+++ b/CleanUp.xml
@@ -41,7 +41,7 @@
-
+
@@ -63,7 +63,7 @@
-
+
@@ -90,7 +90,7 @@
-
+
diff --git a/Formatter.xml b/Formatter.xml
index 14a5d6c..aec36fe 100644
--- a/Formatter.xml
+++ b/Formatter.xml
@@ -2,19 +2,19 @@
-
+
-
+
-
+
-
+
@@ -22,18 +22,18 @@
-
+
-
+
-
+
@@ -43,7 +43,7 @@
-
+
@@ -53,7 +53,7 @@
-
+
@@ -63,7 +63,7 @@
-
+
@@ -73,7 +73,7 @@
-
+
@@ -86,7 +86,7 @@
-
+
@@ -96,16 +96,16 @@
-
+
-
+
-
+
@@ -141,15 +141,15 @@
-
+
-
+
-
+
@@ -167,15 +167,15 @@
-
-
+
+
-
+
@@ -218,7 +218,7 @@
-
+
@@ -245,20 +245,20 @@
-
+
-
+
-
+
@@ -266,7 +266,7 @@
-
+
@@ -289,14 +289,14 @@
-
+
-
+
@@ -306,7 +306,7 @@
-
+
@@ -317,7 +317,7 @@
-
+
@@ -327,14 +327,14 @@
-
+
-
+
-
+
@@ -358,24 +358,24 @@
-
+
-
+
-
+
-
-
+
+
-
-
-
+
+
+
diff --git a/lib/svgSalamander-1.1.2.jar b/lib/svgSalamander-1.1.2.jar
new file mode 100644
index 0000000..36ce4eb
Binary files /dev/null and b/lib/svgSalamander-1.1.2.jar differ
diff --git a/src/module-info.java b/src/module-info.java
index fd1ce90..4e3001e 100644
--- a/src/module-info.java
+++ b/src/module-info.java
@@ -2,8 +2,11 @@
*
* @author Edouard DUPIN */
-open module org.atriasoft.etk {
- exports org.atriasoft.etk;
- exports org.atriasoft.etk.math;
+open module org.atriasoft.ewol {
+ exports org.atriasoft.ewol;
+
+ requires transitive org.atriasoft.gale;
+ requires transitive org.atriasoft.etk;
+ requires transitive org.atriasoft.exml;
requires transitive io.scenarium.logger;
}
diff --git a/src/org/atriasoft/echrono/Clock.java b/src/org/atriasoft/echrono/Clock.java
new file mode 100644
index 0000000..0f1f4af
--- /dev/null
+++ b/src/org/atriasoft/echrono/Clock.java
@@ -0,0 +1,42 @@
+package org.atriasoft.echrono;
+
+/**
+ * @brief Clock is a compleate virtual clock that is used to virtualize the urrent clock used (can be non real-time, ex:for simulation)
+ */
+public class Clock {
+ public static Time now() {
+ return new Time(System.nanoTime());
+ }
+
+ private final long data; //!< virtual clock
+
+ public Clock() {
+ this.data = 0;
+ }
+
+ public Clock(final double _val) { //value in second
+ this.data = (long) (_val * 1000000000.0);
+ }
+
+ public Clock(final int _val) { //value in nanosecond
+ this.data = _val;
+ }
+
+ public Clock(final long _val) { //value in nanosecond
+ this.data = _val;
+ }
+
+ public Clock(final long _valSec, final long _valNano) { //value in second and nanosecond
+ this.data = _valSec * 1000000000L + _valNano;
+ }
+
+ public long get() {
+ return this.data;
+ }
+
+ public Duration less(final Clock timeUpAppl) {
+ // TODO Auto-generated method stub
+ return new Duration(this.data - timeUpAppl.data);
+ }
+
+}
diff --git a/src/org/atriasoft/echrono/Duration.java b/src/org/atriasoft/echrono/Duration.java
new file mode 100644
index 0000000..c75ef1f
--- /dev/null
+++ b/src/org/atriasoft/echrono/Duration.java
@@ -0,0 +1,35 @@
+package org.atriasoft.echrono;
+
+public class Duration {
+ private final long data; // stored in ns
+
+ public Duration() {
+ this.data = 0;
+ }
+
+ public Duration(final double _val) { //value in second
+ this.data = (long) (_val * 1000000000.0);
+ }
+
+ public Duration(final int _val) { //value in nanosecond
+ this.data = _val;
+ }
+
+ public Duration(final long _val) { //value in nanosecond
+ this.data = _val;
+ }
+
+ public Duration(final long _valSec, final long _valNano) { //value in second and nanosecond
+ this.data = _valSec * 1000000000L + _valNano;
+ }
+
+ public long get() {
+ return this.data;
+ }
+
+ public float toSeconds() {
+ // TODO Auto-generated method stub
+ return (float) (this.data / 1000000000.0);
+ }
+
+}
diff --git a/src/org/atriasoft/echrono/Steady.java b/src/org/atriasoft/echrono/Steady.java
new file mode 100644
index 0000000..80cc55b
--- /dev/null
+++ b/src/org/atriasoft/echrono/Steady.java
@@ -0,0 +1,32 @@
+package org.atriasoft.echrono;
+
+/**
+ * @brief Steady is a Program start time clock
+ */
+public class Steady {
+ private final long data; //!< Monotonic clock since computer start (ns)
+
+ public Steady() {
+ this.data = 0;
+ }
+
+ public Steady(final double _val) { //value in second
+ this.data = (long) (_val * 1000000000.0);
+ }
+
+ public Steady(final int _val) { //value in nanosecond
+ this.data = _val;
+ }
+
+ public Steady(final long _val) { //value in nanosecond
+ this.data = _val;
+ }
+
+ public Steady(final long _valSec, final long _valNano) { //value in second and nanosecond
+ this.data = _valSec * 1000000000L + _valNano;
+ }
+
+ public long get() {
+ return this.data;
+ }
+}
diff --git a/src/org/atriasoft/echrono/Time.java b/src/org/atriasoft/echrono/Time.java
new file mode 100644
index 0000000..5a887b5
--- /dev/null
+++ b/src/org/atriasoft/echrono/Time.java
@@ -0,0 +1,36 @@
+package org.atriasoft.echrono;
+
+/**
+ * @brief Represent the earth clock (if computer is synchronized)
+ */
+public class Time {
+ public static Time now() {
+ return new Time(System.nanoTime());
+ }
+
+ private final long data; //!< earth time since Epock in ns
+
+ public Time() {
+ this.data = 0;
+ }
+
+ public Time(final double _val) { //value in second
+ this.data = (long) (_val * 1000000000.0);
+ }
+
+ public Time(final int _val) { //value in nanosecond
+ this.data = _val;
+ }
+
+ public Time(final long _val) { //value in nanosecond
+ this.data = _val;
+ }
+
+ public Time(final long _valSec, final long _valNano) { //value in second and nanosecond
+ this.data = _valSec * 1000000000L + _valNano;
+ }
+
+ public long get() {
+ return this.data;
+ }
+}
diff --git a/src/org/atriasoft/esignal/Connection.java b/src/org/atriasoft/esignal/Connection.java
new file mode 100644
index 0000000..2e5f4e3
--- /dev/null
+++ b/src/org/atriasoft/esignal/Connection.java
@@ -0,0 +1,5 @@
+package org.atriasoft.esignal;
+
+public class Connection {
+
+}
diff --git a/src/org/atriasoft/esignal/Signal.java b/src/org/atriasoft/esignal/Signal.java
new file mode 100644
index 0000000..2a85c7b
--- /dev/null
+++ b/src/org/atriasoft/esignal/Signal.java
@@ -0,0 +1,63 @@
+package org.atriasoft.esignal;
+
+import java.lang.ref.WeakReference;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.function.Consumer;
+
+class connectedElement {
+ private final WeakReference