public MediaManagerViewmodel(MediaManager MediaManager, PreviewViewmodel PreviewVm)
 {
     _mediaManager = MediaManager;
     _previewViewModel = PreviewVm;
     _createCommands();
     _mediaCategory = _mediaCategories.FirstOrDefault();
     MediaDirectory = MediaManager.MediaDirectoryPGM;
     EditMedia = new MediaEditViewmodel(PreviewVm);
 }
Ejemplo n.º 2
0
 public ExportViewmodel(MediaManager mediaManager, IEnumerable<MediaExport> exportList)
 {
     Items = new ObservableCollection<MediaExportViewmodel>(exportList.Select(m => new MediaExportViewmodel(m)));
     Directories = mediaManager.IngestDirectories.Where(d => d.IsXDCAM).ToList();
     SelectedDirectory = Directories.FirstOrDefault();
     CommandExport = new SimpleCommand() { ExecuteDelegate = _export, CanExecuteDelegate = _canExport };
     _mediaManager = mediaManager;
     this._view = new Views.ExportView() { DataContext = this, Owner = System.Windows.Application.Current.MainWindow, ShowInTaskbar=false };
     _view.ShowDialog();
 }
Ejemplo n.º 3
0
        private async void AdvanceAutoBeginStoryboard_Completed(object sender, object e)
        {
            bool current = !this.GlobalToggle.IsOn;
            bool random  = this.RandomToggle.IsOn;

            await MediaManager.Advance(current, random);

            await this.UpdateImage();

            this.AdvanceAutoEndStoryBoard.Begin();
        }
        public void setupPlayer(JObject options, IPromise promise)
        {
            if (manager != null)
            {
                promise.Resolve(null);
                return;
            }

            manager = new MediaManager(Context, options);
            promise.Resolve(null);
        }
Ejemplo n.º 5
0
        private void FindNextMedia_in_thisFld(bool pre_or_next)
        {
            try
            {
                //取得本資料夾路徑
                string thisFld = System.IO.Directory.GetParent(imgPath).FullName.ToString();

                //取得本層資料夾中所有資料夾
                //FldArray = System.IO.Directory.GetDirectories(thisFld);

                //if (FldArray.Length == 0) return;

                //int count_Fld = 0;
                //foreach (string s in FldArray)
                //{
                //    if (s != directory) count_Fld++;
                //    else break;
                //}

                string nextMedia = "";  //下一個影片

                // 取得旋轉後的圖片對象(取得此層資料夾中的所有影片)
                imgArray = MediaManager.GetMediaCollection(thisFld);

                int mediaIndex = imgArray.FindIndex(x => x == imgPath);

                if (pre_or_next == true)   //找下一個
                {
                    mediaIndex++;
                    if (mediaIndex > imgArray.Count)  //超出陣列
                    {
                        nextMedia = imgArray[0];
                    }
                    else //陣列內
                    {
                        nextMedia = imgArray[mediaIndex];
                    }
                }
                else   //找上一個
                {
                    mediaIndex--;
                    if (mediaIndex < 0)  //超出陣列
                    {
                        nextMedia = imgArray[imgArray.Count - 1];
                    }
                    else //陣列內
                    {
                        nextMedia = imgArray[mediaIndex];
                    }
                }
                imgPath = nextMedia;
            }
            catch { }
        }
