private void CheckAlert(double since)
{
if (IsEnabled && AudioSource != null)
{
if (Alerted)
{
if ((Helper.Now - LastAlerted).TotalSeconds > Micobject.alerts.minimuminterval)
{
Alerted = false;
UpdateFloorplans(false);
}
}
else
{
if (Micobject.alerts.active && AudioSource != null)
{
switch (Micobject.alerts.mode)
{
case "sound":
if (SoundDetected)
{
SoundCount += since;
if (SoundCount >= Micobject.detector.soundinterval)
{
if (Helper.CanAlert(Micobject.alerts.groupname, Micobject.alerts.resetinterval))
{
DoAlert("alert");
SoundCount = 0;
}
}
}
else
SoundCount = 0;
break;
case "nosound":
if ((Helper.Now - LastSoundDetected).TotalSeconds >
Micobject.detector.nosoundinterval)
{
if (Helper.CanAlert(Micobject.alerts.groupname, Micobject.alerts.resetinterval))
{
DoAlert("alert");
}
}
break;
}
}
}
}
}