private bool Test_AVTransport_StateVariables() { bool RetVal = true; if (AVT.HasStateVariable_A_ARG_TYPE_InstanceID) { if (AVT.GetUPnPService().GetStateVariableObject("A_ARG_TYPE_InstanceID").GetNetType() == typeof(uint)) { AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: A_ARG_TYPE_InstanceID [OK]"); } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: A_ARG_TYPE_InstanceID [Incorrect Type]"); RetVal = false; } } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: A_ARG_TYPE_InstanceID [MISSING]"); RetVal = false; } if (AVT.HasStateVariable_A_ARG_TYPE_SeekMode) { if (AVT.GetUPnPService().GetStateVariableObject("A_ARG_TYPE_SeekMode").GetNetType() == typeof(string)) { AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: A_ARG_TYPE_SeekMode [OK]"); } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: A_ARG_TYPE_SeekMode [Incorrect Type]"); RetVal = false; } } if (AVT.HasStateVariable_A_ARG_TYPE_SeekTarget) { if (AVT.GetUPnPService().GetStateVariableObject("A_ARG_TYPE_SeekTarget").GetNetType() == typeof(string)) { AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: A_ARG_TYPE_SeekTarget [OK]"); } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: A_ARG_TYPE_SeekTarget [Incorrect Type]"); RetVal = false; } } if (AVT.HasStateVariable_AbsoluteCounterPosition) { if (AVT.GetUPnPService().GetStateVariableObject("AbsoluteCounterPosition").GetNetType() == typeof(int)) { AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: AbsoluteCounterPosition [OK]"); } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: AbsoluteCounterPosition [Incorrect Type]"); RetVal = false; } } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: AbsoluteCounterPosition [MISSING]"); RetVal = false; } if (AVT.HasStateVariable_AbsoluteTimePosition) { if (AVT.GetUPnPService().GetStateVariableObject("AbsoluteTimePosition").GetNetType() == typeof(string)) { AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: AbsoluteTimePosition [OK]"); } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: AbsoluteTimePosition [Incorrect Type]"); RetVal = false; } } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: AbsoluteTimePosition [MISSING]"); RetVal = false; } if (AVT.HasStateVariable_AVTransportURI) { if (AVT.GetUPnPService().GetStateVariableObject("AVTransportURI").GetNetType() == typeof(string)) { AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: AVTransportURI [OK]"); } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: AVTransportURI [Incorrect Type]"); RetVal = false; } } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: AVTransportURI [MISSING]"); RetVal = false; } if (AVT.HasStateVariable_AVTransportURIMetaData) { if (AVT.GetUPnPService().GetStateVariableObject("AVTransportURIMetaData").GetNetType() == typeof(string)) { AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: AVTransportURIMetaData [OK]"); } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: AVTransportURIMetaData [Incorrect Type]"); RetVal = false; } } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: AVTransportURIMetaData [MISSING]"); RetVal = false; } if (AVT.HasStateVariable_CurrentMediaDuration) { if (AVT.GetUPnPService().GetStateVariableObject("CurrentMediaDuration").GetNetType() == typeof(string)) { AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: CurrentMediaDuration [OK]"); } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentMediaDuration [Incorrect Type]"); RetVal = false; } } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentMediaDuration [MISSING]"); RetVal = false; } if (AVT.HasStateVariable_CurrentPlayMode) { if (AVT.GetUPnPService().GetStateVariableObject("CurrentPlayMode").GetNetType() == typeof(string)) { bool PlayModeOK = false; foreach (string PM in AVT.Values_CurrentPlayMode) { if (PM == "NORMAL") { PlayModeOK = true; break; } } if (PlayModeOK) { AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: CurrentPlayMode [OK]"); } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentPlayMode [MISSING 'NORMAL' mode]"); RetVal = false; } } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentPlayMode [Incorrect Type]"); RetVal = false; } } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentPlayMode [MISSING]"); RetVal = false; } if (AVT.HasStateVariable_CurrentTrack) { if (AVT.GetUPnPService().GetStateVariableObject("CurrentTrack").GetNetType() == typeof(uint)) { AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: CurrentTrack [OK]"); } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentTrack [Incorrect Type]"); RetVal = false; } } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentTrack [MISSING]"); RetVal = false; } if (AVT.HasStateVariable_CurrentTrackDuration) { if (AVT.GetUPnPService().GetStateVariableObject("CurrentTrackDuration").GetNetType() == typeof(string)) { AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: CurrentTrackDuration [OK]"); } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentTrackDuration [Incorrect Type]"); RetVal = false; } } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentTrackDuration [MISSING]"); RetVal = false; } if (AVT.HasStateVariable_CurrentTrackMetaData) { if (AVT.GetUPnPService().GetStateVariableObject("CurrentTrackMetaData").GetNetType() == typeof(string)) { AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: CurrentTrackMetaData [OK]"); } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentTrackMetaData [Incorrect Type]"); RetVal = false; } } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentTrackMetaData [MISSING]"); RetVal = false; } if (AVT.HasStateVariable_CurrentTrackURI) { if (AVT.GetUPnPService().GetStateVariableObject("CurrentTrackURI").GetNetType() == typeof(string)) { AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: CurrentTrackURI [OK]"); } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentTrackURI [Incorrect Type]"); RetVal = false; } } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: CurrentTrackURI [MISSING]"); RetVal = false; } if (AVT.HasStateVariable_LastChange) { if (AVT.GetUPnPService().GetStateVariableObject("LastChange").GetNetType() == typeof(string)) { AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: LastChange [OK]"); } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: LastChange [Incorrect Type]"); RetVal = false; } } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: LastChange [MISSING]"); RetVal = false; } if (AVT.HasStateVariable_NumberOfTracks) { if (AVT.GetUPnPService().GetStateVariableObject("NumberOfTracks").GetNetType() == typeof(uint)) { AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: NumberOfTracks [OK]"); } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: NumberOfTracks [Incorrect Type]"); RetVal = false; } } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: NumberOfTracks [MISSING]"); RetVal = false; } if (AVT.HasStateVariable_RelativeCounterPosition) { if (AVT.GetUPnPService().GetStateVariableObject("RelativeCounterPosition").GetNetType() == typeof(int)) { AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: RelativeCounterPosition [OK]"); } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: RelativeCounterPosition [Incorrect Type]"); RetVal = false; } } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: RelativeCounterPosition [MISSING]"); RetVal = false; } if (AVT.HasStateVariable_RelativeTimePosition) { if (AVT.GetUPnPService().GetStateVariableObject("RelativeTimePosition").GetNetType() == typeof(string)) { AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: RelativeTimePosition [OK]"); } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: RelativeTimePosition [Incorrect Type]"); RetVal = false; } } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: RelativeTimePosition [MISSING]"); RetVal = false; } if (AVT.HasStateVariable_TransportState) { if (AVT.GetUPnPService().GetStateVariableObject("TransportState").GetNetType() == typeof(string)) { bool TSOK = false; int NumTSOK = 0; foreach (string TS in AVT.Values_TransportState) { if (TS == "STOPPED") { ++NumTSOK; TSOK = true; break; } } if (!TSOK) { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: TransportState ['STOPPED' missing]"); RetVal = false; } TSOK = false; foreach (string TS in AVT.Values_TransportState) { if (TS == "PAUSED_PLAYBACK") { ++NumTSOK; TSOK = true; break; } } if (!TSOK) { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: TransportState ['PAUSED_PLAYBACK' missing]"); RetVal = false; } TSOK = false; foreach (string TS in AVT.Values_TransportState) { if (TS == "PLAYING") { ++NumTSOK; TSOK = true; break; } } if (!TSOK) { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: TransportState ['PLAYING' missing]"); RetVal = false; } if (NumTSOK == 3) { AddEvent(LogImportance.Remark, "StateVariable Values", "AVT: TransportState [OK]"); } } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: TransportState [Incorrect Type]"); RetVal = false; } } else { AddEvent(LogImportance.Critical, "StateVariable Values", "AVT: TransportState [MISSING]"); RetVal = false; } return(RetVal); }