public PrivateMessageTab(string tabName, string initialMessage, bool isOurMessage, string ourCallsign, IEventBroker eventBroker, IFsdManger networkManager)
        {
            tabIdentifier = tabName;
            Name          = tabName;
            Text          = tabName;

            BackColor = Color.FromArgb(20, 22, 24);
            ForeColor = Color.Cyan;

            mChatBox = new ChatBox
            {
                Dock = DockStyle.Fill
            };
            Controls.Add(mChatBox);
            mChatBox.TextCommandLine.TextCommandReceived += PrivateMessageTab_TextCommandReceived;

            mNetworkManager = networkManager;
            mEventBroker    = eventBroker;
            mEventBroker.Register(this);

            if (!string.IsNullOrEmpty(initialMessage))
            {
                if (isOurMessage)
                {
                    WriteMessage(Color.Cyan, $"{ ourCallsign }: { initialMessage }");
                }
                else
                {
                    WriteMessage(Color.White, $"{ tabIdentifier }: { initialMessage }");
                    PlaySoundRequested(this, new PlaySoundEventArgs(SoundEvent.NewMessage));
                    ForeColor = Color.Yellow;
                }
            }
            RequestRealName(this, new RealNameRequestedEventArgs(tabIdentifier));
        }
 public NetworkCredentials(ISetup host, IAppConfig config, IFsdManger network) : base(host, config)
 {
     InitializeComponent();
     Host.SetTitle("Network Credentials");
     mNetworkManager = network;
     LoadNetworkServers();
     LoadSettings();
 }
Пример #3
0
        public ControllerManager(IEventBroker broker, IFsdManger fsdManager) : base(broker)
        {
            mFsdManager = fsdManager;

            mControllerUpdate = new System.Windows.Forms.Timer
            {
                Interval = 45000
            };
            mControllerUpdate.Tick += ControllerUpdateTick;
        }
Пример #4
0
 public SetupGuide(IEventBroker eventBroker, IAppConfig config, IFsdManger network, IAfvManager afv)
 {
     InitializeComponent();
     mConfig         = config;
     mNetworkManager = network;
     mAfv            = afv;
     mEventBroker    = eventBroker;
     mEventBroker.Register(this);
     SwitchScreen("Welcome");
 }
        public NetworkAircraftManager(IEventBroker broker, IAppConfig config, IFsdManger fsdManager) : base(broker)
        {
            mConfig     = config;
            mFsdManager = fsdManager;

            mCheckIdleAircraftTimer = new Timer
            {
                Interval = 500
            };
            mCheckIdleAircraftTimer.Tick += CheckIdleAircraftTimer_Tick;
        }
Пример #6
0
        public SettingsForm(IAppConfig appConfig, IAfvManager audioForVatsim, IEventBroker eventBroker, IFsdManger networkManager, IUserInterface userInterface)
        {
            InitializeComponent();

            mConfig         = appConfig;
            mAfv            = audioForVatsim;
            mNetworkManager = networkManager;
            mUserInterface  = userInterface;
            mEventBroker    = eventBroker;
            mEventBroker.Register(this);

            mDirectInput        = new DirectInput();
            mPttDevicePollTimer = new Timer
            {
                Interval = 50
            };
            mPttDevicePollTimer.Tick += PttDevicePollTimer_Tick;

            cbUpdateChannel.BindEnumToCombobox(UpdateChannel.Stable);
            vhfEqualizer.BindEnumToCombobox(EqualizerPresets.VHFEmulation2);

            if (mConfig.InputVolumeDb > 72)
            {
                mConfig.InputVolumeDb = 72;
            }
            if (mConfig.InputVolumeDb < -60)
            {
                mConfig.InputVolumeDb = -60;
            }

            if (mConfig.Com1Volume > 72)
            {
                mConfig.Com1Volume = 72;
            }
            if (mConfig.Com1Volume < -60)
            {
                mConfig.Com1Volume = -60;
            }

            if (mConfig.Com2Volume > 72)
            {
                mConfig.Com2Volume = 72;
            }
            if (mConfig.Com2Volume < -60)
            {
                mConfig.Com2Volume = -60;
            }

            GetAudioDevices();
            LoadNetworkServers();
        }
Пример #7
0
        public AfvManager(IEventBroker broker, IAppConfig config, IFsdManger fsdManager) : base(broker)
        {
            mConfig     = config;
            mFsdManager = fsdManager;

            mUpdateTransceiverTimer = new Timer
            {
                Interval = 20000
            };
            mUpdateTransceiverTimer.Tick += UpdateTransceiverTimer_Tick;

            mAfvUserClient                    = new UserClient(VOICE_SERVER_URL, ReceivingCallsignsChanged);
            mAfvUserClient.Connected         += AfvUserClient_Connected;
            mAfvUserClient.Disconnected      += AfvUserClient_Disconnected;
            mAfvUserClient.InputVolumeStream += AfvUserClient_InputVolumeStream;
        }
