import era.mi.logic.timeline.TimelineEvent;\r
import era.mi.logic.timeline.TimelineEventHandler;\r
import era.mi.logic.wires.WireArray;\r
-import era.mi.logic.wires.WireArray.WireArrayInput;\r
+import era.mi.logic.wires.WireArray.WireArrayEnd;\r
\r
-public class Clock implements TimelineEventHandler, Component {\r
+public class Clock implements TimelineEventHandler, Component\r
+{\r
private boolean toggle = false;\r
- private WireArrayInput outI;\r
+ private WireArrayEnd outI;\r
private int delta;\r
\r
/**\r
* @param out {@link WireArray} the clock's impulses are fed into\r
* @param delta ticks between rising and falling edge\r
*/\r
- public Clock(WireArray out, int delta) {\r
+ public Clock(WireArray out, int delta)\r
+ {\r
this.delta = delta;\r
this.outI = out.createInput();\r
Simulation.TIMELINE.addEvent(this, 50);\r
}\r
\r
@Override\r
- public void handle(TimelineEvent e) {\r
+ public void handle(TimelineEvent e)\r
+ {\r
addToTimeline();\r
outI.feedSignals(new Bit[] { toggle ? Bit.ONE : Bit.ZERO });\r
toggle = !toggle;\r
}\r
\r
- public WireArray getOut() {\r
+ public WireArray getOut()\r
+ {\r
return outI.owner;\r
}\r
\r
- private void addToTimeline() {\r
+ private void addToTimeline()\r
+ {\r
Simulation.TIMELINE.addEvent(this, delta);\r
}\r
\r
@Override\r
- public List<WireArray> getAllInputs() {\r
+ public List<WireArray> getAllInputs()\r
+ {\r
return Collections.unmodifiableList(Arrays.asList());\r
}\r
\r
@Override\r
- public List<WireArray> getAllOutputs() {\r
+ public List<WireArray> getAllOutputs()\r
+ {\r
return Collections.unmodifiableList(Arrays.asList(outI.owner));\r
}\r
}\r