Example #1
0
        private void tracklist_Sorting(object sender, System.Windows.Controls.DataGridSortingEventArgs e)
        {
            switch (e.Column.Header.ToString())
            {
            case "Songs":
                EnumerationsContainer.LibraryTrackFilter = TrackFilter.Songs;
                break;

            case "Artist":
                EnumerationsContainer.LibraryTrackFilter = TrackFilter.Artist;
                break;

            case "Album":
                EnumerationsContainer.LibraryTrackFilter = TrackFilter.Album;
                break;

            case "Genre":
                EnumerationsContainer.LibraryTrackFilter = TrackFilter.Genre;
                break;

            case "Bitrate":
                EnumerationsContainer.LibraryTrackFilter = TrackFilter.Bitrate;
                break;

            case "":
                EnumerationsContainer.LibraryTrackFilter = TrackFilter.Rate;
                break;
            }
            e.Handled = true;
            if (CurrentSearchPackage != null)
            {
                TrackQuery.FindTracks(CurrentSearchPackage, Dispatcher);
            }
            else
            {
                var mySearchType = SearchType.trYear;
                if (Settings.Default.SearchSongs)
                {
                    mySearchType |= SearchType.trTitle;
                }
                if (Settings.Default.SearchArtists)
                {
                    mySearchType |= SearchType.trArtist;
                }
                if (Settings.Default.SearchAlbums)
                {
                    mySearchType |= SearchType.trAlbum;
                }
                if (Settings.Default.SearchGenres)
                {
                    mySearchType |= SearchType.trGenre;
                }
                TrackQuery.FindTracks(
                    new SearchPackage
                {
                    Data       = "",
                    SearchType = mySearchType
                }, Dispatcher);
            }
        }
Example #2
0
        public static List <TrackViewModel> GenreProcessList(DataGridControl lst)
        {
            var art = lst.SelectedItem as ViewModels.GenreViewModel;
            List <TrackViewModel> tl = TrackQuery.GetTracksFromGenre(art.Name).ToList();

            return(tl);
        }
Example #3
0
        public static List <TrackViewModel> ArtistProcessList(ListBox lst)
        {
            var art = lst.SelectedItem as ArtistViewModel;
            List <TrackViewModel> tl = TrackQuery.GetTracksFromArtist(art.Name).ToList();

            return(tl);
        }
Example #4
0
        public async Task <IActionResult> GetTracksByPlaylistId(
            [FromRoute] int playlistId,
            [FromQuery] TrackQuery trackQuery)
        {
            var tracks = await _mediator.Send(new GetTrackListQuery(playlistId, trackQuery));

            return(this.OkWithPageHeader(tracks, nameof(GetTracksByPlaylistId), trackQuery, _urlHelper));
        }
Example #5
0
        private void lst_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            var art = lst.SelectedItem as ViewModels.GenreViewModel;

            artist.Text   = art.Name;
            duration.Text = " " + TimeSpan.FromSeconds(art.Duration);
            Album         = art.Name;
            selArtist.FadeOut();
            tracklist.ItemsSource = TrackQuery.GetTracksFromGenre(art.Name);
        }
Example #6
0
        private void TabSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (Tabs.SelectedIndex != prevTabIndex)
            {
                switch (Tabs.SelectedIndex)
                {
                case 0:
                    if (trackPackage != CurrentSearchPackage)
                    {
                        TrackQuery.FindTracks(CurrentSearchPackage, Dispatcher);
                        trackPackage = CurrentSearchPackage;
                    }
                    EnumerationsContainer.LibraryUi = LibraryUiMode.Songs;
                    //Dispatcher.BeginInvoke(new Action(() => Scrolls(tracklist)));

                    break;

                case 1:
                    if (artPackage != CurrentSearchPackage)
                    {
                        ArtistQuery.FindArtists(CurrentSearchPackage, Dispatcher);
                        artPackage = CurrentSearchPackage;
                        artistList.RefreshUI();
                    }
                    EnumerationsContainer.LibraryUi = LibraryUiMode.Artist;

                    break;

                case 2:
                    if (albPackage != CurrentSearchPackage)
                    {
                        AlbumQuery.FindAlbums(CurrentSearchPackage, Dispatcher);
                        albPackage = CurrentSearchPackage;
                        albumLst.RefreshUI();
                    }
                    EnumerationsContainer.LibraryUi = LibraryUiMode.Album;

                    break;

                case 3:
                    if (genPackage != CurrentSearchPackage)
                    {
                        GenreQuery.FindGenres(CurrentSearchPackage, Dispatcher);
                        albPackage = CurrentSearchPackage;
                        genreLst.RefreshUI();
                    }
                    EnumerationsContainer.LibraryUi = LibraryUiMode.Genre;
                    break;
                }

                RefreshPlugs();
                prevTabIndex = Tabs.SelectedIndex;
            }
        }
