예제 #1
0
        private void Ws_StreamingStatusChanged(SLOBSWebsocket sender, ESLOBSStreamingState state)
        {
            SLOBSStreamingState input = new SLOBSStreamingState();

            input.StreamingStatus = state;
            var output = _translateStreamingStatus(input);

            output.Record = _state.Record;
            output.Replay = _state.Replay;

            if (StreamingStatusChanged != null)
            {
                StreamingStatusChanged(this, output);
            }
        }
예제 #2
0
        private SOBSStreamingState _translateStreamingStatus(SLOBSStreamingState input)
        {
            var state = new SOBSStreamingState();

            switch (input.StreamingStatus)
            {
            case ESLOBSStreamingState.Live:
                state.Stream = EOBSStreamingState.Started;
                break;

            case ESLOBSStreamingState.Offline:
                state.Stream = EOBSStreamingState.Stopped;
                break;

            case ESLOBSStreamingState.Starting:
                state.Stream = EOBSStreamingState.Starting;
                break;

            case ESLOBSStreamingState.Ending:
                state.Stream = EOBSStreamingState.Stopping;
                break;

            case ESLOBSStreamingState.Reconnecting:
                state.Stream = EOBSStreamingState.Reconnecting;
                break;

            default:
                state.Stream = EOBSStreamingState.Unkown;
                break;
            }

            switch (input.RecordingStatus)
            {
            case ESLOBSSRecordingState.Recording:
                state.Record = EOBSStreamingState.Started;
                break;

            case ESLOBSSRecordingState.Offline:
                state.Record = EOBSStreamingState.Stopped;
                break;

            case ESLOBSSRecordingState.Starting:
                state.Record = EOBSStreamingState.Starting;
                break;

            case ESLOBSSRecordingState.Stopping:
                state.Record = EOBSStreamingState.Stopping;
                break;

            default:
                state.Record = EOBSStreamingState.Unkown;
                break;
            }

            switch (input.ReplayBufferStatus)
            {
            case ESLOBSSReplayBufferState.Running:
                state.Replay = EOBSStreamingState.Started;
                break;

            case ESLOBSSReplayBufferState.Offline:
                state.Replay = EOBSStreamingState.Stopped;
                break;

            case ESLOBSSReplayBufferState.Saving:
                state.Replay = EOBSStreamingState.Stopping;
                break;

            case ESLOBSSReplayBufferState.Stopping:
                state.Replay = EOBSStreamingState.Stopping;
                break;

            default:
                state.Replay = EOBSStreamingState.Unkown;
                break;
            }

            return(state);
        }