コード例 #1
0
ファイル: RadioConnection.cs プロジェクト: KuznetsovDm/R-123
        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);
        }
コード例 #2
0
ファイル: RadioConnection.cs プロジェクト: KuznetsovDm/R-123
 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);
 }