//Connect components to eachother - called in audio engine public void createConnection(CoreComponent input, CoreComponent output, CoreSocketCasing inputSocket, CoreSocketCasing outputSocket) { if (inputSocket is AudioInputSocketCasing && outputSocket is AudioOutputSocketCasing) { AudioSocketComponent inSocComp = audioInputs[inputSocket.getSocketNum()]; AudioSocketComponent outSocComp = output.io.audioOutputs[outputSocket.getSocketNum()]; inSocComp.connect(outSocComp); inSocComp.setSocketNum(inputSocket.getSocketNum()); outSocComp.connect(inSocComp); outSocComp.setSocketNum(outputSocket.getSocketNum()); } else if (inputSocket is DataInputSocketCasing && outputSocket is DataOutputSocketCasing) { DataSocketComponent inSocComp = dataInputs[inputSocket.getSocketNum()]; DataSocketComponent outSocComp = output.io.dataOutputs[outputSocket.getSocketNum()]; DataSocketCasing dataInputSocket = inputSocket as DataSocketCasing; DataSocketCasing dataOutputSocket = outputSocket as DataSocketCasing; inSocComp.connect(outSocComp); inSocComp.setSocketNum(dataInputSocket.getSocketNum()); inSocComp.setControlNum(dataInputSocket.getControlNum()); outSocComp.connect(inSocComp); outSocComp.setSocketNum(dataOutputSocket.getSocketNum()); outSocComp.setControlNum(dataOutputSocket.getControlNum()); } }
//Push the data to the next block public void push() { DataSocketComponent connectedDataSocket = connectedSocket as DataSocketComponent; if (connectedDataSocket != null) { connectedDataSocket.value = value; connectedDataSocket.adjoinedComponent.processControl(connectedDataSocket.controlNum, value); } }