private static void InitialiseContainerTree() { RootContainer = new BasicContainer("0") { Title = "MediaPortal Media Library" }; var audioContainer = new BasicContainer("A") { Title = "Audio" }; RootContainer.Add(audioContainer); var pictureContainer = new BasicContainer("P") { Title = "Picture" }; RootContainer.Add(pictureContainer); var videoContainer = new BasicContainer("V") { Title = "Video" }; RootContainer.Add(videoContainer); videoContainer.Add(new MediaLibraryGenreContainer("VG") { Title = "Genres" }); RootContainer.Add(new MediaLibraryShareContainer("S") { Title = "Shares" }); }
public static IDirectoryObject InstansiateMediaLibraryObject(MediaItem item, string baseKey, BasicContainer parent, string title) { IDirectoryObject obj; // Choose the appropiate MediaLibrary* object for the media item if (item.Aspects.ContainsKey(DirectoryAspect.ASPECT_ID)) { obj = new MediaLibraryContainer(baseKey, item); } else if (item.Aspects.ContainsKey(AudioAspect.ASPECT_ID)) { obj = new MediaLibraryMusicTrack(baseKey, item); } else if (item.Aspects.ContainsKey(ImageAspect.ASPECT_ID)) { obj = new MediaLibraryImageItem(baseKey, item); } else if (item.Aspects.ContainsKey(VideoAspect.ASPECT_ID)) { obj = new MediaLibraryVideoItem(baseKey, item); } else { obj = null; } // Assign the parent if (parent != null && obj != null) { parent.Add((TreeNode<object>)obj); } // Initialise the object if (obj is MediaLibraryContainer) { ((MediaLibraryContainer)obj).Initialise(); } else if (obj is MediaLibraryItem) { ((MediaLibraryItem)obj).Initialise(); } if (obj != null) { ServiceRegistration.Get<ILogger>().Info("Created object of type {0} for MediaItem {1}", obj.GetType().Name, item.MediaItemId); if (title != null) { obj.Title = title; } } return obj; }
public static IDirectoryObject InstansiateMediaLibraryObject(MediaItem item, BasicContainer parent, string title) { BasicObject obj; Logger.Debug("Instantiate media library object from {0} {1} {2}", item != null ? item.MediaItemId.ToString() : "null", parent != null ? parent.Key : "null", title ?? "null"); //Logger.Debug("Media library object title {0}", MediaItemAspect.GetAspect(item.Aspects, MediaAspect.Metadata)); //Logger.Debug("Media library object title {0}", MediaItemAspect.GetAspect(item.Aspects, MediaAspect.Metadata).GetAttributeValue(MediaAspect.ATTR_TITLE)); //Logger.Debug("Media library object title {0}", MediaItemAspect.GetAspect(item.Aspects, MediaAspect.Metadata).GetAttributeValue(MediaAspect.ATTR_TITLE).ToString()); // Choose the appropiate MediaLibrary* object for the media item try { if (item.Aspects.ContainsKey(DirectoryAspect.ASPECT_ID)) { obj = new MediaLibraryBrowser(item, parent.Client); } else if (item.Aspects.ContainsKey(AudioAspect.ASPECT_ID)) { obj = new MediaLibraryMusicTrack(item, parent.Client); } else if (item.Aspects.ContainsKey(AudioAlbumAspect.ASPECT_ID)) { obj = new MediaLibraryAlbumItem(item, parent.Client); } else if (item.Aspects.ContainsKey(ImageAspect.ASPECT_ID)) { obj = new MediaLibraryImageItem(item, parent.Client); } else if (item.Aspects.ContainsKey(VideoAspect.ASPECT_ID)) { obj = new MediaLibraryVideoItem(item, parent.Client); } else if (item.Aspects.ContainsKey(SeriesAspect.ASPECT_ID)) { obj = new MediaLibrarySeriesItem(item, parent.Client); } else if (item.Aspects.ContainsKey(SeasonAspect.ASPECT_ID)) { obj = new MediaLibrarySeasonItem(item, parent.Client); } else { Logger.Warn("MediaServer item {0} {1} contains no valid aspects", item.MediaItemId, title); return(null); } } catch (DlnaAspectMissingException e) { //Unable to create DlnaItem Logger.Warn(e.Message); return(null); } //Logger.Debug("MediaServer converted {0}:[{1}] into {2}", item.MediaItemId, string.Join(",", item.Aspects.Keys), obj.GetType().Name); // Assign the parent if (parent != null) { parent.Add(obj); } // Initialise the object //if (obj is MediaLibraryItem) //{ // ((MediaLibraryItem)obj).Initialise(); //} obj.Restricted = true; Logger.Debug("Created object of type {0} for MediaItem {1}", obj.GetType().Name, item.MediaItemId); if (title != null) { obj.Title = title; } return(obj); }
private void InitialiseContainerTree() { if (Profile == null) { return; } ILocalization language = ServiceRegistration.Get <ILocalization>(); List <BasicContainer> mediaRoots = new List <BasicContainer>(); RootContainer = new BasicContainer(MediaLibraryHelper.CONTAINER_ROOT_KEY, this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_ROOT)) ?? "MediaPortal Media Library" }; if (MediaServerPlugin.Settings.ShowUserLogin) { IUserProfileDataManagement userManager = ServiceRegistration.Get <IUserProfileDataManagement>(); var users = userManager.GetProfilesAsync().Result?.Where(u => u.ProfileType == UserProfileType.UserProfile); if (users?.Count() > 0) { foreach (var user in users.Where(u => u.ProfileType == UserProfileType.UserProfile)) { var userContainer = new BasicContainer($"{MediaLibraryHelper.CONTAINER_USERS_KEY}>{user.ProfileId}", this) { Title = user.Name }; RootContainer.Add(userContainer); mediaRoots.Add(userContainer); } } } if (mediaRoots.Count == 0) { mediaRoots.Add(RootContainer); } foreach (var mediaRoot in mediaRoots) { var audioContainer = new BasicContainer(MediaLibraryHelper.CONTAINER_AUDIO_KEY, this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_AUDIO)) ?? "Audio" }; audioContainer.Add(new MediaLibraryAlbumContainer(MediaLibraryHelper.CONTAINER_AUDIO_KEY + "AL", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_ALBUM)) ?? "Albums" }); audioContainer.Add(new MediaLibraryMusicRecentContainer(MediaLibraryHelper.CONTAINER_AUDIO_KEY + "RA", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_RECENT)) ?? "Recently Added" }); audioContainer.Add(new MediaLibraryAlbumArtistContainer(MediaLibraryHelper.CONTAINER_AUDIO_KEY + "AR", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_ALBUM_ARTIST)) ?? "Album Artists" }); audioContainer.Add(new MediaLibraryMusicArtistContainer(MediaLibraryHelper.CONTAINER_AUDIO_KEY + "AAR", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_ARTIST)) ?? "Artists" }); audioContainer.Add(new MediaLibraryMusicGenreContainer(MediaLibraryHelper.CONTAINER_AUDIO_KEY + "G", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_GENRE)) ?? "Genres" }); audioContainer.Add(new MediaLibraryMusicYearContainer(MediaLibraryHelper.CONTAINER_AUDIO_KEY + "AY", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_YEAR)) ?? "Year" }); audioContainer.Add(new MediaLibraryShareContainer(MediaLibraryHelper.CONTAINER_AUDIO_KEY + "AS", this, "Audio") { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_SHARE)) ?? "Shares" }); mediaRoot.Add(audioContainer); var pictureContainer = new BasicContainer(MediaLibraryHelper.CONTAINER_IMAGES_KEY, this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_IMAGE)) ?? "Images" }; pictureContainer.Add(new MediaLibraryImageAlbumContainer(MediaLibraryHelper.CONTAINER_IMAGES_KEY + "IA", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_ALBUM)) ?? "Albums" }); pictureContainer.Add(new MediaLibraryImageRecentContainer(MediaLibraryHelper.CONTAINER_IMAGES_KEY + "RA", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_RECENT)) ?? "Recently Added" }); pictureContainer.Add(new MediaLibraryImageYearContainer(MediaLibraryHelper.CONTAINER_IMAGES_KEY + "IY", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_YEAR)) ?? "Year" }); pictureContainer.Add(new MediaLibraryShareContainer(MediaLibraryHelper.CONTAINER_IMAGES_KEY + "IS", this, "Image") { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_SHARE)) ?? "Shares" }); mediaRoot.Add(pictureContainer); var videoContainer = new BasicContainer(MediaLibraryHelper.CONTAINER_VIDEO_KEY, this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_VIDEO)) ?? "Video" }; var movieContainer = new BasicContainer(MediaLibraryHelper.CONTAINER_VIDEO_KEY + "M", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_MOVIE)) ?? "Movies" }; movieContainer.Add(new MediaLibraryMovieContainer(MediaLibraryHelper.CONTAINER_VIDEO_KEY + "MT", null, this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_TITLE)) ?? "Titles" }); movieContainer.Add(new MediaLibraryMovieRecentContainer(MediaLibraryHelper.CONTAINER_VIDEO_KEY + "MRA", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_RECENT)) ?? "Recently Added" }); movieContainer.Add(new MediaLibraryMovieUnwatchedContainer(MediaLibraryHelper.CONTAINER_VIDEO_KEY + "MU", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_UNWATCHED)) ?? "Unwatched" }); movieContainer.Add(new MediaLibraryMovieActorsContainer(MediaLibraryHelper.CONTAINER_VIDEO_KEY + "MAR", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_ACTOR)) ?? "Actors" }); movieContainer.Add(new MediaLibraryMovieGenreContainer(MediaLibraryHelper.CONTAINER_VIDEO_KEY + "MG", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_GENRE)) ?? "Genres" }); movieContainer.Add(new MediaLibraryMovieYearContainer(MediaLibraryHelper.CONTAINER_VIDEO_KEY + "MY", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_YEAR)) ?? "Year" }); videoContainer.Add(movieContainer); var seriesContainer = new BasicContainer(MediaLibraryHelper.CONTAINER_VIDEO_KEY + "S", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_SERIES)) ?? "Series" }; seriesContainer.Add(new MediaLibrarySeriesContainer(MediaLibraryHelper.CONTAINER_VIDEO_KEY + "ST", null, this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_TITLE)) ?? "Titles" }); seriesContainer.Add(new MediaLibrarySeriesActorsContainer(MediaLibraryHelper.CONTAINER_VIDEO_KEY + "SAR", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_ACTOR)) ?? "Actors" }); seriesContainer.Add(new MediaLibrarySeriesGenresContainer(MediaLibraryHelper.CONTAINER_VIDEO_KEY + "SG", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_GENRE)) ?? "Genres" }); seriesContainer.Add(new MediaLibrarySeriesYearContainer(MediaLibraryHelper.CONTAINER_VIDEO_KEY + "SY", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_YEAR)) ?? "Year" }); seriesContainer.Add(new MediaLibrarySeriesRecentContainer(MediaLibraryHelper.CONTAINER_VIDEO_KEY + "SRA", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_RECENT)) ?? "Recently Added" }); seriesContainer.Add(new MediaLibrarySeriesUnwatchedContainer(MediaLibraryHelper.CONTAINER_VIDEO_KEY + "SU", this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_UNWATCHED)) ?? "Unwatched" }); videoContainer.Add(seriesContainer); videoContainer.Add(new MediaLibraryShareContainer(MediaLibraryHelper.CONTAINER_VIDEO_KEY + "VS", this, "Video") { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_SHARE)) ?? "Shares" }); mediaRoot.Add(videoContainer); if (ServiceRegistration.IsRegistered <ITvProvider>()) { mediaRoot.Add(new MediaLibraryBroadcastGroupContainer(MediaLibraryHelper.CONTAINER_BROADCAST_KEY, this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_BROADCAST)) ?? "Broadcasts" }); } mediaRoot.Add(new MediaLibraryShareContainer(MediaLibraryHelper.CONTAINER_MEDIA_SHARES_KEY, this) { Title = StringUtils.TrimToNull(language.ToString(Consts.RES_SHARE)) ?? "Shares" }); } }