/// <summary> /// Updates the current audio input device. /// </summary> /// <param name="deviceId"></param> public static void UpdateAudioInput(string deviceId) { Store.Data.Audio.CurrentInputId = deviceId; ObsData aiSettings = new ObsData(); aiSettings.SetString(Constants.Audio.SettingKeys.DeviceId, deviceId.Equals(Constants.Audio.NO_DEVICE_ID) ? Constants.Audio.DEFAULT_DEVICE_ID : deviceId); Store.Data.Audio.InputSource.Update(aiSettings); aiSettings.Dispose(); Store.Data.Audio.InputSource.Enabled = !deviceId.Equals(Constants.Audio.NO_DEVICE_ID); Store.Data.Audio.InputSource.Muted = deviceId.Equals(Constants.Audio.NO_DEVICE_ID); // Muted is used to update audio meter WebcamService.UpdateAudioDevice(); }
/// <summary> /// Resets and updates the video settings for video output. /// </summary> /// <param name="parameters"></param> /// <returns></returns> public static bool ResetVideoInfo(ResetVideoInfoParameters parameters) { if (Store.Data.Obs.Presentation != null) { if (Store.Data.Obs.Presentation.SelectedScene.GetName().ToLowerInvariant() != "main") { Store.Data.Obs.Presentation.SetScene(0); } } Store.Data.Record.AppliedCrop = new obs_sceneitem_crop { left = parameters.CropLeft, top = parameters.CropTop, right = parameters.CropRight, bottom = parameters.CropBottom }; Store.Data.Record.ActiveScreen = ScreenHelper.GetScreen(parameters.ScreenX, parameters.ScreenY); //Set the proper display source if (Store.Data.Display.DisplaySource != null) { ObsData displaySettings = new ObsData(); displaySettings.SetBool("capture_cursor", true); displaySettings.SetInt("monitor", ObsHelper.GetObsDisplayValueFromScreen(Store.Data.Display.DisplaySource, Store.Data.Record.ActiveScreen)); Store.Data.Display.DisplaySource.Update(displaySettings); displaySettings.Dispose(); } //Set the proper display bounds and crop if (Store.Data.Display.DisplayItem != null) { Store.Data.Display.DisplayItem.SetBounds(new Vector2(0, 0), ObsBoundsType.None, ObsAlignment.Top); Store.Data.Display.DisplayItem.SetCrop(Store.Data.Record.AppliedCrop); } WebcamService.CalculateItemPosition(); var obsVideoInfo = new GenerateObsVideoInfoParameters { BaseWidth = (uint)parameters.CanvasWidth, OutputWidth = (uint)parameters.OutputWidth, BaseHeight = (uint)parameters.CanvasHeight, OutputHeight = (uint)parameters.OutputHeight, FrameRate = GetFrameRate(parameters.FrameRate) }; obs_video_info ovi = ObsHelper.GenerateObsVideoInfoObject(obsVideoInfo); if (!Obs.ResetVideo(ovi)) { return(false); } Store.Data.Record.CanvasHeight = parameters.CanvasHeight; Store.Data.Record.CanvasWidth = parameters.CanvasWidth; return(true); }