/// <summary>
        /// Some property has changed on the cameraview item (or hotspot or ...)
        /// Lets check that the camera id is the one we watch for.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void imageViewerAddOn_PropertyChangedEvent(object sender, EventArgs e)
        {
            ImageViewerAddOn imageViewerAddOn = sender as ImageViewerAddOn;

            if (imageViewerAddOn != null)
            {
                if (imageViewerAddOn.CameraFQID.ObjectId == _cameraId)
                {
                    imageViewerAddOn.RegisterTimelineSequenceSource(_timelineSource);
                }
                else
                {
                    imageViewerAddOn.UnregisterTimelineSequenceSource(_timelineSource);
                }
            }
        }
 /// <summary>
 /// A new ImageViewer has been created
 /// </summary>
 /// <param name="imageViewerAddOn"></param>
 void NewImageViewerControlEvent(ImageViewerAddOn imageViewerAddOn)
 {
     if (imageViewerAddOn.ImageViewerType == VideoOS.Platform.Client.ImageViewerType.CameraViewItem)
     {
         // we just add sources for image viewer addons that has same camera as the first we see,
         // but in a real scenario it should of course only be done for ones for which we have relevant data
         if (_cameraId == Guid.Empty || (imageViewerAddOn.CameraFQID != null && imageViewerAddOn.CameraFQID.ObjectId == _cameraId))
         {
             imageViewerAddOn.RegisterTimelineSequenceSource(_timelineSource);
             RegisterEvents(imageViewerAddOn);
             if (imageViewerAddOn.CameraFQID != null)
             {
                 _cameraId = imageViewerAddOn.CameraFQID.ObjectId;
             }
         }
     }
 }