public static IMediaCollection SetDirectory(this IMediaCollection mock, DateTime dateTime, params IMediaItem[] mediaItems) { mock.Items.Returns(mediaItems); return(mock); }
public AddRemoveFolderVM(IVMLocator vmLocator, IMessengerService messengerService, IMediaCollection collectionManager, IApplicationSettings applicationSettings) : base(vmLocator) { _collectionManager = collectionManager; _messengerService = messengerService; _applicationSettings = applicationSettings; }
static void WriteMedia <T>(IMediaCollection <T> collection) where T : IMediaItem { Console.WriteLine(" Collection: {0}<{1}>", collection.GetType().Name, typeof(T).Name); foreach (var item in collection) { Console.WriteLine(item.ToString()); } Console.WriteLine(); }
public MainVM(IVMLocator vmLocator, IMediaCollection mediaCollectionManager) : base(vmLocator) { _mediaCollectionManager = mediaCollectionManager; AllItems = new ObservableCollection <MediaItem>(); AllItems.CollectionChanged += AllItems_CollectionChanged; OnLoadCommand = new RelayCommand(LoadedCmd); PlayCommand = new RelayCommand <long>(PlayCmd, l => true); }
public EnqueuedCollection(MusicService service, IMediaCollection collection) { Service = service; OriginalCollection = collection; Smid = new ServiceMediaId(Service.Info.Name, collection); if (collection.Tracks != null) { Tracks = EnqueuedTrack.FromCollection(service, collection.Tracks).ToList(); } }
public FilterTask(IMediaCollection mediaCollection, IFileService fileService, IConfiguration configuration) { _fileService = fileService; _configuration = configuration; _mediaCollection = mediaCollection; _mediaCollection.IsEnabledChanged += OnIsEnabledChanged; TotalSize = mediaCollection.GetFiles() .Where(x => x.IsEnabled == true && configuration.IsSupported(x)) .Sum(x => x.SizeInMb); }
public static string GetBasicPath(this Track track, string pathFormat, IMediaCollection collection) { // Hacky method to clean the file path var formatStrComponents = pathFormat.Split(Path.DirectorySeparatorChar); var newFormat = String.Join("\0", formatStrComponents); var vars = Dictify.ObjectToDictionary(track); vars["PlaylistName"] = collection.Title; vars["CollectionName"] = collection.Title; vars["ServiceName"] = collection.Title; var finalPath = PathHelpers.CleanPath(Named.Format(newFormat, vars)); return finalPath; }
public EnqueuedCollection Enqueue(MusicService service, IMediaCollection collection, string pathFormat) { var item = new EnqueuedCollection { Service = service, PathFormat = pathFormat, MediaCollection = collection }; Add(item); return(item); }
private void Cleanup() { Locations.CollectionChanged -= Locations_CollectionChanged; Locations.Clear(); AddLocationCommand = null; RemoveLocationCommand = null; Status = null; _messengerService = null; _collectionManager = null; }
public EnqueuedCollection Enqueue(MusicService service, IMediaCollection collection, string destination, string pathFormat) { var item = new EnqueuedCollection { Destination = destination, Service = service, PathFormat = pathFormat, MediaCollection = collection, Type = MediaCollectionAsType(collection) }; Add(item); return(item); }
private void AddToQueue(MusicService service, IMediaCollection item, string destination, string pathFormat) { var enqueuedItem = mediaDownloadQueue.Enqueue(service, item, destination, pathFormat); var header = MakeGroupHeader(enqueuedItem); var group = new ListViewGroup(header, HorizontalAlignment.Center); var groupIndex = queueListView.Groups.Add(group); var finalTracks = new List <string>(); for (var i = 0; i < item.Tracks.Count; i++) { var t = item.Tracks[i]; var lvItem = new ListViewItem { Group = group, Tag = new MediaItemTag { Track = t, Collection = enqueuedItem, GroupIndex = groupIndex, IndexInCollection = i } }; if (!t.IsDownloadable) { Log.Warning(Tag, $"Adding non-downloadable track {service.Info.Name}/{t.Id}"); lvItem.BackColor = SystemColors.Control; lvItem.ForeColor = SystemColors.GrayText; lvItem.ImageKey = "not_downloadable"; lvItem.Text = "Unavailable"; } else { lvItem.ImageKey = "ready"; lvItem.Text = "Ready to download"; } lvItem.SubItems.Add(t.DiscNumber + " / " + t.TrackNumber); lvItem.SubItems.Add(t.Title); lvItem.SubItems.Add(t.Artist.Name); lvItem.SubItems.Add(t.Album.Title); lvItem.SubItems.Add(BuildFlags(t.CustomMetadata)); lvItem.SubItems.Add(Path.Combine(destination, t.GetBasicPath(enqueuedItem.PathFormat, item))); finalTracks.Add(t.Artist.Name + " - " + t.Title); group.Items.Add(lvItem); queueListView.Items.Add(lvItem); } group.Header = MakeGroupHeader(enqueuedItem); }
private static MediaType MediaCollectionAsType(IMediaCollection collection) { if (collection is Album) { return(MediaType.Album); } if (collection is Playlist) { return(MediaType.Playlist); } if (collection is SingleTrackCollection) { return(MediaType.Track); } return(MediaType.Unknown); }
private void AddToQueue(MusicService service, IMediaCollection item, string pathFormat) { var enqueuedItem = mediaDownloadQueue.Enqueue(service, item, pathFormat); var mediaType = MediaCollectionAsType(item); var header = String.Format(GroupHeaderFormat, mediaType, item.Title, service.Info.Name); var group = new ListViewGroup(header); var groupIndex = queueListView.Groups.Add(group); for (var i = 0; i < item.Tracks.Count; i++) { var t = item.Tracks[i]; var lvItem = new ListViewItem { Group = group, Tag = new MediaItemTag { Track = t, Collection = enqueuedItem, GroupIndex = groupIndex, IndexInCollection = i } }; if (!t.IsDownloadable) { Log.Warning(Tag, $"Adding non-downloadable track {service.Info.Name}/{t.Id}"); lvItem.BackColor = SystemColors.Control; lvItem.ForeColor = SystemColors.GrayText; lvItem.ImageKey = "not_downloadable"; lvItem.Text = "Unavailable"; } else { lvItem.ImageKey = "ready"; lvItem.Text = "Ready to download"; } lvItem.SubItems.Add(t.DiscNumber + " / " + t.TrackNumber); lvItem.SubItems.Add(t.Title); lvItem.SubItems.Add(t.Artist.Name); lvItem.SubItems.Add(t.Album.Title); lvItem.SubItems.Add(t.GetBasicPath(enqueuedItem.PathFormat)); group.Items.Add(lvItem); queueListView.Items.Add(lvItem); } }
public ServiceMediaId(string serviceName, IMediaCollection collection) { ServiceName = serviceName; if (collection is Album) { MediaType = MediaType.Album; } else if (collection is Playlist) { MediaType = MediaType.Playlist; } else if (collection is SingleTrackCollection) { MediaType = MediaType.Track; } else { MediaType = MediaType.Unknown; } Id = collection.Id; }
public MainViewModel(IConfiguration configuration, IMediaService mediaService, IMediaCollection collection, IFileService fileService, Func <IProgressNotifier> progresssNotifierFactory, IMediaFileManager mediaFileManager) { this.mediaFileManager = mediaFileManager; this._mediaService = mediaService; Collection = collection; Configuration = configuration; _fileService = fileService; _progresssNotifierFactory = progresssNotifierFactory; SelectAllCommand = new RelayCommand(ExecuteSelectAll); SelectNoneCommand = new RelayCommand(ExecuteSelectNone); ExecuteCommand = new RelayCommand(Execute, CanExecute); CancelCommand = new RelayCommand(ExecuteCancel, CanExecuteCancel); BrowseSourceCommand = new RelayCommand(ExecuteBrowseSourcePath); BrowseTargetCommand = new RelayCommand(ExecuteBrowseTargetPath); OpenDirectoryCommand = new RelayCommand <IMediaFile>(OnOpenFileDirectory); }
private void ValidateFormat(IMediaCollection collection, string format, Label label) { label.ForeColor = Color.Red; try { label.ForeColor = Color.Black; label.Text = collection.Tracks[0].GetBasicPath(format, collection) + ".ext"; } catch (FormatException) { label.Text = "Improperly formed format string - did you forget a { or }?"; } catch (NullReferenceException) { label.Text = "Undefined variable referenced - click the \"Help with path formats\" button to learn more."; } catch (Exception ex) { label.Text = $"Unknown error ({ex.GetType().Name})"; } }
public static IMediaCollection SetDirectory(this IMediaCollection mock, params MediaFile[] mediaFiles) { return(SetDirectory(mock, new DateTime(2000, 1, 1), mediaFiles)); }
public static int GetAvailableTracksCount(this IMediaCollection collection) { return(collection.Tracks.Sum(track => track.IsDownloadable ? 1 : 0)); }
public OutputBehavior(IFubuRequestContext context, IMediaCollection<T> media, IResourceNotFoundHandler notFoundHandler) : base(PartialBehavior.Executes) { _context = context; _media = media; _notFoundHandler = notFoundHandler; }
public static string GetPath(this TrackFile trackFile, string pathFormat, IMediaCollection collection) { var cleanedFilePath = trackFile.Track.GetBasicPath(pathFormat, collection); return trackFile.FileType.Append(cleanedFilePath); }
public static ServiceMediaId GetSmid(this IMediaCollection collection, string serviceName) { return(new ServiceMediaId(serviceName, collection)); }