public async void Search_Clicked(object sender, EventArgs e)
        {
            var con = MPDConnection.GetInstance();

            if (con.IsConnected())
            {
                List <MPDFileEntry> list = await Task.Factory.StartNew(() =>
                {
                    List <MPDFileEntry> newList = con.GetSearchedFiles(SearchEntry.Text, currentType);
                    lastSearchTerm = SearchEntry.Text;
                    lastSearchType = currentType;
                    return(newList);
                });

                if (list.Count != 0)
                {
                    SearchResultList = list.Cast <MPDTrack>().ToList();
                }
                else
                {
                    SearchResultList = new List <MPDTrack>();
                    await DisplayAlert("Nothing found", "No files found for your search term", "ok");
                }
            }
        }
Exemple #2
0
        private async void GetAllFilesFromMPD()
        {
            var con = MPDConnection.GetInstance();

            while (!con.IsConnected())
            {
                await Task.Delay(200);

                con = MPDConnection.GetInstance();
            }

            var files     = con.GetAllTracks();
            var trackList = new List <MPDTrack>();

            foreach (var file in files)
            {
                if (file is MPDTrack)
                {
                    trackList.Add(file as MPDTrack);
                }
            }

            if (trackList.Count > 0)
            {
                Device.BeginInvokeOnMainThread(() =>
                {
                    FileListView.ItemsSource = trackList;
                });
            }
        }
        public async void GetPlaylistsFromMPD()
        {
            var con = MPDConnection.GetInstance();

            while (!con.IsConnected())
            {
                await Task.Delay(200);

                con = MPDConnection.GetInstance();
            }

            List <MPDFileEntry> fileList  = con.GetPlaylists();
            List <MPDPlaylist>  playlists = fileList.Select(x => x as MPDPlaylist).ToList();

            playlists.RemoveAll(x => x == null);

            if (playlists != null && playlists.Count > 0)
            {
                playlists.RemoveAll(x => x == null);

                Device.BeginInvokeOnMainThread(() =>
                {
                    PlaylistView.ItemsSource = playlists;
                });
            }
        }
        public static void ConnectWithActiveProfile()
        {
            if (Database == null)
            {
                return;
            }

            var activeProfile = Database.GetActiveProfile().Result;
            var con           = MPDConnection.GetInstance();

            if (activeProfile != null)
            {
                con.hostname = activeProfile.Hostname;
                con.port     = activeProfile.Port;
                con.password = activeProfile.Password;

                con.ConnectToServer();
            }
            else
            {
                if (con.IsConnected())
                {
                    con.DisconnectFromServer();
                }
            }

            MPDProfileChanged = false;
        }
        private void LoadPlaylist_Clicked(object sender, EventArgs e)
        {
            var con = MPDConnection.GetInstance();

            if (con.IsConnected())
            {
                con.ClearPlaylist();
                con.LoadPlaylist(Title);
            }
        }
 private void PlayItem_Clicked(object sender, EventArgs e)
 {
     if (SongListView.SelectedItem is MPDTrack track)
     {
         if (MPDConnection.GetInstance().IsConnected())
         {
             MPDConnection.GetInstance().PlaySongIndex(track.PlaylistPosition);
         }
     }
 }
