Example #1
0
 public Music(IGuildMusicQueueCollection queueCollection, IYoutubeDownloader youtube, IMusicLibrary library, Random rng)
 {
     _queueCollection = queueCollection;
     _youtube         = youtube;
     _library         = library;
     _rng             = rng;
 }
        public TrackListingPreviewViewModel(IAudioPlaylist audioPlaylist, IMusicLibrary musicLibrary)
        {
            _audioPlaylist = audioPlaylist;
            _musicLibrary  = musicLibrary;

            _tracks = new List <ITrack>();

            LoadTrack = new RelayCommand <ITrack>(DoLoadTrack);

            RegisterMessageHandlers();
        }
Example #3
0
        public LibraryListingViewModel(IMusicLibrary musicLibrary, IAudioPlaylist audioPlaylist) : base()
        {
            _musicLibrary            = musicLibrary;
            _musicLibrary.SongAdded += (o, e) => RefreshTrackListing();

            _audioPlaylist = audioPlaylist;

            ClearSearch = new RelayCommand(() => SearchText = string.Empty);
            LoadTrack   = new RelayCommand <ITrack>(DoLoadTrack);

            RefreshTrackListing();
        }
        public AudioCdDriveMonitoringService(IMusicLibrary musicLibrary, AudioFileFormats audioFileFormats)
        {
            _musicLibrary     = musicLibrary;
            _audioFileFormats = audioFileFormats;

            _cdDrives = GetAudioDrives();

            if (_cdDrives.Any())
            {
                _pollCdDrivesTimer          = new Timer(cdDrivePollingTimeInMs);
                _pollCdDrivesTimer.Elapsed += (o, e) => PollCdDrives();
            }
        }
Example #5
0
        private void Process(string libraryId, IMusicLibrary library)
        {
            this._libraryRepository.UpdateLastSyncDate(libraryId);

            Trace.WriteLine(string.Format("Getting songs for '{0}' ... ", libraryId), "SongSpider");
            foreach (var song in library.GetSongs())
            {
                this._songRespository.UpsertSong(libraryId, song.ExternalId, song.Artist, song.Title, song.Album, song.Track, song.Year);
            }

            Trace.WriteLine(string.Format("Pruning '{0}'", libraryId), "SongSpider");
            this._songRespository.PruneSongs(libraryId);
            Trace.WriteLine(string.Format("Finished pruning library '{0}', pruning", libraryId), "SongSpider");
        }
Example #6
0
        public AudioCdMenuViewModel(IMusicLibrary musicLibrary, IAudioPlaylist audioPlaylist, IAudioCdRippingService cdRippingService) : base()
        {
            _musicLibrary     = musicLibrary;
            _audioPlaylist    = audioPlaylist;
            _cdRippingService = cdRippingService;

            _selectAudioCdDriveDialog = new FolderBrowserDialog();
            _selectMp3OutputDialog    = new FolderBrowserDialog();
            _driveRootRegex           = new Regex(DriveRootRegex);

            _selectAudioCdDriveDialog.Description = AudioCdBrowserPrompt;
            _selectMp3OutputDialog.Description    = Mp3OutputBrowserPrompt;

            PlayAudioCd   = new RelayCommand(DoPlayAudioCd);
            RipCdToFolder = new RelayCommand(DoRipCdToFolder);
        }
        public AudioPlaylistTests()
        {
            _musicLibrary = A.Fake <IMusicLibrary>();
            _mediaPlayer  = A.Fake <IMediaPlayer>();

            A.CallTo(() => _mediaPlayer.LoadFile(A <string> .Ignored, A <MediaPlayerMetadata> .Ignored)).Invokes((o) => _mediaPlayer.Playing = true);

            _audioPlaylist = new AudioPlaylist(_musicLibrary, _mediaPlayer);
            _track         = A.Fake <ITrack>();

            A.CallTo(() => _track.Song).Returns(new Song {
                FileName = TrackFileName
            });

            _audioPlaylist.Tracks.Add(_track);
        }
        public RecentlyPlayedListingViewModel(IMusicLibrary musicLibrary, IAudioPlaylist audioPlaylist) : base()
        {
            _musicLibrary  = musicLibrary;
            _audioPlaylist = audioPlaylist;
            _tracks        = new List <ITrack>();

            _listSearchHelper = new ListSearchHelper <ITrack>
            {
                Items        = _tracks,
                FilterLambda = (t, s) => t.ToString().ToLower().Contains(s.ToLower())
            };

            ClearSearch = new RelayCommand(() => SearchText = string.Empty);
            LoadTrack   = new RelayCommand <ITrack>(DoLoadTrack);

            _musicLibrary.RecentlyPlayedListModified += (o, e) => RefreshRecentlyPlayedFromLibrary();
            RefreshRecentlyPlayedFromLibrary();
        }
        public AudioCdViewModel(IMusicLibrary musicLibrary, IAudioPlaylist audioPlaylist, IAudioCdDriveMonitoringService audioCdDriveMonitor) : base()
        {
            _audioPlaylist       = audioPlaylist;
            _audioCdDriveMonitor = audioCdDriveMonitor;

            _audioCdDriveMonitor.AudioCdInsertedOnLoad += (o, e) => Tracks = e.CdTracks;
            _audioCdDriveMonitor.AudioCdInserted       += (o, e) =>
            {
                Tracks = e.CdTracks;
                OfferToLoadCd(e.DriveDirectory);
            };
            _audioCdDriveMonitor.AudioCdEjected += (o, e) => Tracks = new List <ITrack>();

            Tracks    = new List <ITrack>();
            LoadTrack = new RelayCommand <ITrack>(DoLoadTrack);

            _audioCdDriveMonitor.StartMonitoring();
        }
