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