Example #7
0
        void dpt_Tick(object sender, System.EventArgs e)
        {
            ticks++;
            if (incremented | Player.Instance.NetStreamingConfigsLoaded)
            {
                return;
            }
            if (Player.Instance.Wave != null && ticks > Player.Instance.Wave.Duration / 2
                | ticks > 4000)
            {
                incremented = true;
                EventHandler handler = IncrementListens;
                if (handler != null)
                {
                    handler(this, EventArgs.Empty);
                }
                //track update
                Track existingTrack = TrackQuery.GetTrack(CoreMain.CurrentTrack.Path);
                if (existingTrack != null)
                {
                    existingTrack.Listens++;
                    TrackQuery.SaveTrack(existingTrack);
                }

                //artistUpdate
                ArtistViewModel existingArtist = ArtistQuery.GetArtistViewModel(CoreMain.CurrentTrack.Artist);
                if (existingArtist != null)
                {
                    existingArtist.Listens++;
                    existingArtist.SaveArtist();
                }

                //albumUpdate
                AlbumViewModel existingAlbum = AlbumQuery.GetAlbumViewModel(CoreMain.CurrentTrack.Album);
                if (existingAlbum != null)
                {
                    existingAlbum.Listens++;
                    existingAlbum.SaveAlbum();
                }

                //a;bumUpdate
                ViewModels.GenreViewModel existingGenre = GenreQuery.GetGenreViewModel(CoreMain.CurrentTrack.Genre);
                if (existingGenre != null)
                {
                    existingGenre.Listens++;
                    existingGenre.SaveGenre();
                }

                //scrobble

                LastFm.ScrobbleTrack(LastFm.CurrentTrack);
            }
        }
Example #8
0
 void RateControl_MouseLeftButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
 {
     Rate = (Rate < 3) ? 5 : 0;
     using (var db = new SQLiteConnection(Tables.DBPath))
     {
         db.TimeExecution = true;
         if (RateType == "")
         {
             var query =
                 db.Table <Track>()
                 .FirstOrDefault(
                     c => c.Path == Path);
             if (query != null)
             {
                 query.Rate = Rate;
                 try
                 {
                     TrackQuery.SaveTrack(query);
                 }
                 catch (Exception exception)
                 {
                     Console.WriteLine(exception);
                 }
             }
         }
         else if (RateType == "Artist")
         {
             var query =
                 db.Table <Artist>()
                 .FirstOrDefault(
                     c => c.Name == Path);
             if (query != null)
             {
                 query.Rate = Rate;
                 try
                 {
                     db.Update(query);
                 }
                 catch (Exception exception)
                 {
                     Console.WriteLine(exception);
                 }
             }
         }
     }
 }
        public GetTrackListQuery(TrackQuery trackQuery)
        {
            if (trackQuery is null)
            {
                throw new ArgumentNullException(nameof(trackQuery));
            }

            Album      = trackQuery.Album;
            Artist     = trackQuery.Artist;
            Composer   = trackQuery.Composer;
            Genre      = trackQuery.Genre;
            MediaType  = trackQuery.MediaType;
            Name       = trackQuery.Name;
            PageNumber = trackQuery.PageNumber;
            PageSize   = trackQuery.PageSize;
            PriceFrom  = trackQuery.PriceFrom;
            PriceTo    = trackQuery.PriceTo;
        }
Example #10
0
        private void TrackFavChanged(object sender, MouseButtonEventArgs e)
        {
            tracklist.InvalidateVisual();

            var Rate = 2;
            var t    = sender as TextBlock;

            if (t.Text == "")               //2
            {
                t.Text    = "";             //5
                Rate      = 5;
                t.Opacity = 1;
            }
            else
            {
                t.Text    = "";
                Rate      = 2;
                t.Opacity = .25;
            }
            using (var db = new SQLiteConnection(Tables.DBPath))
            {
                db.TimeExecution = true;

                var query =
                    db.Table <Track>()
                    .FirstOrDefault(
                        c => c.Path == t.Tag.ToString());
                if (query != null)
                {
                    query.Rate = Rate;
                    try
                    {
                        TrackQuery.SaveTrack(query);
                    }
                    catch (Exception exception)
                    {
                        Console.WriteLine(exception);
                    }
                }
            }
        }
