public void Handle(bool forwardEvent) { if (Extractor.State.NetworkMode != NetworkMode.Client) { var useIncrementByOne = false; var incByOneCallback = KeyFileUtils.FindKeyBinding("SimHsiHdgIncBy1"); if (incByOneCallback != null && incByOneCallback.Key.ScanCode != (int)ScanCodes.NotAssigned) { useIncrementByOne = true; } KeyFileUtils.SendCallbackToFalcon(useIncrementByOne ? "SimHsiHdgIncBy1" : "SimHsiHeadingInc"); } if (!forwardEvent) { return; } switch (Extractor.State.NetworkMode) { case NetworkMode.Client: ExtractorClient.SendMessageToServer(new Message(MessageType.EHSILeftKnobIncrease)); break; case NetworkMode.Server: ExtractorServer.SubmitMessageToClientFromServer(new Message(MessageType.EHSILeftKnobIncrease)); break; } }
public void Handle(bool forwardEvent) { var azimuthIndicator = _instruments[InstrumentType.AzimuthIndicator].Renderer as IAzimuthIndicator; if (azimuthIndicator != null) { var newBrightness = azimuthIndicator.InstrumentState.Brightness + ((int)(azimuthIndicator.InstrumentState.MaxBrightness * (1.0f / 32.0f))); if (newBrightness > azimuthIndicator.InstrumentState.MaxBrightness) { newBrightness = azimuthIndicator.InstrumentState.MaxBrightness; } azimuthIndicator.InstrumentState.Brightness = newBrightness; Settings.Default.AzimuthIndicatorBrightness = newBrightness; } if (!forwardEvent) { return; } switch (Extractor.State.NetworkMode) { case NetworkMode.Client: ExtractorClient.SendMessageToServer(new Message(MessageType.AzimuthIndicatorBrightnessIncrease)); break; case NetworkMode.Server: ExtractorServer.SubmitMessageToClientFromServer(new Message(MessageType.AzimuthIndicatorBrightnessIncrease)); break; } }
private void SetupNetworkingServer() { try { ExtractorServer.CreateService("MFDExtractorService", ServerEndpoint.Port, _compressionType, _imageFormat); } catch { } }
private static void SetFlightData(FlightData flightData) { _flightData = flightData; if (flightData == null) { return; } if (State.NetworkMode == NetworkMode.Server) { ExtractorServer.SetFlightData(flightData); } }
private void TearDownImageServer() { try { if (ServerEndpoint != null) { ExtractorServer.TearDownService(ServerEndpoint.Port); } } catch { } }
public void Handle(bool forwardEvent) { Extractor.State.NightMode = !Extractor.State.NightMode; if (!forwardEvent) { return; } switch (Extractor.State.NetworkMode) { case NetworkMode.Client: ExtractorClient.SendMessageToServer(new Message(MessageType.ToggleNightMode)); break; case NetworkMode.Server: ExtractorServer.SubmitMessageToClientFromServer(new Message(MessageType.ToggleNightMode)); break; } }
public void Handle(bool forwardEvent) { _ehsiStateTracker.RightKnobDepressedTime = DateTime.UtcNow; _ehsiStateTracker.RightKnobReleasedTime = null; _ehsiStateTracker.RightKnobLastActivityTime = DateTime.UtcNow; if (!forwardEvent) { return; } switch (Extractor.State.NetworkMode) { case NetworkMode.Client: ExtractorClient.SendMessageToServer(new Message(MessageType.EHSIRightKnobDepressed)); break; case NetworkMode.Server: ExtractorServer.SubmitMessageToClientFromServer(new Message(MessageType.EHSIRightKnobDepressed)); break; } }
public void Handle(bool forwardEvent) { _ehsiStateTracker.RightKnobLastActivityTime = DateTime.UtcNow; var ehsi = _ehsiStateTracker.EHSI; if (ehsi.InstrumentState.ShowBrightnessLabel) { var newBrightness = (int)Math.Floor((ehsi.InstrumentState.Brightness - (ehsi.InstrumentState.MaxBrightness * (1.0f / 32.0f)))); ehsi.InstrumentState.Brightness = newBrightness; Settings.Default.EHSIBrightness = newBrightness; } else { if (Extractor.State.NetworkMode != NetworkMode.Client) { var useDecrementByOne = false; var decByOneCallback = KeyFileUtils.FindKeyBinding("SimHsiCrsDecBy1"); if (decByOneCallback != null && decByOneCallback.Key.ScanCode != (int)ScanCodes.NotAssigned) { useDecrementByOne = true; } KeyFileUtils.SendCallbackToFalcon(useDecrementByOne ? "SimHsiCrsDecBy1" : "SimHsiCourseDec"); } } if (!forwardEvent) { return; } switch (Extractor.State.NetworkMode) { case NetworkMode.Client: ExtractorClient.SendMessageToServer(new Message(MessageType.EHSIRightKnobDecrease)); break; case NetworkMode.Server: ExtractorServer.SubmitMessageToClientFromServer(new Message(MessageType.EHSIRightKnobDecrease)); break; } }
public void Handle(bool forwardEvent) { if (Extractor.State.NetworkMode != NetworkMode.Client) { KeyFileUtils.SendCallbackToFalcon("SimStepHSIMode"); } if (!forwardEvent) { return; } switch (Extractor.State.NetworkMode) { case NetworkMode.Client: ExtractorClient.SendMessageToServer(new Message(MessageType.EHSIMenuButtonDepressed)); break; case NetworkMode.Server: ExtractorServer.SubmitMessageToClientFromServer(new Message(MessageType.EHSIMenuButtonDepressed)); break; } }
public void Handle(bool forwardEvent) { var isis = _instruments[InstrumentType.ISIS].Renderer as IISIS; if (isis != null) { isis.InstrumentState.Brightness = (int)Math.Floor((isis.InstrumentState.MaxBrightness) * 0.5f); } if (!forwardEvent) { return; } switch (Extractor.State.NetworkMode) { case NetworkMode.Client: ExtractorClient.SendMessageToServer(new Message(MessageType.ISISStandardButtonDepressed)); break; case NetworkMode.Server: ExtractorServer.SubmitMessageToClientFromServer(new Message(MessageType.ISISStandardButtonDepressed)); break; } }
public void Adapt(IInstrument instrument, F4TexSharedMem.IReader texSharedMemReader, Rectangle sourceRectangle, InstrumentType instrumentType) { if (instrument == null || instrument.Renderer as IMfdRenderer == null) { return; } var mfd = instrument.Renderer as IMfdRenderer; try { mfd.InstrumentState.TestMode = Extractor.State.OptionsFormIsShowing; if ((NetworkMode)Settings.Default.NetworkingMode == NetworkMode.Client && instrument.Form != null && instrument.Form.Visible) { mfd.InstrumentState.SourceImage = ExtractorClient.GetInstrumentImage(instrumentType); } else if (!mfd.InstrumentState.TestMode) { mfd.InstrumentState.SourceImage = sourceRectangle.IsEmpty ? null : texSharedMemReader != null?texSharedMemReader.GetImage(sourceRectangle) : null; } mfd.InstrumentState.SourceRectangle = mfd.InstrumentState.SourceImage != null ? new Rectangle(0, 0, mfd.InstrumentState.SourceImage.Width, mfd.InstrumentState.SourceImage.Height) : Rectangle.Empty; mfd.InstrumentState.Blank = !Extractor.State.SimRunning; if (!Extractor.State.Running || !Extractor.State.KeepRunning) { mfd.InstrumentState.SourceImage = null; } if ((NetworkMode)Settings.Default.NetworkingMode == NetworkMode.Server) { ExtractorServer.SetInstrumentImage(mfd.InstrumentState.SourceImage, instrumentType); } } catch (InvalidOperationException) { } catch (AccessViolationException) { } }
public void Handle(bool forwardEvent) { var airspeedIndicator = (_instruments[InstrumentType.ASI].Renderer as IAirspeedIndicator); if (airspeedIndicator != null) { airspeedIndicator.InstrumentState.AirspeedIndexKnots += 2.5F; } if (!forwardEvent) { return; } switch (Extractor.State.NetworkMode) { case NetworkMode.Client: ExtractorClient.SendMessageToServer(new Message(MessageType.AirspeedIndexIncrease)); break; case NetworkMode.Server: ExtractorServer.SubmitMessageToClientFromServer(new Message(MessageType.AirspeedIndexIncrease)); break; } }
public void Handle(bool forwardEvent) { var accelerometer = _instruments[InstrumentType.Accelerometer].Renderer as IAccelerometer; if (accelerometer != null) { accelerometer.InstrumentState.ResetMinAndMaxGs(); } if (!forwardEvent) { return; } switch (Extractor.State.NetworkMode) { case NetworkMode.Client: ExtractorClient.SendMessageToServer(new Message(MessageType.AccelerometerIsReset)); break; case NetworkMode.Server: ExtractorServer.SubmitMessageToClientFromServer(new Message(MessageType.AccelerometerIsReset)); break; } }