AK.F1.Timing.Live.LiveMessageReader.ReadSystemMessage C# (CSharp) Method

ReadSystemMessage() private method

private ReadSystemMessage ( LiveMessageHeader header ) : Message
header LiveMessageHeader
return Message
        private Message ReadSystemMessage(LiveMessageHeader header)
        {
            switch(header.MessageType)
            {
                case 1:
                    return ReadSetSessionTypeMessage(header);
                case 2:
                    return ReadSetKeyframeMessage(header);
                case 3:
                    return ReadSetStreamValidityMessage(header);
                case 4:
                    return ReadAddCommentaryMessage(header);
                case 5:
                    return ReadRefrehRateMessage(header);
                case 6:
                    return ReadSetSystemMessageMessage(header);
                case 7:
                    return ReadSetElapsedSessionTimeMessage(header);
                case 9:
                    if(header.DataLength >= 15)
                    {
                        return StartSessionTimeCountdownMessage.Instance;
                    }
                    if(header.Colour > 0)
                    {
                        return ReadWeatherMessage(header);
                    }
                    if(header.DataLength > 0)
                    {
                        return ReadSetRemainingSessionTimeMessage(header);
                    }
                    break;
                case 10:
                    return ReadSpeedCaptureMessage(header);
                case 11:
                    if(header.Colour == 1)
                    {
                        return ReadSetSessionStatusMessage(header);
                    }
                    if(header.Colour == 4)
                    {
                        return ReadSetMinRequiredQuallyTimeMessage(header);
                    }
                    ReadAndDecryptBytes(header.DataLength);
                    Log.DebugFormat("soft-fail on unsupported type 11 system message: {0}, {1}",
                        header, DecodeLatin1(header.DataLength));
                    return Message.Empty;
                case 12:
                    return ReadSetCopyrightMessage(header);
                default:
                    Log.ErrorFormat("unsupported system message: {0}", header);
                    throw Guard.LiveMessageReader_UnsupportedSystemMessage(header);
            }
            Log.WarnFormat("soft-fail on unsupported system message: {0}", header);
            return Message.Empty;
        }