Example #11
0
        public void LoadArtist(string artistName)
        {
            ArtistViewModel art = ArtistQuery.GetArtistViewModel(artistName);

            if (art == null)
            {
                return;
            }

            Artist = art.Name;

            artist.Text   = art.Name;
            duration.Text = " " + TimeSpan.FromSeconds(art.Duration);

            var tracks = TrackQuery.GetTracksFromArtist(art.Name);

            tracklist.ItemsSource = tracks;
            albums.Text           = " " + tracks.GroupBy(x => x.Album).Count() + " albums";
            rateCtl.Path          = art.Name;
            rateCtl.Rate          = art.Rate;
            selArtist.FadeOut();
        }
Example #12
0
        /// <summary>
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void lst_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            var art = lst.SelectedItem as ArtistViewModel;

            if (art == null)
            {
                return;
            }

            Artist = art.Name;

            artist.Text   = art.Name;
            duration.Text = " " + TimeSpan.FromSeconds(art.Duration);

            var tracks = TrackQuery.GetTracksFromArtist(art.Name);

            tracklist.ItemsSource = tracks;
            albums.Text           = " " + tracks.GroupBy(x => x.Album).Count() + " albums";
            rateCtl.Path          = art.Name;
            rateCtl.Rate          = art.Rate;
            selArtist.FadeOut();
        }
Example #13
0
        public string?GetTrack(ITrain train, Station sta, TrainDirection dir, ArrDep timetableEntry, TrackQuery track)
        {
            var path = new TrainPathData(train.ParentTimetable, train);

            if (!path.ContainsStation(sta))
            {
                return(null);
            }

            var exitRoute = path.GetExitRoute(sta);

            if (track == TrackQuery.Departure)
            {
                return(Fallback(timetableEntry.DepartureTrack,
                                Fallback(timetableEntry.ArrivalTrack,
                                         Fallback(dir == TrainDirection.ti
                            ? sta.DefaultTrackRight.GetValue(exitRoute)
                            : sta.DefaultTrackLeft.GetValue(exitRoute), ""))));
            }

            return(Fallback(timetableEntry.ArrivalTrack,
                            Fallback(timetableEntry.DepartureTrack,
                                     Fallback(dir == TrainDirection.ti
                        ? sta.DefaultTrackRight.GetValue(exitRoute)
                        : sta.DefaultTrackLeft.GetValue(exitRoute), ""))));
        }
 public GetTrackListQuery(int playlistId, TrackQuery trackQuery) : this(trackQuery)
 {
     PlaylistId = playlistId;
 }
Example #15
0
        public void Initialize()
        {
            if (!DesignerProperties.GetIsInDesignMode(this))
            {
                tracklist.MouseDoubleClick += tracklist_PreviewMouseDoubleClick;
                tracksViewModel             = new ObservableTracksViewModel();

                Results.Tracks = new ObservableCollection <TrackViewModel>();

                tracklist.ReadOnly = true;

                tracklist.ItemsSource = Results.Tracks;

                if (Results.Tracks != null)
                {
                    Results.Tracks.CollectionChanged += Tracks_CollectionChanged;
                }
                TrackQuery.GetTracks();

                if (Results.Tracks.Count == 0)
                {
                    Tabs.FadeOut();
                    grdDD.FadeIn();
                }

                Cycling.Cycler.Initialize();

                //drags
                _dda.Register(tracklist);

                //LoadPlugins
                foreach (var v in PluginCore.Instance().LibraryComponents)
                {
                    if (v.Type == ComponentType.Progressive)
                    {
                        v.StateChangedEvent += ComponentOnStateChangedEvent;
                    }
                    //Add static all type ones

                    if (v.Type == ComponentType.Static &&
                        (v.Category == LibraryComponentCategory.All))
                    {
                        TreeViewItem item = new TreeViewItem();
                        item.Header = v.Caption;
                        item.Tag    = v;
                        List <TreeViewItem> str = new List <TreeViewItem>();
                        if (v.Children != null)
                        {
                            foreach (var va in v.Children)
                            {
                                str.Add(new TreeViewItem()
                                {
                                    Header = va, Tag = v, Padding = new Thickness(0, 8, 0, 8)
                                });
                            }
                        }
                        item.ItemsSource = str;
                        plugTree.Items.Add(item);
                    }
                }
                plugTree.SelectedItemChanged += plugTree_SelectedItemChanged;
                //RefreshPlugs();
                dpt.Tick    += dpt_Tick;
                dpt.Interval = new TimeSpan(00, 0, 0, 0, 100);
            }
        }
Example #16
0
        public async Task <IActionResult> GetTracks([FromQuery] TrackQuery trackQuery)
        {
            var response = await _mediator.Send(new GetTrackListQuery(trackQuery));

            return(this.OkWithPageHeader(response, nameof(GetTracks), trackQuery, _urlHelper));
        }