public void OnTimer()
{
switch (mode) {
case CleanupMode.None:
break;
case CleanupMode.Disconnected:
CleanupChannels(channel => {
return channel.Status==SourceStreamStatus.Idle ||
channel.Status==SourceStreamStatus.Error;
});
break;
case CleanupMode.NotRelaying:
CleanupChannels(channel => {
return channel.LocalDirects==0 &&
channel.LocalRelays==0;
});
break;
case CleanupMode.NotPlaying:
CleanupChannels(channel => {
return channel.LocalDirects==0;
});
break;
}
}
}