public override ActionBase GetAction() { if (this.StreamingSoftwareComboBox.SelectedIndex >= 0 && this.StreamingActionTypeComboBox.SelectedIndex >= 0) { StreamingSoftwareTypeEnum software = EnumHelper.GetEnumValueFromString <StreamingSoftwareTypeEnum>((string)this.StreamingSoftwareComboBox.SelectedItem); StreamingActionTypeEnum type = EnumHelper.GetEnumValueFromString <StreamingActionTypeEnum>((string)this.StreamingActionTypeComboBox.SelectedItem); if (type == StreamingActionTypeEnum.Scene && !string.IsNullOrEmpty(this.SceneNameTextBox.Text)) { return(StreamingSoftwareAction.CreateSceneAction(software, this.SceneNameTextBox.Text)); } else if (type == StreamingActionTypeEnum.StartStopStream) { return(StreamingSoftwareAction.CreateStartStopStreamAction(software)); } else if (type == StreamingActionTypeEnum.SaveReplayBuffer) { return(StreamingSoftwareAction.CreateSaveReplayBufferAction(software)); } else if (!string.IsNullOrEmpty(this.SourceNameTextBox.Text)) { if (type == StreamingActionTypeEnum.TextSource) { if (!string.IsNullOrEmpty(this.SourceTextTextBox.Text) && !string.IsNullOrEmpty(this.SourceLoadTextFromTextBox.Text)) { StreamingSoftwareAction action = StreamingSoftwareAction.CreateTextSourceAction(software, this.SourceNameTextBox.Text, this.SourceVisibleCheckBox.IsChecked.GetValueOrDefault(), this.SourceTextTextBox.Text, this.SourceLoadTextFromTextBox.Text); action.UpdateReferenceTextFile(string.Empty); return(action); } } else if (type == StreamingActionTypeEnum.WebBrowserSource) { if (!string.IsNullOrEmpty(this.SourceWebPageTextBox.Text)) { return(StreamingSoftwareAction.CreateWebBrowserSourceAction(software, this.SourceNameTextBox.Text, this.SourceVisibleCheckBox.IsChecked.GetValueOrDefault(), this.SourceWebPageTextBox.Text)); } } else if (type == StreamingActionTypeEnum.SourceDimensions) { int x, y, rotation; float xScale, yScale; if (int.TryParse(this.SourceDimensionsXPositionTextBox.Text, out x) && int.TryParse(this.SourceDimensionsYPositionTextBox.Text, out y) && int.TryParse(this.SourceDimensionsRotationTextBox.Text, out rotation) && float.TryParse(this.SourceDimensionsXScaleTextBox.Text, out xScale) && float.TryParse(this.SourceDimensionsYScaleTextBox.Text, out yScale)) { return(StreamingSoftwareAction.CreateSourceDimensionsAction(software, this.SourceNameTextBox.Text, this.SourceVisibleCheckBox.IsChecked.GetValueOrDefault(), new StreamingSourceDimensions() { X = x, Y = y, Rotation = rotation, XScale = xScale, YScale = yScale })); } } else { return(StreamingSoftwareAction.CreateSourceVisibilityAction(software, this.SourceNameTextBox.Text, this.SourceVisibleCheckBox.IsChecked.GetValueOrDefault())); } } } return(null); }
private void StreamingActionTypeComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { this.FeatureNotSupportedGrid.Visibility = Visibility.Collapsed; this.SceneGrid.Visibility = Visibility.Collapsed; this.SourceGrid.Visibility = Visibility.Collapsed; this.SourceTextGrid.Visibility = Visibility.Collapsed; this.SourceWebBrowserGrid.Visibility = Visibility.Collapsed; this.SourceDimensionsGrid.Visibility = Visibility.Collapsed; if (this.StreamingActionTypeComboBox.SelectedIndex >= 0) { StreamingSoftwareTypeEnum software = this.GetSelectedSoftware(); StreamingActionTypeEnum type = EnumHelper.GetEnumValueFromString <StreamingActionTypeEnum>((string)this.StreamingActionTypeComboBox.SelectedItem); if (type == StreamingActionTypeEnum.Scene) { this.SceneGrid.Visibility = Visibility.Visible; } else if (type == StreamingActionTypeEnum.StartStopStream) { if (software == StreamingSoftwareTypeEnum.XSplit) { this.FeatureNotSupportedGrid.Visibility = Visibility.Visible; return; } else { // Do nothing... } } else { if (type == StreamingActionTypeEnum.TextSource) { this.SourceTextGrid.Visibility = Visibility.Visible; } else if (type == StreamingActionTypeEnum.WebBrowserSource) { this.SourceWebBrowserGrid.Visibility = Visibility.Visible; } else if (type == StreamingActionTypeEnum.SourceDimensions) { if (software == StreamingSoftwareTypeEnum.XSplit) { this.FeatureNotSupportedGrid.Visibility = Visibility.Visible; return; } else { this.SourceDimensionsGrid.Visibility = Visibility.Visible; } } this.SourceGrid.Visibility = Visibility.Visible; } } }
private async void StreamingActionTypeComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { this.FeatureNotSupportedGrid.Visibility = Visibility.Collapsed; this.SceneGrid.Visibility = Visibility.Collapsed; this.SceneCollectionGrid.Visibility = Visibility.Collapsed; this.SourceGrid.Visibility = Visibility.Collapsed; this.SourceTextGrid.Visibility = Visibility.Collapsed; this.SourceWebBrowserGrid.Visibility = Visibility.Collapsed; this.SourceDimensionsGrid.Visibility = Visibility.Collapsed; this.ReplayBufferNotEnabledInSettingsGrid.Visibility = Visibility.Collapsed; if (this.StreamingActionTypeComboBox.SelectedIndex >= 0) { StreamingSoftwareTypeEnum software = this.GetSelectedSoftware(); StreamingActionTypeEnum type = EnumHelper.GetEnumValueFromString <StreamingActionTypeEnum>((string)this.StreamingActionTypeComboBox.SelectedItem); if (type == StreamingActionTypeEnum.Scene) { this.SceneGrid.Visibility = Visibility.Visible; } else if (type == StreamingActionTypeEnum.StartStopStream) { if (software == StreamingSoftwareTypeEnum.XSplit) { this.FeatureNotSupportedGrid.Visibility = Visibility.Visible; return; } else { // Do nothing... } } else if (type == StreamingActionTypeEnum.SaveReplayBuffer) { if (software != StreamingSoftwareTypeEnum.OBSStudio) { this.FeatureNotSupportedGrid.Visibility = Visibility.Visible; return; } else { if (ChannelSession.Services.OBSWebsocket != null) { if (!(await ChannelSession.Services.OBSWebsocket.StartReplayBuffer())) { this.ReplayBufferNotEnabledInSettingsGrid.Visibility = Visibility.Visible; return; } } } } else if (type == StreamingActionTypeEnum.SceneCollection) { if (software != StreamingSoftwareTypeEnum.OBSStudio) { this.FeatureNotSupportedGrid.Visibility = Visibility.Visible; return; } else { this.SceneCollectionGrid.Visibility = Visibility.Visible; } } else { if (type == StreamingActionTypeEnum.TextSource) { this.SourceTextGrid.Visibility = Visibility.Visible; } else if (type == StreamingActionTypeEnum.WebBrowserSource) { this.SourceWebBrowserGrid.Visibility = Visibility.Visible; } else if (type == StreamingActionTypeEnum.SourceDimensions) { if (software == StreamingSoftwareTypeEnum.XSplit) { this.FeatureNotSupportedGrid.Visibility = Visibility.Visible; return; } else { this.SourceDimensionsGrid.Visibility = Visibility.Visible; } } this.SourceGrid.Visibility = Visibility.Visible; } } }
public StreamingSoftwareAction(StreamingSoftwareTypeEnum softwareType, StreamingActionTypeEnum actionType) : this() { this.SoftwareType = softwareType; this.ActionType = actionType; }