Beispiel #1
0
        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);
        }
Beispiel #2
0
        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;
                }
            }
        }
Beispiel #3
0
        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;
 }