Example #10
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MusicFileEngine"/> class.
        /// </summary>
        /// <param name="player">
        /// The player.
        /// </param>
        /// <param name="library">The music library</param>
        /// <exception cref="ArgumentNullException">
        /// Thrown if arguments are null.  Don't do that.  Except for Path. Path can be null.  I don't know why.
        /// </exception>
        public MusicFileEngine(IMusicPlayer player, IMusicLibrary library)
        {
            this.Library = library;
            if (player == null)
            {
                throw new ArgumentNullException("player");
            }

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

            this.player = player;
            this.player.PropertyChanged += this.PlayerOnPropertyChanged;
            this.player.TrackEnded += this.PlayerOnTrackEnded;
            this.currentlyPlaying = false;
        }
        public AlbumListingViewModel(IMusicLibrary musicLibrary, IAudioPlaylist audioPlaylist) : base()
        {
            _musicLibrary     = musicLibrary;
            _audioPlaylist    = audioPlaylist;
            _listSearchHelper = new ListSearchHelper <Services.Album>
            {
                FilterLambda = Services.Album.ContainsString,
                SortResults  = true,
                SortLambda   = (a) => a.Data.Name.ToLower()
            };

            _musicLibrary.AlbumAdded += (o, e) => LoadAlbumsFromLibrary();

            ClearSearch = new RelayCommand(() => SearchText = string.Empty);
            LoadAlbum   = new RelayCommand <Services.Album>(this.DoLoadAlbum);

            LoadAlbumsFromLibrary();
        }
        public PlaylistMenuViewModel(IMusicLibrary musicLibrary, IAudioPlaylist audioPlaylist) : base()
        {
            _musicLibrary  = musicLibrary;
            _audioPlaylist = audioPlaylist;

            _selectFileDialog = new OpenFileDialog();
            _saveFileDialog   = new SaveFileDialog();

            _selectFileDialog.Filter = PlaylistFileFilter;
            _saveFileDialog.Filter   = PlaylistFileFilter;

            // enable saving playlist when tracks are present
            _audioPlaylist.TrackListModified += (o, e) => SaveToFileEnabled = audioPlaylist.Tracks.Count > 0;

            Clear                   = new RelayCommand(_audioPlaylist.ClearPlaylist);
            LoadFromFile            = new RelayCommand(DoLoadFromFile);
            SaveToFile              = new RelayCommand(DoSaveToFile);
            ImportPlaylistToLibrary = new RelayCommand(DoPlayListImport);
        }
Example #13
0
        /// <summary>
        /// Create a new playlist instance. All boolean
        /// playback flow control options default to false.
        /// </summary>
        public AudioPlaylist(IMusicLibrary musicLibrary, IMediaPlayer mediaPlayer)
        {
            _musicLibrary = musicLibrary;
            _mediaPlayer  = mediaPlayer;

            Tracks = new ObservableCollection <ITrack>();
            Tracks.CollectionChanged += (o, e) => CallTrackModifiedHandler();

            _previousTracks         = new Stack <int>();
            _currentTrackIndexMutex = new Mutex();

            SetCurrentTrackIndex(-1);
            _forward = false;
            _back    = false;

            Shuffle   = false;
            RepeatAll = false;
            Repeat    = false;
        }
Example #14
0
        public FileMenuViewModel(IMusicLibrary musicLibrary, IAudioPlaylist audioPlaylist, AudioFileFormats audioFileFormats) : base()
        {
            _musicLibrary = musicLibrary;
            _audioPlaylist = audioPlaylist;

            _selectFileDialog = new OpenFileDialog();
            _selectFolderDialog = new FolderBrowserDialog();

            audioFileFormats.FormatsLoaded += (o, e) => _selectFileDialog.Filter = audioFileFormats.FileDialogFilter;
            _selectFolderDialog.Description = FolderBrowserPrompt;

            PlayFile = new RelayCommand(DoPlayFile);
            PlayFolder = new RelayCommand(DoPlayFolder);
            AddFilesToLibrary = new RelayCommand(DoAddFilesToLibrary);

            // todo: add import/export library routines

            Exit = new RelayCommand(() => Application.Current.Shutdown());
        }
        public ArtistListingViewModel(IMusicLibrary musicLibrary, IAudioPlaylist audioPlaylist) : base()
        {
            _musicLibrary  = musicLibrary;
            _audioPlaylist = audioPlaylist;

            _listSearchHelper = new ListSearchHelper <Artist>
            {
                FilterLambda = (a, s) => a.Name.ToLower().Contains(s.ToLower()),
                SortResults  = true,
                SortLambda   = (a) => a.Name.ToLower()
            };

            _musicLibrary.ArtistAdded += (o, e) => RefreshArtistsFromLibrary();

            LoadArtist  = new RelayCommand <Artist>(DoLoadArtist);
            ClearSearch = new RelayCommand(() => SearchText = string.Empty);

            RefreshArtistsFromLibrary();
        }
Example #16
0
 public Track(IDukeboxSettings settings, IMusicLibrary musicLibrary)
 {
     _settings     = settings;
     _musicLibrary = musicLibrary;
 }
Example #17
0
 public MusicLibraryController(IMusicLibrary musicLibraryService, TelemetryClient telemetryClient)
 {
     _musicLibraryService = musicLibraryService;
     _telemetryClient     = telemetryClient;
 }
Example #18
0
 public MusicLibrarySearchService(IMusicLibraryDbContext dukeboxData, IMusicLibrary musicLibrary, SemaphoreSlim dbContextMutex)
 {
     _dukeboxData    = dukeboxData;
     _musicLibrary   = musicLibrary;
     _dbContextMutex = dbContextMutex;
 }
 public void Subscribe(IMusicLibrary musicLibrary)
 {
     musicLibrariesToBeUpdated.Add(musicLibrary);
 }