Ejemplo n.º 6
0
        public XmlRpcStruct newMediaObject(string blogid, string username, string password, XmlRpcStruct rpcstruct)
        {
            // Check user validation
            Authenticate(username, password);

            var name     = rpcstruct["name"].ToString();
            var media    = (byte[])rpcstruct["bits"];
            var blogName = string.Empty;

            var currentBlog = GetContentDatabase().GetItem(blogid);

            blogName = currentBlog.Name;

            // Get filename
            var fileName  = Path.GetFileName(name);
            var imageName = ItemUtil.ProposeValidItemName(Path.GetFileNameWithoutExtension(fileName));

            // Create strem from byte array
            var memStream = new MemoryStream(media);
            var md        = new MediaCreatorOptions();

            md.Destination   = string.Join("/", new string[] { Constants.Paths.WeBlogMedia, blogName, imageName });
            md.Database      = GetContentDatabase();
            md.AlternateText = imageName;

            // Check access rights
            CheckUserCreateRights(md.Destination);

            // Create mediaitem
            var mediaItem = MediaManager.Creator.CreateFromStream(memStream, fileName, md);

            // Close stream
            memStream.Close();
            memStream.Dispose();

            // Publish mediaitem to web database
            ContentHelper.PublishItemAndRequiredAncestors(mediaItem.ID);

            // Get the mediaitem url and return it
            var rstruct = new XmlRpcStruct();

#if FEATURE_URL_BUILDERS
            var options = new MediaUrlBuilderOptions()
#else
            var options = new MediaUrlOptions()
#endif
            {
                AbsolutePath = false,
                UseItemPath  = false
            };

            rstruct.Add("url", MediaManager.GetMediaUrl(mediaItem, options));
            return(rstruct);
        }
        public string GetImageFieldAbsoluteUrl(Item item, string fieldName)
        {
            ImageField field = fieldsHelper.GetImageField(item, fieldName);

            if (field == null || field.MediaItem == null)
            {
                return(null);
            }

            return(MediaManager.GetMediaUrl(field.MediaItem, BuildAbsoluteUrlMediaUrlOptions()));
        }
