public override void StartThumbnail(CameraSummary summary) { SnapshotRetriever snapper = snapshotting.FirstOrDefault(s => s.Identifier == summary.Identifier); if (snapper != null) { return; } snapper = new SnapshotRetriever(summary); snapper.CameraThumbnailProduced += SnapshotRetriever_CameraThumbnailProduced; snapshotting.Add(snapper); snapper.Start(); }
public override void StopAllThumbnails() { for (int i = snapshotting.Count - 1; i >= 0; i--) { SnapshotRetriever snapper = snapshotting[i]; snapper.Cancel(); snapper.Thread.Join(500); if (snapper.Thread.IsAlive) { snapper.Thread.Abort(); } snapper.CameraThumbnailProduced -= SnapshotRetriever_CameraThumbnailProduced; snapshotting.RemoveAt(i); } }
private void ProcessThumbnail(object sender, CameraThumbnailProducedEventArgs e) { SnapshotRetriever snapper = sender as SnapshotRetriever; if (snapper == null) { return; } log.DebugFormat("Received thumbnail event for {0}. Cancelled: {1}.", snapper.Alias, e.Cancelled); snapper.CameraThumbnailProduced -= SnapshotRetriever_CameraThumbnailProduced; if (snapshotting.Contains(snapper)) { snapshotting.Remove(snapper); } OnCameraThumbnailProduced(e); }