private static RemoteRadioMachine CreateRemoteMachine(IPAddress address, int port, IBehavior behavior) { AudioListener audioListener = new AudioListener(address, port); AudioLogicFilter audioLogicFilter = new AudioLogicFilter(audioListener); RemoteRadioMachine remoteMachine; if (behavior != null) { remoteMachine = new RemoteRadioMachine(audioLogicFilter, behavior.State, AppConfigCreator.Delta); } else { remoteMachine = new RemoteRadioMachine(audioLogicFilter, null, AppConfigCreator.Delta); } return(remoteMachine); }
private static void Connector_InformationEvent(object sender, MCPConnector.InformationEventArgs e) { if (IsNewRemoteMachine(e.Address)) { RemoteRadioMachine remoteRadioMachine = CreateRemoteMachine(e.Address, e.Port, Behavior); remoteCollection.TryAdd(e.Address, remoteRadioMachine); if (Behavior != null) { Behavior.StateChanged += remoteRadioMachine.BaseLogicStateChanged; } //add to mixer Player.AddInput(remoteRadioMachine.audioFilter.Stream); remoteRadioMachine.SayingState += AnalysisPlayNoise; } ParseParams(out ERadioState state, out double frequency, e.Information); remoteCollection[e.Address].RemoteStateChanged(frequency, state); }