Ejemplo n.º 8
0
        // GET api/<controller>
        public JsonResult <DirectoryStruct[]> Get()
        {
            var item     = _sitecoreService.GetItem <Item>("{11111111-1111-1111-1111-111111111111}");
            var children = new List <DirectoryStruct>();

            foreach (var child in item.Children.ToArray())
            {
                var dir = new DirectoryStruct
                {
                    Name         = child.Name,
                    ChildrenList = new List <string>()
                };
                var nestedChildren = child.Children.ToArray();
                foreach (var name in nestedChildren)
                {
                    dir.ChildrenList.Add(name.Name);
                }

                if (nestedChildren.Length == 0)
                {
                    var    media = MediaManager.GetMedia(child);
                    string ext   = media.Extension.ToLower();

                    if (!(ext.Contains("gif") ||
                          ext.Contains("jpg") ||
                          ext.Contains("png")))
                    {
                        continue;
                    }
                }

                if (nestedChildren.Length == 0)
                {
                    var    media = MediaManager.GetMedia(child);
                    string ext   = media.Extension.ToLower();

                    if (!(ext.Contains("mp3") ||
                          ext.Contains("doc") ||
                          ext.Contains("docx") ||
                          ext.Contains("xls") ||
                          ext.Contains("xlsx") ||
                          ext.Contains("ppt") ||
                          ext.Contains("pptx") ||
                          ext.Contains("pdf")))
                    {
                        continue;
                    }
                }
                dir.Children = dir.ChildrenList.ToArray();
                children.Add(dir);
            }

            return(Json(children.ToArray()));
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Gets full url.
        /// </summary>
        /// <param name="url">
        /// The url string.
        /// </param>
        /// <returns>
        /// The full url.
        /// </returns>
        protected static string GetFullUrl(string url)
        {
            if (MediaManager.IsMediaUrl(url) && (url.IndexOf("://") < 0) && !url.StartsWith("/"))
            {
                string absoluteUrl = HttpContext.Current.Request.Url.AbsoluteUri;
                int    idx         = absoluteUrl.LastIndexOf('/');
                return(idx >= 0 ? string.Concat(absoluteUrl.Substring(0, idx + 1), url) : WebUtil.GetFullUrl(url));
            }

            return(WebUtil.GetFullUrl(url));
        }
Ejemplo n.º 10
0
        public override IHtmlString Render(string parameters = null, bool editing = false)
        {
            var returnValue = string.Empty;

            if (MediaItem != null)
            {
                returnValue = "/" + MediaManager.GetMediaUrl(MediaItem);
            }

            return(new HtmlString(returnValue));
        }
Ejemplo n.º 11
0
        public static string MediaUrl(this Item item, ID mediaFieldId, MediaUrlOptions options = null)
        {
            if (item == null)
            {
                throw new ArgumentNullException(nameof(item));
            }

            var imageField = (LinkField)item.Fields[mediaFieldId];

            return(imageField.TargetItem == null ? String.Empty : (MediaManager.GetMediaUrl(imageField.TargetItem) ?? string.Empty));
        }
Ejemplo n.º 12
0
 /// <summary>
 /// Default private constructor.
 /// </summary>
 private App()
 {
     _blocks       = new AppBlockList();
     _fields       = new AppFieldList();
     _modules      = new AppModuleList();
     _mediaTypes   = new MediaManager();
     _serializers  = new SerializerManager();
     _contentTypes = new ContentTypeManager();
     _hooks        = new HookManager();
     _permissions  = new PermissionManager();
 }
Ejemplo n.º 13
0
        public void UploadTest()
        {
            var a       = new AccessToken("wx52544b324318b38d", "a8b7e285bbae296f8bbb77e0bf518b1b");
            var m       = new MediaManager(a);
            var mediaId = m.Upload(@"C:\Users\maishu\Pictures\100.jpg", MediaType.Image);

            Assert.IsNotNull(mediaId);
            Console.WriteLine(mediaId);

            this.mediaId = mediaId;
        }
Ejemplo n.º 14
0
        private string GetUrlFromField()
        {
            var targetFile = ((FileField)Field).MediaItem;

            if (targetFile != null)
            {
                return(MediaManager.GetMediaUrl(targetFile));
            }

            return(string.Empty);
        }
Ejemplo n.º 15
0
        public static HtmlString AdvancedImageField(this SitecoreHelper helper, string fieldName, Item item, int width = 0, int height = 0, string alt = null, string cssClass = null, bool disableWebEditing = false)
        {
            /*
             * Example usage in view @Html.Sitecore().AdvancedImageField("Cropped", Model.Item, 100, 400)
             *
             * */
            if (item == null)
            {
                return(new HtmlString("No datasource set"));
            }

            ImageField imageField = new ImageField(item.Fields[fieldName]);

            if (String.IsNullOrEmpty(imageField.Value))
            {
                return(new HtmlString(String.Empty));
            }
            XmlDocument xml = new XmlDocument();

            xml.LoadXml(imageField.Value);

            if (xml.DocumentElement == null)
            {
                return(new HtmlString("No cropping image parameters found."));
            }

            string cropx  = xml.DocumentElement.HasAttribute("cropx") ? xml.DocumentElement.GetAttribute("cropx") : string.Empty;
            string cropy  = xml.DocumentElement.HasAttribute("cropy") ? xml.DocumentElement.GetAttribute("cropy") : string.Empty;
            string focusx = xml.DocumentElement.HasAttribute("focusx") ? xml.DocumentElement.GetAttribute("focusx") : string.Empty;
            string focusy = xml.DocumentElement.HasAttribute("focusy") ? xml.DocumentElement.GetAttribute("focusy") : string.Empty;

            float.TryParse(cropx, out float cx);
            float.TryParse(cropy, out float cy);
            float.TryParse(focusx, out float fx);
            float.TryParse(focusy, out float fy);

            string imageSrc = MediaManager.GetMediaUrl(imageField.MediaItem);

            string src = $"{imageSrc}?cx={cx}&cy={cy}&cw={width}&ch={height}";

            string hash = HashingUtils.GetAssetUrlHash(src);

            TagBuilder builder = new TagBuilder("img");

            builder.Attributes.Add("src", $"{src}&hash={hash}");
            builder.Attributes.Add("alt", !String.IsNullOrEmpty(imageField.Alt)? imageField.Alt:alt);

            if (!string.IsNullOrEmpty(cssClass))
            {
                builder.AddCssClass(cssClass);
            }

            return(MvcHtmlString.Create(builder.ToString(TagRenderMode.Normal)));
        }
Ejemplo n.º 16
0
 /// <summary>
 /// Default private constructor.
 /// </summary>
 private App()
 {
     blocks       = new AppBlockList();
     fields       = new AppFieldList();
     modules      = new AppModuleList();
     mediaTypes   = new MediaManager();
     serializers  = new SerializerManager();
     contentTypes = new ContentTypeManager();
     hooks        = new HookManager();
     permissions  = new PermissionManager();
 }
        public static string ImageUrl(this ImageField imageField, MediaUrlBuilderOptions builderOptions)
        {
            if (imageField?.MediaItem == null)
            {
                throw new ArgumentNullException(nameof(imageField));
            }

            return(builderOptions == null
                ? imageField.ImageUrl()
                : HashingUtils.ProtectAssetUrl(MediaManager.GetMediaUrl(imageField.MediaItem, builderOptions)));
        }
Ejemplo n.º 18
0
        public void OpenPortfolio(string file = null)
        {
            if (portfolioModified && orderList.Count > 0)
            {
                var res = MessageBox.Show(Resource.vMsgSavePortfolioChanges, Resource.vMsgSavePortfolioChangesTitle, MessageBoxButton.YesNoCancel);
                if (res == MessageBoxResult.Cancel)
                {
                    return;
                }
                else if (res == MessageBoxResult.Yes)
                {
                    SavePortfolio();
                }
            }

            if (file == null)
            {
                var dlg = new Microsoft.Win32.OpenFileDialog();
                dlg.DefaultExt       = ".ppp";
                dlg.Filter           = "Powerpraise-Portfolio|*.ppp";
                dlg.InitialDirectory = Properties.Settings.Default.LastPortfolioDirectory;

                if (dlg.ShowDialog() == true)
                {
                    file = dlg.FileName;
                    Properties.Settings.Default.LastPortfolioDirectory = Path.GetDirectoryName(dlg.FileName);
                }
                else
                {
                    return;
                }
            }

            IEnumerable <Media> result;

            if (MediaManager.TryLoadPortfolio(file, out result))
            {
                oldIndex = -1;                 // this is needed
                orderList.Clear();
                foreach (Media data in result)
                {
                    orderList.Add(data);
                }
                PortfolioFile     = new FileInfo(file);
                portfolioModified = false;

                System.Windows.Shell.JumpList.AddToRecentCategory(file);
            }
            else
            {
                MessageBox.Show(Resource.vMsgUnableToLoadPortfolio);
            }
        }
Ejemplo n.º 19
0
        private MediaItem Upload([NotNull] Item item, [NotNull] string fieldId, [NotNull] string filename)
        {
            Debug.ArgumentNotNull(filename, nameof(filename));

            MediaItem mediaItem = null;

            using (new SecurityDisabler())
            {
                ThumbnailField field = item.Fields[fieldId];
                if (field != null)
                {
                    mediaItem = field.MediaItem;
                }

                if (mediaItem == null)
                {
                    var path = GenerateMediaFolderPath(item.ID);

                    var options = new MediaCreatorOptions
                    {
                        Database      = Client.ContentDatabase,
                        Destination   = path,
                        KeepExisting  = false,
                        Versioned     = false,
                        AlternateText = "Thumbnail for " + item.Paths.Path
                    };

                    var notificationContext = Context.Notifications;
                    if (notificationContext != null)
                    {
                        notificationContext.Disabled = true;
                    }

                    mediaItem = MediaManager.Creator.CreateFromFile(filename, options);

                    if (notificationContext != null)
                    {
                        notificationContext.Disabled = false;
                    }
                }
                else
                {
                    using (var fileStream = new FileStream(FileUtil.MapPath(filename), FileMode.Open, FileAccess.Read, FileShare.Read))
                    {
                        var media = MediaManager.GetMedia(mediaItem);

                        media.SetStream(fileStream, "png");
                    }
                }

                return(mediaItem);
            }
        }
        public static bool CreateMediaSession(byte[] mediaData, out MediaSession?session, IntPtr?windowHandle = null, bool isStartUpMediaManager = false)
        {
            PresentationDescriptor?pd = null;
            Topology?topology         = null;

            try
            {
                if (isStartUpMediaManager)
                {
                    MediaManager.Startup();
                }
                var attributes = new MediaAttributes(mediaData.Length);
                MediaFactory.CreateMediaSession(attributes, out session);
                var resolver   = new SourceResolver();
                var byteStream = new ByteStream(mediaData);
                resolver.CreateObjectFromByteStream(byteStream, null, (int)SourceResolverFlags.ByteStream, null, out var objType, out var videoObject);
                GetMediaSource(videoObject, out var source);
                if (source != null)
                {
                    MediaFactory.CreateTopology(out topology);
                    source.CreatePresentationDescriptor(out pd);
                    var r1 = CreatePlaybackTopology(source, pd, windowHandle.HasValue ? windowHandle.Value : IntPtr.Zero, out topology);
                    if (r1.Success)
                    {
                        session.SetTopology(0, topology);
                        return(true);
                    }
                    else
                    {
                        session  = null;
                        topology = null;
                        return(false);
                    }
                }
                else
                {
                    session  = null;
                    topology = null;
                    return(false);
                }
            }
            catch (SharpDXException ex)
            {
                Debug.Print(ex.ToString());
                session = null;
                return(false);
            }
            finally
            {
                pd?.Dispose();
                topology?.Dispose();
            }
        }
Ejemplo n.º 21
0
        public ActionResult LocationMap()
        {
            var model = RenderingContext.Current.Rendering.Item;

            if (model == null)
            {
                return(new EmptyResult());
            }

            var locationMapModel = new LocationMapViewModel();

            ImageField image = model.Fields[Constants.FieldId.LocationMapImage];

            if (image?.MediaItem != null)
            {
                locationMapModel.ImageUrl    = MediaManager.GetMediaUrl(image.MediaItem);
                locationMapModel.ImageHeight = Convert.ToInt32(image.Height);
                locationMapModel.ImageWidth  = Convert.ToInt32(image.Width);
            }

            var            poiItemsList = new List <PoiItem>();
            MultilistField poiItems     = model.Fields[Constants.FieldId.LocationMapPois];

            if (poiItems?.TargetIDs != null)
            {
                foreach (var poi in poiItems.GetItems())
                {
                    var title = poi.Fields[Constants.FieldId.PoiTitle].Value;

                    var poiItem = new PoiItem
                    {
                        Title = title,
                        Top   = Convert.ToDecimal(poi.Fields[Constants.FieldId.PoiTop].Value),
                        Left  = Convert.ToDecimal(poi.Fields[Constants.FieldId.PoiLeft].Value),
                        Id    = poi.ID.Guid
                    };

                    ReferenceField iconField = poi.Fields[Constants.FieldId.PoiType];
                    var            icon      = Constants.FieldValue.PoiTypeIconClass;
                    if (iconField?.TargetItem != null)
                    {
                        icon = iconField.TargetItem.Fields[Constants.FieldId.PoiTypeIconClass].Value;
                    }
                    poiItem.IconClass = icon;

                    poiItemsList.Add(poiItem);
                }
            }

            locationMapModel.PoiItems = poiItemsList;

            return(View(locationMapModel));
        }
Ejemplo n.º 22
0
        public static string ImageUrl(this MediaItem mediaItem, MediaUrlOptions options = null)
        {
            if (mediaItem == null)
            {
                throw new ArgumentNullException(nameof(mediaItem));
            }
            var url       = MediaManager.GetMediaUrl(mediaItem, options ?? MediaUrlOptions.Empty);
            var cleanUrl  = StringUtil.EnsurePrefix('/', url);
            var hashedUrl = HashingUtils.ProtectAssetUrl(cleanUrl);

            return(hashedUrl);
        }
Ejemplo n.º 23
0
 static void Main(string[] args)
 {
     MediaManager.OnNewSource            += MediaManager_OnNewSource;
     MediaManager.OnRemovedSource        += MediaManager_OnRemovedSource;
     MediaManager.OnPlaybackStateChanged += MediaManager_OnPlaybackStateChanged;
     MediaManager.OnSongChanged          += MediaManager_OnSongChanged;
     MediaManager.Start();
     while (true)
     {
         Console.ReadLine();
     }
 }
Ejemplo n.º 24
0
        public static string LinkFieldUrl(this Item item, ID fieldId)
        {
            if (item == null)
            {
                throw new ArgumentNullException(nameof(item));
            }

            if (ID.IsNullOrEmpty(fieldId))
            {
                throw new ArgumentNullException(nameof(fieldId));
            }

            var field = item.Fields[fieldId];

            if (field == null || !(FieldTypeManager.GetField(field) is LinkField))
            {
                return(string.Empty);
            }

            LinkField linkField = field;

            switch (linkField.LinkType.ToLower())
            {
            case "internal":
                // Use LinkMananger for internal links, if link is not empty
                return(linkField.TargetItem != null?LinkManager.GetItemUrl(linkField.TargetItem) : string.Empty);

            case "media":
                // Use MediaManager for media links, if link is not empty
                return(linkField.TargetItem != null?MediaManager.GetMediaUrl(linkField.TargetItem) : string.Empty);

            case "external":
                // Just return external links
                return(linkField.Url);

            case "anchor":
                // Prefix anchor link with # if link if not empty
                return(!string.IsNullOrEmpty(linkField.Anchor) ? "#" + linkField.Anchor : string.Empty);

            case "mailto":
                // Just return mailto link
                return(linkField.Url);

            case "javascript":
                // Just return javascript
                return(linkField.Url);

            default:
                // Just please the compiler, this
                // condition will never be met
                return(linkField.Url);
            }
        }
Ejemplo n.º 25
0
        private void UpdateMediaPreview(Item item)
        {
            Assert.ArgumentNotNull((object)item, nameof(item));
            MediaUrlOptions thumbnailOptions = MediaUrlOptions.GetThumbnailOptions((MediaItem)item);

            thumbnailOptions.UseDefaultIcon = true;
            thumbnailOptions.Width          = 96;
            thumbnailOptions.Height         = 96;
            thumbnailOptions.Language       = item.Language;
            thumbnailOptions.AllowStretch   = false;
            this.MediaPreview.InnerHtml     = "<img src=\"" + MediaManager.GetMediaUrl((MediaItem)item, thumbnailOptions) + "\" width=\"96px\" height=\"96px\" border=\"0\" alt=\"\" />";
        }
Ejemplo n.º 26
0
        static MediaPlayer()
        {
            MediaManager.Startup(true);

            using (var factory = new MediaEngineClassFactory())
            {
                var mediaEngine = new MediaEngine(factory, null, MediaEngineCreateflags.Audioonly);
                _mediaEngineEx = mediaEngine.QueryInterface <MediaEngineEx>();
            }

            _mediaEngineEx.PlaybackEvent += MediaEngineExOnPlaybackEvent;
        }
Ejemplo n.º 27
0
 private void SavePortfolio()
 {
     if (PortfolioFile == null)
     {
         SavePortfolioAs();
     }
     else
     {
         MediaManager.SavePortfolio(from m in orderList select m.Data, PortfolioFile.FullName);
         portfolioModified = false;
     }
 }
Ejemplo n.º 28
0
        private static string GetRedirectToItemUrl(Item redirectToItem)
        {
            if (redirectToItem.Paths.Path.StartsWith(Constants.Paths.MediaLibrary))
            {
                var mediaItem     = (MediaItem)redirectToItem;
                var mediaUrl      = MediaManager.GetMediaUrl(mediaItem);
                var redirectToUrl = Sitecore.StringUtil.EnsurePrefix('/', mediaUrl);
                return(redirectToUrl);
            }

            return(LinkManager.GetItemUrl(redirectToItem));
        }
Ejemplo n.º 29
0
        private bool IsDeviceConnected()
        {
            if (string.IsNullOrEmpty(DeviceName))
            {
                return(false);
            }

            using (MediaManager manager = new MediaManager())
            {
                return(manager.IsDeviceConnected(DeviceName));
            }
        }
Ejemplo n.º 30
0
        /// <summary>
        /// Use this method for Sitecore version 7.5 and up (including 7.5)
        /// </summary>
        /// <param name="dataItem"></param>
        /// <param name="width"></param>
        /// <returns></returns>
        public static string GetMediaItemUrl(MediaItem dataItem, int width)
        {
            if (dataItem == null)
            {
                return(string.Empty);
            }
            var opts = new MediaUrlOptions {
                Width = width
            };

            return(MediaManager.GetMediaUrl(dataItem, opts));
        }
Ejemplo n.º 31
0
        public static string MediaUrl(this SitecoreHelper sitecoreHelper, ID fieldId, Item item, MediaUrlBuilderOptions options)
        {
            ImageField imageField = item?.Fields[fieldId];

            if (imageField == null || imageField.MediaItem == null)
            {
                return(string.Empty);
            }
            var url = options != null?MediaManager.GetMediaUrl(imageField.MediaItem, options) : MediaManager.GetMediaUrl(imageField.MediaItem);

            return(HashingUtils.ProtectAssetUrl(url));
        }
Ejemplo n.º 32
0
        public LocalPlayback(MediaManager manager, JObject options) : base(manager)
        {
            player                          = new MediaPlayer();
            player.AutoPlay                 = false;
            player.AudioCategory            = MediaPlayerAudioCategory.Media;
            player.CommandManager.IsEnabled = false;

            player.MediaOpened         += OnLoad;
            player.MediaFailed         += OnError;
            player.MediaEnded          += OnEnd;
            player.CurrentStateChanged += OnStateChange;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="RenderPageImageViewModel" /> class.
 /// </summary>
 /// <param name="image">The image.</param>
 public RenderPageImageViewModel(MediaManager.Models.MediaImage image = null)
 {
     if (image != null)
     {
         Id = image.Id;
         Version = image.Version;
         Title = image.Title;
         Caption = image.Caption;
         PublicUrl = image.PublicUrl;
         PublicThumbnailUrl = image.PublicThumbnailUrl;
         Height = image.Height;
         Width = image.Width;
     }
 }
        public MediaSearchViewmodel(EngineViewmodel engineVM, TMediaType mediaType, bool closeAfterAdd, TVideoFormat? videoFormat)
        {
            _manager = engineVM.Engine.MediaManager;
            _previewViewmodel = engineVM.PreviewViewmodel;
            if (_previewViewmodel != null)
                _previewViewmodel.PropertyChanged += OnPreviewPropertyChanged;
            _mediaType = mediaType;
            if (mediaType == TMediaType.AnimationFlash)
                _searchDirectory = _manager.AnimationDirectoryPGM;
            else
                _searchDirectory = _manager.MediaDirectoryPGM;
            _searchDirectory.MediaAdded += new EventHandler<MediaEventArgs>(_searchDirectory_MediaAdded);
            _searchDirectory.MediaRemoved += new EventHandler<MediaEventArgs>(_searchDirectory_MediaRemoved);
            _searchDirectory.MediaVerified += new EventHandler<MediaEventArgs>(_searchDirectory_MediaVerified);

            _videoFormat = videoFormat;
            _closeAfterAdd = closeAfterAdd;
            _mediaCategory = MediaCategories.FirstOrDefault();
            NewEventStartType = TStartType.After;
            if (!closeAfterAdd)
                OkButtonText = Properties.Resources._button_Add;
            _createCommands();
            _items = new ObservableCollection<MediaViewViewmodel>(_searchDirectory.Files
                .Where(m=> m.MediaType == mediaType && (videoFormat == null || m.VideoFormat == videoFormat))
                .Select(m => new MediaViewViewmodel(m)));
            _itemsView = CollectionViewSource.GetDefaultView(_items);
            _itemsView.SortDescriptions.Add(new SortDescription("MediaName", ListSortDirection.Ascending));
            _itemsView.Filter += _itemsFilter;

            _window = new MediaSearchView();
            _window.Owner = App.Current.MainWindow;
            _window.DataContext = this;
            _window.Closed += _windowClosed;
            _window.Show();
            //_window.Topmost = true;
        }