Exemple #7
0
        private bool SetAndTestMPD()
        {
            con = MPDConnection.GetInstance();

            if (!con.IsConnected())
            {
                return(false);
            }

            return(true);
        }
        public async static void UpdateMPDConnection()
        {
            while (true)
            {
                if (!MPDConnection.GetInstance().IsConnected() || MPDProfileChanged)
                {
                    ConnectWithActiveProfile();
                }

                await Task.Delay(1000);
            }
        }
 private bool CheckAndSetConnection()
 {
     con = MPDConnection.GetInstance();
     if (con.IsConnected())
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
        public void Add_Clicked(object sender, EventArgs e)
        {
            var con = MPDConnection.GetInstance();

            if (con.IsConnected())
            {
                if (TrackListView.SelectedItem is MPDTrack track)
                {
                    Task.Factory.StartNew(() => con.AddSong(track.Path));
                }
            }
        }
Exemple #11
0
        private void RemoveItem_Clicked(object sender, EventArgs e)
        {
            var con = MPDConnection.GetInstance();

            if (con.IsConnected())
            {
                if (FileListView.SelectedItem is MPDTrack track)
                {
                    con.RemoveIndex(track.PlaylistPosition);
                }
            }
        }
        public ServerStatsPage()
        {
            InitializeComponent();
            BindingContext   = this;
            PropertyChanged += PropChanged_Listener;

            var con = MPDConnection.GetInstance();

            if (con.IsConnected())
            {
                Statistics = con.GetServerStatistics();
            }
        }
        private async void RemoveItem_Clicked(object sender, EventArgs e)
        {
            if (SongListView.SelectedItem is MPDTrack currentSelected)
            {
                MPDConnection.GetInstance().RemoveIndex(currentSelected.PlaylistPosition);
            }

            if (listType == ListType.CURRENT)
            {
                await Task.Delay(200);
                await GetSongsFromMPD();
            }
        }
        public void AddAll_Clicked(object sender, EventArgs e)
        {
            var con = MPDConnection.GetInstance();

            if (con.IsConnected())
            {
                if (lastSearchTerm != "")
                {
                    Task.Factory.StartNew(() =>
                                          con.AddSearchedFiles(lastSearchTerm, lastSearchType));
                }
            }
        }
        protected async void UpdateButton_Clicked(object sender, EventArgs e)
        {
            var con = MPDConnection.GetInstance();

            if (con.IsConnected())
            {
                Statistics = await Task.Factory.StartNew(() =>
                {
                    con.UpdateDatabase("");
                }).ContinueWith((lastTask) =>
                {
                    return(con.GetServerStatistics());
                });
            }
        }
Exemple #16
0
        private async void AddItem_Clicked(object sender, EventArgs e)
        {
            if (FileListView.SelectedItem == null || !(FileListView.SelectedItem is MPDTrack))
            {
                return;
            }

            var song = FileListView.SelectedItem as MPDTrack;

            await Task.Factory.StartNew(() =>
            {
                var con = MPDConnection.GetInstance();
                con.AddSong(song.Path);
            });
        }
        public async void OutputItem_Tapped(object sender, ItemTappedEventArgs e)
        {
            var con = MPDConnection.GetInstance();

            if (con.IsConnected())
            {
                OutputList = await Task.Factory.StartNew(() =>
                {
                    if (e.Item is MPDOutput output)
                    {
                        con.ToggleOutput(output.OutputId);
                    }
                }).ContinueWith((t) => { return(con.GetOutputs()); });
            }
        }
        public ServerOutputPage()
        {
            InitializeComponent();
            BindingContext = this;

            var con = MPDConnection.GetInstance();

            if (con.IsConnected())
            {
                Task.Factory.StartNew(() =>
                {
                    var outputs = con.GetOutputs();
                    Device.BeginInvokeOnMainThread(() => { OutputList = outputs; });
                });
            }
        }
        private async Task GetSongsFromMPD()
        {
            var con = MPDConnection.GetInstance();

            while (!con.IsConnected())
            {
                await Task.Delay(200);

                con = MPDConnection.GetInstance();
            }

            List <MPDFileEntry> fileList;

            if (listType == ListType.SAVED)
            {
                fileList = con.GetSavedPlaylist(Title);
            }
            else if (listType == ListType.SEARCH)
            {
                fileList = con.GetSearchedFiles(Title, type);
            }
            else
            {
                fileList = con.GetCurrentPlaylist();
            }

            List <MPDTrack> songList = fileList.Select(x => x as MPDTrack).ToList();

            if (songList != null)
            {
                songList.RemoveAll(x => x == null || x.TrackTitle == "");
            }

            if (songList.Count > 0)
            {
                Device.BeginInvokeOnMainThread(() =>
                {
                    SongListView.ItemsSource = songList;
                });
            }
        }
Exemple #20
0
        public async void GetArtistsFromMPD()
        {
            var con = MPDConnection.GetInstance();

            while (!con.IsConnected())
            {
                await Task.Delay(200);

                con = MPDConnection.GetInstance();
            }

            List <MPDArtist> artists = con.GetArtists();

            if (artists != null && artists.Count > 0)
            {
                Device.BeginInvokeOnMainThread(() =>
                {
                    ArtistListView.ItemsSource = artists;
                });
            }
        }
        private Entity GeneratePlaylistEntity()
        {
            Entity playlistEntity = new Entity()
            {
                Name = "Playlist"
            };

            var con = MPDConnection.GetInstance();

            if (con.IsConnected())
            {
                var playlistCollection = con.GetPlaylists().Cast <MPDPlaylist>().ToList();
                foreach (var list in playlistCollection)
                {
                    playlistEntity.AddEntry(
                        new EntityEntry(list.Name, new string[] { list.Name }));
                }
            }

            return(playlistEntity);
        }
        private Entity GenerateArtistEntity()
        {
            Entity artistEntity = new Entity()
            {
                Name = "Artists"
            };

            var con = MPDConnection.GetInstance();

            if (con.IsConnected())
            {
                List <MPDArtist> artistList = con.GetArtists();
                foreach (var artist in artistList)
                {
                    artistEntity.AddEntry(
                        new EntityEntry(artist.ArtistName, new string[] { artist.ArtistName }));
                }
            }

            return(artistEntity);
        }
Exemple #23
0
        private void PlaylistUpdate()
        {
            var con = MPDConnection.GetInstance();

            if (con.IsConnected())
            {
                var albumList = MPDConnection.GetInstance().GetAlbums();
                if (albumList.Count == 0)
                {
                    Device.BeginInvokeOnMainThread(async() =>
                    {
                        await DisplayAlert("No Albums", "No Album found", "ok");
                    });
                }
                else
                {
                    Device.BeginInvokeOnMainThread(() =>
                    {
                        AlbumListView.ItemsSource = albumList;
                    });
                }
            }
        }