private IList <double> GetList(RtcStatsValueName valueName) { IList <double> list; if (Data.ContainsKey(valueName)) { list = Data[valueName]; } else { lock (_thisLock) { if (Data.ContainsKey(valueName)) { list = Data[valueName]; } else { list = new List <double>(); Data.Add(valueName, list); LastValues.Add(valueName, 0); } } } return(list); }
public void AddAverage(RtcStatsValueName valueName, double value, bool calculateDifference = true) { IList <double> list = GetList(valueName); double lastValue = list.Count > 0 ? list.Last() : value; double input = value; if (calculateDifference) { input = value - LastValues[valueName]; LastValues[valueName] = value; } lastValue = lastValue * (1.0 - _reactionPercentage) + input * _reactionPercentage; list.Add(lastValue); }
public void AddData(RtcStatsValueName valueName, double value) { IList <double> list = GetList(valueName); list.Add(value); }