/// <since_tizen> 4 </since_tizen>
public event EventHandler<MovementDetectedEventArgs> Detected;
- internal override void OnEventDetected(IntPtr trigger, IntPtr source, int streamId,
- IntPtr result, IntPtr _)
+ private void RegisterEvent()
{
- try
+ _eventDetectedCallback = (IntPtr trigger, IntPtr source, int streamId, IntPtr result, IntPtr _) =>
{
Detected?.Invoke(this, CreateMovementDetectedEventArgs(result));
- }
- catch (Exception e)
- {
- MultimediaLog.Error(MediaVisionLog.Tag, "Failed to invoke Recognized event.", e);
- }
+ };
}
private static Rectangle[] RetrieveAreas(IntPtr result)
/// <since_tizen> 4 </since_tizen>
public void AddSource(SurveillanceSource source, MovementDetectionConfiguration config)
{
+ RegisterEvent();
InvokeAddSource(source, config);
}
/// <since_tizen> 4 </since_tizen>
public event EventHandler<PersonAppearanceDetectedEventArgs> Detected;
- internal override void OnEventDetected(IntPtr trigger, IntPtr source, int streamId,
- IntPtr result, IntPtr _)
+ private void RegisterEvent()
{
- try
+ _eventDetectedCallback = (IntPtr trigger, IntPtr source, int streamId, IntPtr result, IntPtr _) =>
{
Detected?.Invoke(this, CreatePersonAppearanceChangedEventArgs(result));
- }
- catch (Exception e)
- {
- MultimediaLog.Error(MediaVisionLog.Tag, "Failed to invoke Recognized event.", e);
- }
+ };
}
/// <since_tizen> 4 </since_tizen>
public void AddSource(SurveillanceSource source, PersonAppearanceDetectionConfiguration config)
{
+ RegisterEvent();
InvokeAddSource(source, config);
}
}
/// <since_tizen> 4 </since_tizen>
public PersonRecognizer() : base(PersonRecognizedEventType)
{
+
}
/// <summary>
/// <since_tizen> 4 </since_tizen>
public event EventHandler<PersonRecognizedEventArgs> Recognized;
- internal override void OnEventDetected(IntPtr trigger, IntPtr source, int streamId,
- IntPtr result, IntPtr _)
+ private void RegisterEvent()
{
- try
+ _eventDetectedCallback = (IntPtr trigger, IntPtr source, int streamId, IntPtr result, IntPtr _) =>
{
Recognized?.Invoke(this, CreatePersonRecognizedEventArgs(result));
- }
- catch (Exception e)
- {
- MultimediaLog.Error(MediaVisionLog.Tag, "Failed to invoke Recognized event.", e);
- }
+ };
}
private PersonRecognizedEventArgs CreatePersonRecognizedEventArgs(IntPtr result)
{
throw new ArgumentNullException(nameof(config));
}
+
+ RegisterEvent();
InvokeAddSource(source, config);
}
}
private IntPtr _handle = IntPtr.Zero;
private bool _disposed = false;
+ internal EventOccurredCallback _eventDetectedCallback;
/// <summary>
/// Initializes a new instance of the <see cref="SurveillanceEngine"/> class.
/// </summary>
}
}
- internal abstract void OnEventDetected(IntPtr trigger, IntPtr source,
- int streamId, IntPtr eventResult, IntPtr userData);
-
internal void InvokeAddSource(SurveillanceSource source, SurveillanceEngineConfiguration config)
{
if (source == null)
throw new ArgumentNullException(nameof(source));
}
SubscribeEventTrigger(Handle, source.StreamId, EngineConfiguration.GetHandle(config),
- OnEventDetected).Validate("Failed to subscribe trigger");
+ _eventDetectedCallback).Validate("Failed to subscribe trigger");
}
/// <summary>