Example #1
0
        private static OverlayAsset CreateOverlayAsset(
            string azureId,
            string xamlTemplate,
            string title,
            string fields,
            double width,
            double height,
            double x,
            double y,
            double?duration,
            string cmsId)
        {
            List <MetadataField> overlayMetadata = GetOverlayMetadata(fields);

            OverlayAsset overlayAsset = new OverlayAsset
            {
                ProviderUri       = CreateUri("Overlays"),
                Title             = title,
                Created           = DateTime.Now,
                Metadata          = overlayMetadata,
                XamlResource      = xamlTemplate,
                Height            = height * 100,
                Width             = width * 100,
                PositionX         = x * 100,
                PositionY         = y * 100,
                DurationInSeconds = duration.HasValue ? duration.Value : 10,
                CMSId             = cmsId,
                AzureId           = azureId
            };

            return(overlayAsset);
        }
Example #2
0
 private void SetOnPropertyChangedHandler(OverlayAsset overlayAsset)
 {
     if (overlayAsset != null)
     {
         overlayAsset.PropertyChanged += this.OnOverlayAssetPropertyChanged;
         overlayAsset.Metadata.ForEach(m => m.PropertyChanged -= this.OnOverlayAssetPropertyChanged);
         overlayAsset.Metadata.ForEach(m => m.PropertyChanged += this.OnOverlayAssetPropertyChanged);
     }
 }
        private void ShowOverlayPreview(PreviewOverlayPayload payload)
        {
            OverlayAsset overlay = payload.OverlayAsset;

            if (overlay != null)
            {
                this.View.AddXamlElement(overlay.XamlResource, this.GetOverlayMetadata(overlay), overlay.PositionX, overlay.PositionY, overlay.Height, overlay.Width);
            }

            this.View.RemovePlaybackOverlays();
        }
        public OverlayPreview(OverlayAsset asset)
        {
            InitializeComponent();

            if (asset == null)
            {
                throw new ArgumentNullException("asset");
            }

            this.DataContext = asset;
        }
Example #5
0
        /// <summary>
        /// This method is called to show the metadata for an
        /// asset in the metadata region.
        /// </summary>
        /// <param name="asset">Asset for the metadata.</param>
        private void ShowMetadata(TimelineElement timelineElement)
        {
            OverlayAsset overlayAsset = timelineElement != null ? timelineElement.Asset as OverlayAsset : null;

            if (overlayAsset != null)
            {
                this.Overlay = overlayAsset;

                this.ShowMetadataInformation = true;
                this.regionManager.Regions["ClipMetadataRegion"].Activate(this.View);
            }
        }
        public void ShouldPopulateOverlaysListWhenAssetsAvailableEventIsPublished()
        {
            var vm = this.CreateViewModel();

            OverlayAsset o1 = new OverlayAsset();
            OverlayAsset o2 = new OverlayAsset();
            AudioAsset   a1 = new AudioAsset();
            VideoAsset   v1 = new VideoAsset();

            var assets = new List <Asset> {
                o1, o2, a1, v1
            };

            Assert.AreEqual(0, vm.Overlays.Count);

            this.assetsAvailableEvent.Publish(new DataEventArgs <List <Asset> >(assets));

            Assert.AreEqual(2, vm.Overlays.Count);
            CollectionAssert.Contains(vm.Overlays, o1);
            CollectionAssert.Contains(vm.Overlays, o2);
        }
        public void ShouldClearOverlaysListBeforeAddingAssetsWhenAssetsAvailableEventIsPublished()
        {
            var vm = this.CreateViewModel();

            OverlayAsset o1 = new OverlayAsset();
            OverlayAsset o2 = new OverlayAsset();
            AudioAsset   a1 = new AudioAsset();
            VideoAsset   v1 = new VideoAsset();

            var assets = new List <Asset> {
                o1, o2, a1, v1
            };

            Assert.AreEqual(0, vm.Overlays.Count);

            this.assetsAvailableEvent.Publish(new DataEventArgs <List <Asset> >(assets));

            Assert.AreEqual(2, vm.Overlays.Count);
            CollectionAssert.Contains(vm.Overlays, o1);
            CollectionAssert.Contains(vm.Overlays, o2);

            OverlayAsset o3 = new OverlayAsset();
            OverlayAsset o4 = new OverlayAsset();
            AudioAsset   a2 = new AudioAsset();
            VideoAsset   v2 = new VideoAsset();

            var newAssets = new List <Asset> {
                o3, o4, a2, v2
            };

            this.assetsAvailableEvent.Publish(new DataEventArgs <List <Asset> >(newAssets));

            Assert.AreEqual(2, vm.Overlays.Count);
            CollectionAssert.Contains(vm.Overlays, o3);
            CollectionAssert.Contains(vm.Overlays, o4);
        }
        private IDictionary <string, string> GetOverlayMetadata(OverlayAsset overlay)
        {
            var metadataList = overlay.Metadata;

            return(metadataList.ToDictionary(metadata => metadata.Name, metadata => metadata.Value as string));
        }
 public PreviewOverlayPayload(OverlayAsset overlayAsset)
 {
     this.OverlayAsset = overlayAsset;
 }