#pragma once #include namespace rack { // TODO Change driver and port number to something less common /** Driver ID in AudioIO and MidiIO */ #define BRIDGE_DRIVER -5000 #define BRIDGE_HOST "127.0.0.1" #define BRIDGE_PORT 5000 #define BRIDGE_NUM_PORTS 16 /** Number of VST/AU automation parameters */ #define BRIDGE_NUM_PARAMS 16 /** An arbitrary number which prevents connection from other protocols (like WebSockets) and old Bridge versions */ #define BRIDGE_HELLO 0xff00fefd #define BRIDGE_INPUTS 8 #define BRIDGE_OUTPUTS 8 /** All commands are called from the client and served by the server send - uint8_t cmd */ enum BridgeCommand { NO_COMMAND = 0, /** Requests the server to shut down the client */ QUIT_COMMAND, /** Sets the port send - uint8_t port */ PORT_SET_COMMAND, /** Sends a 3-byte MIDI command send - uint8_t msg[3] */ MIDI_MESSAGE_SEND_COMMAND, /** Sets the audio sample rate send - uint32_t sampleRate */ AUDIO_SAMPLE_RATE_SET_COMMAND, /** Sends and receives an audio buffer send - uint32_t frames - float input[BRIDGE_INPUTS * frames] recv - float output[BRIDGE_OUTPUTS * frames] */ AUDIO_PROCESS_COMMAND, /** Resumes the audio buffer, forcing Rack to wait on an audio buffer */ AUDIO_ACTIVATE, /** Pauses the audio buffer, allowing Rack to not wait on an audio buffer */ AUDIO_DEACTIVATE, NUM_COMMANDS }; } // namespace rack