Пример #8
0
        public SelcalGenerator(IEventBroker broker, IFsdManger fsdManager) : base(broker)
        {
            mFsdManager = fsdManager;

            mSelcalToneFrequencies = new Dictionary <string, float>()
            {
                { "A", 312.6f },
                { "B", 346.7f },
                { "C", 384.6f },
                { "D", 426.6f },
                { "E", 473.2f },
                { "F", 524.8f },
                { "G", 582.1f },
                { "H", 645.7f },
                { "J", 716.1f },
                { "K", 794.3f },
                { "L", 881.0f },
                { "M", 977.2f },
                { "P", 1083.9f },
                { "Q", 1202.3f },
                { "R", 1333.5f },
                { "S", 1479.1f },
            };
        }
 public UserAircraftManager(IEventBroker broker, IAppConfig config, IFsdManger fsdManager) : base(broker)
 {
     mConfig     = config;
     mFsdManager = fsdManager;
     InitializeTimers();
 }
        public XplaneConnectionManager(IEventBroker broker, IAppConfig config, IFsdManger fsdManager) : base(broker)
        {
            DealerSocket visualDealerSocket = null;

            mVisualDealerSockets = null;
            mConfig     = config;
            mFsdManager = fsdManager;

            if (mConfig.VisualClientIPs.Count > 0)
            {
                foreach (string mIP in mConfig.VisualClientIPs)
                {
                    visualDealerSocket = new DealerSocket();
                    visualDealerSocket.Options.Identity     = Encoding.UTF8.GetBytes("CLIENT");
                    visualDealerSocket.Options.TcpKeepalive = true;
                    try
                    {
                        visualDealerSocket.Connect("tcp://" + mIP + ":" + mConfig.TcpPort);
                        if (mVisualDealerSockets == null)
                        {
                            mVisualDealerSockets = new List <DealerSocket>();
                        }
                        mVisualDealerSockets.Add(visualDealerSocket);
                    }
                    catch (AddressAlreadyInUseException)
                    {
                        NotificationPosted?.Invoke(this, new NotificationPostedEventArgs(NotificationType.Error, "Plugin port already in use. Please choose a different TCP port."));
                    }
                }
            }

            if (!string.IsNullOrEmpty(mConfig.SimClientIP))
            {
                mSimulatorIP = mConfig.SimClientIP;
            }

            mMessageQueue = new NetMQQueue <string>();
            mDealerSocket = new DealerSocket();
            mDealerSocket.Options.TcpKeepalive = true;
            mDealerSocket.Options.Identity     = Encoding.UTF8.GetBytes("CLIENT");
            mDealerSocket.ReceiveReady        += DealerSocket_ReceiveReady;
            try
            {
                mDealerSocket.Connect("tcp://" + mSimulatorIP + ":" + mConfig.TcpPort);
            }
            catch (AddressAlreadyInUseException)
            {
                NotificationPosted?.Invoke(this, new NotificationPostedEventArgs(NotificationType.Error, "Plugin port already in use. Please choose a different TCP port."));
            }
            mPoller = new NetMQPoller {
                mDealerSocket, mMessageQueue
            };
            if (!mPoller.IsRunning)
            {
                mPoller.RunAsync();
            }

            mMessageQueue.ReceiveReady += (s, e) =>
            {
                if (mMessageQueue.TryDequeue(out string msg, TimeSpan.FromMilliseconds(100)))
                {
                    if (mDealerSocket != null)
                    {
                        mDealerSocket.SendFrame(msg);
                    }
                    if (mVisualDealerSockets != null && mVisualDealerSockets.Count > 0)
                    {
                        foreach (DealerSocket socket in mVisualDealerSockets)
                        {
                            socket.SendFrame(msg);
                        }
                    }
                }
            };

            mXplaneConnector  = new XPlaneConnector.XPlaneConnector(mSimulatorIP);
            mUserAircraftData = new UserAircraftData();
            mRadioStackState  = new UserAircraftRadioStack();

            mGetXplaneDataTimer = new Timer
            {
                Interval = 10
            };
            mGetXplaneDataTimer.Tick += GetXplaneDataTimer_Tick;
            mGetXplaneDataTimer.Start();

            mConnectionTimer = new Timer
            {
                Interval = 50
            };
            mConnectionTimer.Tick += ConnectionTimer_Tick;
            mConnectionTimer.Start();

            mRetryConnectionTimer = new Timer
            {
                Interval = 1000
            };
            mRetryConnectionTimer.Tick += RetryConnectionTimer_Tick;
            mRetryConnectionTimer.Start();

            mWhosOnlineListRefresh = new Timer
            {
                Interval = 5000
            };
            mWhosOnlineListRefresh.Tick += WhosOnlineListRefresh_Tick;

            SetupSubscribers();

            if (!Directory.Exists(Path.Combine(mConfig.AppPath, "PluginLogs")))
            {
                Directory.CreateDirectory(Path.Combine(mConfig.AppPath, "PluginLogs"));
            }

            var directory = new DirectoryInfo(Path.Combine(mConfig.AppPath, "PluginLogs"));
            var query     = directory.GetFiles("*", SearchOption.AllDirectories);

            foreach (var file in query.OrderByDescending(file => file.CreationTime).Skip(10))
            {
                file.Delete();
            }

            mRawDataStream = new StreamWriter(Path.Combine(mConfig.AppPath, string.Format($"PluginLogs/PluginLog-{DateTime.UtcNow:yyyyMMddHHmmss}.log")), false);
        }