diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..3c96d64 --- /dev/null +++ b/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..65ce72c --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + Dionysus + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..6a825c7 --- /dev/null +++ b/pom.xml @@ -0,0 +1,13 @@ + + 4.0.0 + net.persei.dionysus + Dionysus + 0.0.1-SNAPSHOT + + + uk.co.caprica + vlcj + 3.8.0 + + + \ No newline at end of file diff --git a/src/main/java/net/persei/dionysus/AudioPlayer.java b/src/main/java/net/persei/dionysus/AudioPlayer.java new file mode 100644 index 0000000..a389ba2 --- /dev/null +++ b/src/main/java/net/persei/dionysus/AudioPlayer.java @@ -0,0 +1,45 @@ +package net.persei.dionysus; + +import uk.co.caprica.vlcj.component.AudioMediaPlayerComponent; +import uk.co.caprica.vlcj.player.MediaPlayer; + +public class AudioPlayer implements Player { + + private AudioMediaPlayerComponent player; + private boolean loop = false; + private String name; + + public AudioPlayer(String name) { + this.name = name; + player = new AudioMediaPlayerComponent(); + } + + public boolean isLoop() { + return loop; + } + + public void playFile(String file) { + getMediaPlayer().playMedia(file); + } + + public void play() { + getMediaPlayer().play(); + } + + public void pause() { + getMediaPlayer().pause(); + } + + public void setLoop(boolean loop) { + this.loop = loop; + getMediaPlayer().setRepeat(loop); + } + + public MediaPlayer getMediaPlayer() { + return player.getMediaPlayer(); + } + + public String getName() { + return name; + } +} diff --git a/src/main/java/net/persei/dionysus/Main.java b/src/main/java/net/persei/dionysus/Main.java new file mode 100644 index 0000000..5842d8b --- /dev/null +++ b/src/main/java/net/persei/dionysus/Main.java @@ -0,0 +1,27 @@ +package net.persei.dionysus; + +import net.persei.dionysus.exceptions.LibrariesNotFoundException; +import uk.co.caprica.vlcj.binding.LibVlc; +import uk.co.caprica.vlcj.discovery.NativeDiscovery; + +public class Main { + + public static final String TITLE = "Dionysus"; + private static PlayerGUI playerGUI; + + /** + * @param args + * @throws LibrariesNotFoundException + */ + public static void main(String[] args) throws LibrariesNotFoundException { + if (!findLibs()) + throw new LibrariesNotFoundException(); + + System.out.println(LibVlc.INSTANCE.libvlc_get_version()); + } + + private static boolean findLibs() { + return new NativeDiscovery().discover(); + } + +} diff --git a/src/main/java/net/persei/dionysus/MidiTrigger.java b/src/main/java/net/persei/dionysus/MidiTrigger.java new file mode 100644 index 0000000..40f68da --- /dev/null +++ b/src/main/java/net/persei/dionysus/MidiTrigger.java @@ -0,0 +1,5 @@ +package net.persei.dionysus; + +public class MidiTrigger { + +} diff --git a/src/main/java/net/persei/dionysus/Player.java b/src/main/java/net/persei/dionysus/Player.java new file mode 100644 index 0000000..7100668 --- /dev/null +++ b/src/main/java/net/persei/dionysus/Player.java @@ -0,0 +1,13 @@ +package net.persei.dionysus; + +import uk.co.caprica.vlcj.player.MediaPlayer; + +public interface Player { + boolean isLoop(); + void playFile(String file); + void play(); + void pause(); + void setLoop(boolean loop); + MediaPlayer getMediaPlayer(); + String getName(); +} diff --git a/src/main/java/net/persei/dionysus/PlayerGUI.java b/src/main/java/net/persei/dionysus/PlayerGUI.java new file mode 100644 index 0000000..f7dee8f --- /dev/null +++ b/src/main/java/net/persei/dionysus/PlayerGUI.java @@ -0,0 +1,79 @@ +package net.persei.dionysus; + +import java.awt.HeadlessException; +import java.awt.event.WindowAdapter; +import java.awt.event.WindowEvent; + +import javax.swing.JFrame; + +import uk.co.caprica.vlcj.component.EmbeddedMediaPlayerComponent; +import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer; + +public class PlayerGUI extends JFrame implements Player { + + /** + * + */ + private static final long serialVersionUID = 6068058949441154348L; + + private EmbeddedMediaPlayerComponent player = new EmbeddedMediaPlayerComponent(); + + private boolean loop = false; + private boolean fullscreen = false; + + public boolean isFullscreen() { + return fullscreen; + } + + public PlayerGUI(boolean fullscreen) throws HeadlessException { + this(); + dispose(); + if (fullscreen) { + setExtendedState(JFrame.MAXIMIZED_BOTH); + setUndecorated(true); + } + setVisible(true); + } + public PlayerGUI() throws HeadlessException { + super(Main.TITLE); + setBounds(100, 100, 600, 400); + setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); + setVisible(true); + + setContentPane(player); + + addWindowListener(new WindowAdapter() { + @Override + public void windowClosing(WindowEvent e) { + player.release(); + System.out.println("release"); + System.exit(0); + } + }); + } + + public boolean isLoop() { + return loop; + } + + public void setLoop(boolean loop) { + this.loop = loop; + getMediaPlayer().setRepeat(loop); + } + + public void playFile(String file) { + getMediaPlayer().playMedia(file); + } + + public void play() { + getMediaPlayer().play(); + } + + public void pause() { + getMediaPlayer().pause(); + } + + public EmbeddedMediaPlayer getMediaPlayer() { + return player.getMediaPlayer(); + } +} diff --git a/src/main/java/net/persei/dionysus/Setup.java b/src/main/java/net/persei/dionysus/Setup.java new file mode 100644 index 0000000..2712b3f --- /dev/null +++ b/src/main/java/net/persei/dionysus/Setup.java @@ -0,0 +1,37 @@ +package net.persei.dionysus; + +import java.util.LinkedList; +import java.util.List; + +import net.persei.dionysus.blocks.InitialBlock; + +public class Setup { + private List initBlocks = new LinkedList(); + private List players = new LinkedList(); + + // ugly, but necessary for flexible states + private List states = new LinkedList(){{ + push("none"); + }}; + private int state = 0; + + public List getInitBlocks() { + return initBlocks; + } + + public List getPlayers() { + return players; + } + + public String getState() { + return states.get(state); + } + + public void setState(int state) { + this.state = state; + } + + public List getStates() { + return states; + } +} diff --git a/src/main/java/net/persei/dionysus/blocks/Block.java b/src/main/java/net/persei/dionysus/blocks/Block.java new file mode 100644 index 0000000..9565f33 --- /dev/null +++ b/src/main/java/net/persei/dionysus/blocks/Block.java @@ -0,0 +1,29 @@ +package net.persei.dionysus.blocks; + +import java.util.LinkedList; +import java.util.List; + +import net.persei.dionysus.exceptions.UnexpectedDataTypeException; + +public abstract class Block { + protected String name; + protected BlockType type; + protected List lanes = new LinkedList(); + + public List getOutputLanes() { + return lanes; + } + public String getName() { + return name; + } + public BlockType getType() { + return type; + } + + public boolean preMagic (Data input, Lane lane) throws Exception { + BlockHelper.addPassLog(input, "blocks", this); + return magic(input, lane); + } + + abstract public boolean magic(Data input, Lane lane) throws Exception; +} diff --git a/src/main/java/net/persei/dionysus/blocks/BlockCondition.java b/src/main/java/net/persei/dionysus/blocks/BlockCondition.java new file mode 100644 index 0000000..d5731bf --- /dev/null +++ b/src/main/java/net/persei/dionysus/blocks/BlockCondition.java @@ -0,0 +1,111 @@ +package net.persei.dionysus.blocks; + +import java.util.Map; + +import net.persei.dionysus.Setup; +import net.persei.dionysus.exceptions.DataValueNotAvailableException; +import net.persei.dionysus.exceptions.MalformedBlockConditionException; + +public class BlockCondition { + + private String condition; + + public BlockCondition(String condition) { + condition = condition.replace(" ", ""); + condition = condition.replace(" ", ""); + condition = condition.replace("\n", ""); + condition = condition.replace("\r", ""); + + this.condition = condition; + } + + public boolean parse(Data input) throws MalformedBlockConditionException, DataValueNotAvailableException { + String tmp = new String(condition); + + while(true) { + if (tmp.indexOf("(") < 0) + break; + + int open = 0; + while(tmp.indexOf("(", open + 1) >= 0) { + open = tmp.indexOf("(", open + 1); + } + int close = tmp.indexOf(")", open); + + if (close == -1) + throw new MalformedBlockConditionException(); + + String sub = tmp.substring(open + 1, close - 1); + String before = tmp.substring(0, open - 1); + String after = tmp.substring(close + 1); + tmp = before + (minTerm(sub, input)) + after; + } + + return minTerm(tmp, input); + } + private boolean minTerm(String sub, Data input) throws DataValueNotAvailableException, MalformedBlockConditionException { + if (sub.equals("true")) + return true; + if (sub.equals("false")) + return false; + if (sub.indexOf("&") >= 0) + return minTerm(sub.substring(0, sub.indexOf("&")), input) && + minTerm(sub.substring(sub.indexOf("&") + 1), input); + if (sub.indexOf("|") >= 0) + return minTerm(sub.substring(0, sub.indexOf("|")), input) || + minTerm(sub.substring(sub.indexOf("|") + 1), input); + if (sub.indexOf("^") >= 0) + return minTerm(sub.substring(0, sub.indexOf("^")), input) ^ + minTerm(sub.substring(sub.indexOf("^") + 1), input); + if (sub.indexOf("!") >= 0) + return ! minTerm(sub.substring(sub.indexOf("!") + 1), input); + if (sub.indexOf("==") >= 0) + return stringValue(sub.substring(0, sub.indexOf("==")), input).equals(stringValue(sub.substring(sub.indexOf("==") + 1), input)); + if (sub.indexOf(">") >= 0) + return intValue(sub.substring(0, sub.indexOf(">")), input) > intValue(sub.substring(sub.indexOf(">") + 1), input); + if (sub.indexOf("<") >= 0) + return intValue(sub.substring(0, sub.indexOf("<")), input) < intValue(sub.substring(sub.indexOf("<") + 1), input); + if (sub.indexOf(">=") >= 0) + return intValue(sub.substring(0, sub.indexOf(">=")), input) >= intValue(sub.substring(sub.indexOf(">=") + 1), input); + if (sub.indexOf("<=") >= 0) + return intValue(sub.substring(0, sub.indexOf("<=")), input) >= intValue(sub.substring(sub.indexOf("<=") + 1), input); + if (sub.indexOf("data") >= 0) + return minTerm(getDataValue(sub, input), input); + + throw new MalformedBlockConditionException(); + } + + private int intValue(String substring, Data input) { + try { + return Integer.parseInt(substring); + } catch (NumberFormatException e) { + } + try { + return Integer.parseInt(getDataValue(substring, input)); + } catch (NumberFormatException e) { + } catch (Exception e) { + } + throw new NumberFormatException(); + } + + private String getDataValue(String string, Data input) throws DataValueNotAvailableException { + if (string.equals("setup.state")) + return ((Setup) input.getEntry("setup")).getState(); + if (string.indexOf("data.") == 0) { + String key = string.substring("data.".length() + 1); + if (input.getEntry("blockData") != null) { + Map blockData = (Map) input.getEntry("blockData"); + if (blockData.get(key) != null) + return blockData.get(key); + } + } + throw new DataValueNotAvailableException(); + } + + private String stringValue(String string, Data input) throws DataValueNotAvailableException { + if (string.substring(0, 1).equals("\"") && string.substring(string.length() - 1).equals("\"")) + return string.substring(1, string.length() - 1); + + return getDataValue(string, input); + } +} diff --git a/src/main/java/net/persei/dionysus/blocks/BlockHelper.java b/src/main/java/net/persei/dionysus/blocks/BlockHelper.java new file mode 100644 index 0000000..922a16d --- /dev/null +++ b/src/main/java/net/persei/dionysus/blocks/BlockHelper.java @@ -0,0 +1,21 @@ +package net.persei.dionysus.blocks; + +import java.util.LinkedList; +import java.util.List; + +import net.persei.dionysus.exceptions.UnexpectedDataTypeException; + +public class BlockHelper { + static void addPassLog(Data input, String type, Object object) throws UnexpectedDataTypeException { + Object obj = input.getEntry(type); + List log; + if (obj == null) { + log = new LinkedList(); + } else if (! (obj instanceof List)) { + throw new UnexpectedDataTypeException(type); + } else { + log = (List) obj; + } + log.add(object); + } +} diff --git a/src/main/java/net/persei/dionysus/blocks/BlockType.java b/src/main/java/net/persei/dionysus/blocks/BlockType.java new file mode 100644 index 0000000..f8033f7 --- /dev/null +++ b/src/main/java/net/persei/dionysus/blocks/BlockType.java @@ -0,0 +1,8 @@ +package net.persei.dionysus.blocks; + +public enum BlockType { + PassiveBlock, + ActiveBlock, + ConditionalBlock, + MultiplexingBlock +} diff --git a/src/main/java/net/persei/dionysus/blocks/ConditionalBlock.java b/src/main/java/net/persei/dionysus/blocks/ConditionalBlock.java new file mode 100644 index 0000000..d20855f --- /dev/null +++ b/src/main/java/net/persei/dionysus/blocks/ConditionalBlock.java @@ -0,0 +1,4 @@ +package net.persei.dionysus.blocks; + +public abstract class ConditionalBlock extends Block { +} diff --git a/src/main/java/net/persei/dionysus/blocks/Data.java b/src/main/java/net/persei/dionysus/blocks/Data.java new file mode 100644 index 0000000..b5791bc --- /dev/null +++ b/src/main/java/net/persei/dionysus/blocks/Data.java @@ -0,0 +1,15 @@ +package net.persei.dionysus.blocks; + +import java.util.HashMap; +import java.util.Map; + +public class Data { + private Map map = new HashMap(); + + public Object getEntry(String key) { + return map.get(key); + } + public Object setEntry(String key, Object obj) { + return map.put(key, obj); + } +} diff --git a/src/main/java/net/persei/dionysus/blocks/DelayBlock.java b/src/main/java/net/persei/dionysus/blocks/DelayBlock.java new file mode 100644 index 0000000..bb6747c --- /dev/null +++ b/src/main/java/net/persei/dionysus/blocks/DelayBlock.java @@ -0,0 +1,27 @@ +package net.persei.dionysus.blocks; + +public class DelayBlock extends Block { + private long sleepTime = 1000; + + public long getSleepTime() { + return sleepTime; + } + + public void setSleepTime(long sleepTime) { + this.sleepTime = sleepTime; + } + + public DelayBlock() { + super(); + name = "DelayBlock"; + type = BlockType.PassiveBlock; + lanes.add(new Lane("delayed lane")); + } + + public boolean magic(Data input, Lane lane) throws Exception { + Thread.sleep(sleepTime); + + return lanes.get(0).invoke(input); + } + +} diff --git a/src/main/java/net/persei/dionysus/blocks/IfElseBlock.java b/src/main/java/net/persei/dionysus/blocks/IfElseBlock.java new file mode 100644 index 0000000..10fbadf --- /dev/null +++ b/src/main/java/net/persei/dionysus/blocks/IfElseBlock.java @@ -0,0 +1,24 @@ +package net.persei.dionysus.blocks; + +public class IfElseBlock extends ConditionalBlock { + + private BlockCondition condition; + + public IfElseBlock(BlockCondition condition) { + super(); + this.name = "IfElseBlock"; + this.type = BlockType.ConditionalBlock; + + this.condition = condition; + this.lanes.add(new Lane("false lane")); // 0 + this.lanes.add(new Lane("true lane")); // 1 + } + + @Override + public boolean magic(Data input, Lane lane) throws Exception { + if (condition.parse(input)) + return lanes.get(1).invoke(input); + else + return lanes.get(0).invoke(input); + } +} diff --git a/src/main/java/net/persei/dionysus/blocks/InitialBlock.java b/src/main/java/net/persei/dionysus/blocks/InitialBlock.java new file mode 100644 index 0000000..00ffa59 --- /dev/null +++ b/src/main/java/net/persei/dionysus/blocks/InitialBlock.java @@ -0,0 +1,23 @@ +package net.persei.dionysus.blocks; + +import java.util.LinkedList; +import java.util.List; + +import net.persei.dionysus.MidiTrigger; +import net.persei.dionysus.Setup; +import net.persei.dionysus.exceptions.UnexpectedDataTypeException; + +public abstract class InitialBlock extends Block { + protected List triggers = new LinkedList(); + + public List getTriggers() { + return triggers; + } + + public boolean trigger(MidiTrigger trigger, Setup setup) throws Exception { + Data input = new Data(); + input.setEntry("trigger", trigger); + input.setEntry("setup", setup); + return preMagic(input, null); + } +} diff --git a/src/main/java/net/persei/dionysus/blocks/Lane.java b/src/main/java/net/persei/dionysus/blocks/Lane.java new file mode 100644 index 0000000..ae0cb72 --- /dev/null +++ b/src/main/java/net/persei/dionysus/blocks/Lane.java @@ -0,0 +1,41 @@ +package net.persei.dionysus.blocks; + +import java.util.LinkedList; +import java.util.List; + +import net.persei.dionysus.exceptions.UnexpectedDataTypeException; + +public class Lane { + private List attachedBlocks = new LinkedList(); + static private int count = 1; + final private int id; + final private String name; + + public List getAttachedBlocks() { + return attachedBlocks; + } + + public String getName() { + return name; + } + + public Lane(String name) { + super(); + this.id = count++; + this.name = name; + } + + public void attach(Block block) { + attachedBlocks.add(block); + } + + public boolean invoke(Data input) throws Exception { + BlockHelper.addPassLog(input, "lanes", this); + + boolean res = true; + for (Block block : attachedBlocks) { + res = block.preMagic(input, this) & res; + } + return res; + } +} diff --git a/src/main/java/net/persei/dionysus/blocks/SetDataBlock.java b/src/main/java/net/persei/dionysus/blocks/SetDataBlock.java new file mode 100644 index 0000000..caebe57 --- /dev/null +++ b/src/main/java/net/persei/dionysus/blocks/SetDataBlock.java @@ -0,0 +1,32 @@ +package net.persei.dionysus.blocks; + +import java.util.HashMap; +import java.util.Map; + +public class SetDataBlock extends Block { + + private String data; + private String key; + + public SetDataBlock(String key, String data) { + super(); + name = "SetDateBlock"; + type = BlockType.ActiveBlock; + this.key = key; + this.data = data; + lanes.add(new Lane("lane")); + } + + @Override + public boolean magic(Data input, Lane lane) throws Exception { + Map blockData = (Map) input.getEntry("blockData"); + if (blockData == null) { + input.setEntry("blockData", new HashMap()); + blockData = (Map) input.getEntry("blockData"); + } + blockData.put(key, data); + + return this.lanes.get(0).invoke(input); + } + +} diff --git a/src/main/java/net/persei/dionysus/blocks/SetStateBlock.java b/src/main/java/net/persei/dionysus/blocks/SetStateBlock.java new file mode 100644 index 0000000..85f2351 --- /dev/null +++ b/src/main/java/net/persei/dionysus/blocks/SetStateBlock.java @@ -0,0 +1,30 @@ +package net.persei.dionysus.blocks; + +import net.persei.dionysus.Setup; + +public class SetStateBlock extends Block { + + private String state; + + public SetStateBlock(String status) { + super(); + name = "SetStateBlock"; + type = BlockType.ActiveBlock; + this.state = status; + lanes.add(new Lane("lane")); + } + + @Override + public boolean magic(Data input, Lane lane) throws Exception { + Setup setup = ((Setup) input.getEntry("setup")); + int i = setup.getStates().indexOf(state); + if (i >= 0) + setup.setState(i); + else { + setup.getStates().add(state); + setup.setState(setup.getStates().indexOf(state)); + } + return this.lanes.get(0).invoke(input); + } + +} diff --git a/src/main/java/net/persei/dionysus/blocks/SetupParser.java b/src/main/java/net/persei/dionysus/blocks/SetupParser.java new file mode 100644 index 0000000..6b58860 --- /dev/null +++ b/src/main/java/net/persei/dionysus/blocks/SetupParser.java @@ -0,0 +1,63 @@ +package net.persei.dionysus.blocks; + +import net.persei.dionysus.Setup; +import net.persei.dionysus.exceptions.MalformedSetupFileException; +import net.persei.dionysus.exceptions.WhatTheFuckException; + +public class SetupParser { + private enum Mode { + none, players, triggers, blocks + } + static public Setup parse(String file) throws MalformedSetupFileException, WhatTheFuckException { + String lines[] = file.split("\n"); + + Mode mode = Mode.none; + + for (int i = 0; i < lines.length; i++) { + String line = lines[i]; + if (line.length() == 0) + continue; + String tokens[] = line.split(" "); + for (int j = 0; j < tokens.length; j++) { + String token = tokens[j]; + if (token.length() == 0) + continue; + + // comment line + if (token.substring(0, 1).equals("#")) + break; + + // mode selection + if (token.equals("*players")) { + mode = Mode.players; + break; + } + if (token.equals("*triggers")) { + mode = Mode.triggers; + break; + } + if (token.equals("*blocks")) { + mode = Mode.blocks; + break; + } + + // TODO + switch(mode) { + case blocks: + break; + case players: + break; + case triggers: + break; + case none: + throw new MalformedSetupFileException(); + default: + throw new WhatTheFuckException(); + } + } + } + + + return null; + } +} diff --git a/src/main/java/net/persei/dionysus/blocks/SplitterBlock.java b/src/main/java/net/persei/dionysus/blocks/SplitterBlock.java new file mode 100644 index 0000000..64fae48 --- /dev/null +++ b/src/main/java/net/persei/dionysus/blocks/SplitterBlock.java @@ -0,0 +1,23 @@ +package net.persei.dionysus.blocks; + +public class SplitterBlock extends Block { + + public SplitterBlock(int n) { + super(); + for (int i = 0; i < n; i++) { + this.lanes.add(new Lane("split lane " + i)); + } + this.name = "SplitterBlock"; + this.type = BlockType.MultiplexingBlock; + } + + @Override + public boolean magic(Data input, Lane lane) throws Exception { + boolean res = true; + for (Lane l : lanes) { + res = l.invoke(input) && res; + } + return res; + } + +} diff --git a/src/main/java/net/persei/dionysus/controlroom/ControlRoom.java b/src/main/java/net/persei/dionysus/controlroom/ControlRoom.java new file mode 100644 index 0000000..4f54de6 --- /dev/null +++ b/src/main/java/net/persei/dionysus/controlroom/ControlRoom.java @@ -0,0 +1,53 @@ +package net.persei.dionysus.controlroom; + +import java.awt.Color; +import java.awt.Graphics; +import java.util.List; + +import javax.swing.JFrame; +import javax.swing.JPanel; + +import net.persei.dionysus.Setup; +import net.persei.dionysus.blocks.InitialBlock; + +public class ControlRoom extends JFrame { + + private ControlRoomPanel panel; + private Setup setup; + + /** + * + */ + private static final long serialVersionUID = 7130672040530068619L; + + public ControlRoom(Setup setup) { + super(); + this.setup = setup; + setBounds(50, 50, 1000, 800); + setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + setVisible(true); + + panel = new ControlRoomPanel(); + + setContentPane(panel); + } + + private class ControlRoomPanel extends JPanel { + + /** + * + */ + private static final long serialVersionUID = 7915937062340285742L; + + @Override + protected void paintComponent(Graphics g) { + super.paintComponents(g); + g.setColor(Color.BLACK); + List initBlocks = setup.getInitBlocks(); + + for (int i = 0; i < initBlocks.size(); i++) { + + } + } + } +} diff --git a/src/main/java/net/persei/dionysus/exceptions/DataValueNotAvailableException.java b/src/main/java/net/persei/dionysus/exceptions/DataValueNotAvailableException.java new file mode 100644 index 0000000..45f098a --- /dev/null +++ b/src/main/java/net/persei/dionysus/exceptions/DataValueNotAvailableException.java @@ -0,0 +1,10 @@ +package net.persei.dionysus.exceptions; + +public class DataValueNotAvailableException extends Exception { + + /** + * + */ + private static final long serialVersionUID = 3826451107086625794L; + +} diff --git a/src/main/java/net/persei/dionysus/exceptions/LibrariesNotFoundException.java b/src/main/java/net/persei/dionysus/exceptions/LibrariesNotFoundException.java new file mode 100644 index 0000000..b2c59bb --- /dev/null +++ b/src/main/java/net/persei/dionysus/exceptions/LibrariesNotFoundException.java @@ -0,0 +1,10 @@ +package net.persei.dionysus.exceptions; + +public class LibrariesNotFoundException extends Exception { + + /** + * + */ + private static final long serialVersionUID = -1839814203088638288L; + +} diff --git a/src/main/java/net/persei/dionysus/exceptions/MalformedBlockConditionException.java b/src/main/java/net/persei/dionysus/exceptions/MalformedBlockConditionException.java new file mode 100644 index 0000000..bb09435 --- /dev/null +++ b/src/main/java/net/persei/dionysus/exceptions/MalformedBlockConditionException.java @@ -0,0 +1,10 @@ +package net.persei.dionysus.exceptions; + +public class MalformedBlockConditionException extends Exception { + + /** + * + */ + private static final long serialVersionUID = -8751303849610920723L; + +} diff --git a/src/main/java/net/persei/dionysus/exceptions/MalformedSetupFileException.java b/src/main/java/net/persei/dionysus/exceptions/MalformedSetupFileException.java new file mode 100644 index 0000000..e4054ac --- /dev/null +++ b/src/main/java/net/persei/dionysus/exceptions/MalformedSetupFileException.java @@ -0,0 +1,10 @@ +package net.persei.dionysus.exceptions; + +public class MalformedSetupFileException extends Exception { + + /** + * + */ + private static final long serialVersionUID = -2464874594169642335L; + +} diff --git a/src/main/java/net/persei/dionysus/exceptions/UnexpectedDataTypeException.java b/src/main/java/net/persei/dionysus/exceptions/UnexpectedDataTypeException.java new file mode 100644 index 0000000..6265caf --- /dev/null +++ b/src/main/java/net/persei/dionysus/exceptions/UnexpectedDataTypeException.java @@ -0,0 +1,20 @@ +package net.persei.dionysus.exceptions; + +public class UnexpectedDataTypeException extends Exception { + + private String dataKey = null; + + public String getDataKey() { + return dataKey; + } + + public UnexpectedDataTypeException(String string) { + dataKey = string; + } + + /** + * + */ + private static final long serialVersionUID = 3634084166179938086L; + +} diff --git a/src/main/java/net/persei/dionysus/exceptions/WhatTheFuckException.java b/src/main/java/net/persei/dionysus/exceptions/WhatTheFuckException.java new file mode 100644 index 0000000..fa63285 --- /dev/null +++ b/src/main/java/net/persei/dionysus/exceptions/WhatTheFuckException.java @@ -0,0 +1,10 @@ +package net.persei.dionysus.exceptions; + +public class WhatTheFuckException extends Exception { + + /** + * + */ + private static final long serialVersionUID = -2453004182880966130L; + +} diff --git a/target/classes/net/persei/dionysus/AudioPlayer.class b/target/classes/net/persei/dionysus/AudioPlayer.class new file mode 100644 index 0000000..5eb9cd4 Binary files /dev/null and b/target/classes/net/persei/dionysus/AudioPlayer.class differ diff --git a/target/classes/net/persei/dionysus/Main.class b/target/classes/net/persei/dionysus/Main.class new file mode 100644 index 0000000..fe4fd71 Binary files /dev/null and b/target/classes/net/persei/dionysus/Main.class differ diff --git a/target/classes/net/persei/dionysus/MidiTrigger.class b/target/classes/net/persei/dionysus/MidiTrigger.class new file mode 100644 index 0000000..dc175c8 Binary files /dev/null and b/target/classes/net/persei/dionysus/MidiTrigger.class differ diff --git a/target/classes/net/persei/dionysus/Player.class b/target/classes/net/persei/dionysus/Player.class new file mode 100644 index 0000000..eefc1ac Binary files /dev/null and b/target/classes/net/persei/dionysus/Player.class differ diff --git a/target/classes/net/persei/dionysus/PlayerGUI$1.class b/target/classes/net/persei/dionysus/PlayerGUI$1.class new file mode 100644 index 0000000..7d7fbb6 Binary files /dev/null and b/target/classes/net/persei/dionysus/PlayerGUI$1.class differ diff --git a/target/classes/net/persei/dionysus/PlayerGUI.class b/target/classes/net/persei/dionysus/PlayerGUI.class new file mode 100644 index 0000000..41afb69 Binary files /dev/null and b/target/classes/net/persei/dionysus/PlayerGUI.class differ diff --git a/target/classes/net/persei/dionysus/Setup$1.class b/target/classes/net/persei/dionysus/Setup$1.class new file mode 100644 index 0000000..04566c8 Binary files /dev/null and b/target/classes/net/persei/dionysus/Setup$1.class differ diff --git a/target/classes/net/persei/dionysus/Setup.class b/target/classes/net/persei/dionysus/Setup.class new file mode 100644 index 0000000..75a6bdd Binary files /dev/null and b/target/classes/net/persei/dionysus/Setup.class differ diff --git a/target/classes/net/persei/dionysus/blocks/Block.class b/target/classes/net/persei/dionysus/blocks/Block.class new file mode 100644 index 0000000..a974abe Binary files /dev/null and b/target/classes/net/persei/dionysus/blocks/Block.class differ diff --git a/target/classes/net/persei/dionysus/blocks/BlockCondition.class b/target/classes/net/persei/dionysus/blocks/BlockCondition.class new file mode 100644 index 0000000..cffc19c Binary files /dev/null and b/target/classes/net/persei/dionysus/blocks/BlockCondition.class differ diff --git a/target/classes/net/persei/dionysus/blocks/BlockHelper.class b/target/classes/net/persei/dionysus/blocks/BlockHelper.class new file mode 100644 index 0000000..c360681 Binary files /dev/null and b/target/classes/net/persei/dionysus/blocks/BlockHelper.class differ diff --git a/target/classes/net/persei/dionysus/blocks/BlockType.class b/target/classes/net/persei/dionysus/blocks/BlockType.class new file mode 100644 index 0000000..2f85c37 Binary files /dev/null and b/target/classes/net/persei/dionysus/blocks/BlockType.class differ diff --git a/target/classes/net/persei/dionysus/blocks/ConditionalBlock.class b/target/classes/net/persei/dionysus/blocks/ConditionalBlock.class new file mode 100644 index 0000000..18dbb85 Binary files /dev/null and b/target/classes/net/persei/dionysus/blocks/ConditionalBlock.class differ diff --git a/target/classes/net/persei/dionysus/blocks/Data.class b/target/classes/net/persei/dionysus/blocks/Data.class new file mode 100644 index 0000000..6821fd8 Binary files /dev/null and b/target/classes/net/persei/dionysus/blocks/Data.class differ diff --git a/target/classes/net/persei/dionysus/blocks/DelayBlock.class b/target/classes/net/persei/dionysus/blocks/DelayBlock.class new file mode 100644 index 0000000..8c2e457 Binary files /dev/null and b/target/classes/net/persei/dionysus/blocks/DelayBlock.class differ diff --git a/target/classes/net/persei/dionysus/blocks/IfElseBlock.class b/target/classes/net/persei/dionysus/blocks/IfElseBlock.class new file mode 100644 index 0000000..a71dd74 Binary files /dev/null and b/target/classes/net/persei/dionysus/blocks/IfElseBlock.class differ diff --git a/target/classes/net/persei/dionysus/blocks/InitialBlock.class b/target/classes/net/persei/dionysus/blocks/InitialBlock.class new file mode 100644 index 0000000..b93dbec Binary files /dev/null and b/target/classes/net/persei/dionysus/blocks/InitialBlock.class differ diff --git a/target/classes/net/persei/dionysus/blocks/Lane.class b/target/classes/net/persei/dionysus/blocks/Lane.class new file mode 100644 index 0000000..d3c243a Binary files /dev/null and b/target/classes/net/persei/dionysus/blocks/Lane.class differ diff --git a/target/classes/net/persei/dionysus/blocks/SetDataBlock.class b/target/classes/net/persei/dionysus/blocks/SetDataBlock.class new file mode 100644 index 0000000..2c942d4 Binary files /dev/null and b/target/classes/net/persei/dionysus/blocks/SetDataBlock.class differ diff --git a/target/classes/net/persei/dionysus/blocks/SetStateBlock.class b/target/classes/net/persei/dionysus/blocks/SetStateBlock.class new file mode 100644 index 0000000..5cbff2c Binary files /dev/null and b/target/classes/net/persei/dionysus/blocks/SetStateBlock.class differ diff --git a/target/classes/net/persei/dionysus/blocks/SetupParser$Mode.class b/target/classes/net/persei/dionysus/blocks/SetupParser$Mode.class new file mode 100644 index 0000000..d87f916 Binary files /dev/null and b/target/classes/net/persei/dionysus/blocks/SetupParser$Mode.class differ diff --git a/target/classes/net/persei/dionysus/blocks/SetupParser.class b/target/classes/net/persei/dionysus/blocks/SetupParser.class new file mode 100644 index 0000000..7f75c75 Binary files /dev/null and b/target/classes/net/persei/dionysus/blocks/SetupParser.class differ diff --git a/target/classes/net/persei/dionysus/blocks/SplitterBlock.class b/target/classes/net/persei/dionysus/blocks/SplitterBlock.class new file mode 100644 index 0000000..801dc5d Binary files /dev/null and b/target/classes/net/persei/dionysus/blocks/SplitterBlock.class differ diff --git a/target/classes/net/persei/dionysus/controlroom/ControlRoom$ControlRoomPanel.class b/target/classes/net/persei/dionysus/controlroom/ControlRoom$ControlRoomPanel.class new file mode 100644 index 0000000..6af9a0e Binary files /dev/null and b/target/classes/net/persei/dionysus/controlroom/ControlRoom$ControlRoomPanel.class differ diff --git a/target/classes/net/persei/dionysus/controlroom/ControlRoom.class b/target/classes/net/persei/dionysus/controlroom/ControlRoom.class new file mode 100644 index 0000000..2a4127f Binary files /dev/null and b/target/classes/net/persei/dionysus/controlroom/ControlRoom.class differ diff --git a/target/classes/net/persei/dionysus/exceptions/DataValueNotAvailableException.class b/target/classes/net/persei/dionysus/exceptions/DataValueNotAvailableException.class new file mode 100644 index 0000000..065ce0a Binary files /dev/null and b/target/classes/net/persei/dionysus/exceptions/DataValueNotAvailableException.class differ diff --git a/target/classes/net/persei/dionysus/exceptions/LibrariesNotFoundException.class b/target/classes/net/persei/dionysus/exceptions/LibrariesNotFoundException.class new file mode 100644 index 0000000..2a95a29 Binary files /dev/null and b/target/classes/net/persei/dionysus/exceptions/LibrariesNotFoundException.class differ diff --git a/target/classes/net/persei/dionysus/exceptions/MalformedBlockConditionException.class b/target/classes/net/persei/dionysus/exceptions/MalformedBlockConditionException.class new file mode 100644 index 0000000..afb1f7f Binary files /dev/null and b/target/classes/net/persei/dionysus/exceptions/MalformedBlockConditionException.class differ diff --git a/target/classes/net/persei/dionysus/exceptions/MalformedSetupFileException.class b/target/classes/net/persei/dionysus/exceptions/MalformedSetupFileException.class new file mode 100644 index 0000000..f9e9496 Binary files /dev/null and b/target/classes/net/persei/dionysus/exceptions/MalformedSetupFileException.class differ diff --git a/target/classes/net/persei/dionysus/exceptions/UnexpectedDataTypeException.class b/target/classes/net/persei/dionysus/exceptions/UnexpectedDataTypeException.class new file mode 100644 index 0000000..f8816ad Binary files /dev/null and b/target/classes/net/persei/dionysus/exceptions/UnexpectedDataTypeException.class differ diff --git a/target/classes/net/persei/dionysus/exceptions/WhatTheFuckException.class b/target/classes/net/persei/dionysus/exceptions/WhatTheFuckException.class new file mode 100644 index 0000000..01273ef Binary files /dev/null and b/target/classes/net/persei/dionysus/exceptions/WhatTheFuckException.class differ