public PlaylistElement GetPlaylistElementFromTrack(FullTrack track) { var playlistElement = new PlaylistElement { Track = track.Name, TrackId = track.Id }; var ids = track.Artists.Select(a => a.Id).ToList(); var artists = GetSeveralArtists(ids); var artistsList = new List <string>(); var genresList = new List <string>(); if (artists.Artists != null) { foreach (var fullArtist in artists.Artists) { artistsList.Add(fullArtist.Name); genresList.AddRange(fullArtist.Genres); } } artistsList.Sort(); genresList.Sort(); var artistList = track.Artists.Select(x => x.Name).ToList(); artistList.Sort(); playlistElement.Artists = artistsList.Any() ? new List <string>(artistsList) : new List <string>(); playlistElement.Genres = genresList.Any() ? new List <string>(genresList) : new List <string>(); return(playlistElement); }
public PlaylistElement(PlaylistElement pe) { Cover = new CStatic(pe.Cover); Background = new CStatic(pe.Background); Text1 = new CText(pe.Text1); SelectSlide = new CSelectSlide(pe.SelectSlide); Content = pe.Content; }
private static bool IsBackgroundFile(PlaylistElement element) { foreach (PlaylistElement elements in _BGMusicFileNames) { if (elements.MusicFilePath == element.MusicFilePath) { return(true); } } return(false); }
void ok(object sender, EventArgs e) { if (query == "Fromremote") { if (listaslocales.Count > 0) { var listilla = new List <PlaylistElement>(); var texto = File.ReadAllText(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/gr3playerplaylist/" + listaslocales[playlistidx].Name); var nombreses = texto.Split('$')[0].Split(';').ToList(); var links = texto.Split('$')[1].Split(';').ToList(); var listaelementos = new List <PlaylistElement>(); for (int i = 0; i < nombreses.Count; i++) { if (nombreses[i].Trim() != "" || links[i].Trim() != "") { var elemento = new PlaylistElement() { Name = nombreses[i], Link = links[i] }; listaelementos.Add(elemento); } } listaslocales[playlistidx].MediaElements = listaelementos; Mainmenu.gettearinstancia() .clientelalistas .Client .Send(Encoding.UTF8.GetBytes(query + "__==__==__" + JsonConvert.SerializeObject(listaslocales[playlistidx]))); } else { Toast.MakeText(this, "La lista esta vacia", ToastLength.Long).Show(); } } else { if (listasremotas.Count > 0) { Mainmenu.gettearinstancia() .clientelalistas .Client .Send(Encoding.UTF8.GetBytes(query + "__==__==__" + JsonConvert.SerializeObject(listasremotas[playlistidx]))); } else { Toast.MakeText(this, "La lista esta vacia", ToastLength.Long).Show(); } } }
public static void Next() { if (_AllFileNames.Count > 0) { if (_PreviousMusicIndex == _PreviousFileNames.Count - 1 || _PreviousFileNames.Count == 0) //We are not currently in the previous list { Stop(); if (_NotPlayedFileNames.Count == 0) { _NotPlayedFileNames.AddRange(_AllFileNames); } _CurrentPlaylistElement = _NotPlayedFileNames[CGame.Rand.Next(_NotPlayedFileNames.Count)]; _NotPlayedFileNames.Remove(_CurrentPlaylistElement); _PreviousFileNames.Add(_CurrentPlaylistElement); _PreviousMusicIndex = _PreviousFileNames.Count - 1; } else if (_PreviousFileNames.Count > 0) //We are in the previous list { Stop(); _PreviousMusicIndex++; _CurrentPlaylistElement = _PreviousFileNames[_PreviousMusicIndex]; } _CurrentMusicStream = CSound.Load(_CurrentPlaylistElement.MusicFilePath); CSound.SetStreamVolumeMax(_CurrentMusicStream, CConfig.BackgroundMusicVolume); //Seek to #Start-Tag, if found if (_CurrentPlaylistElement.Start != 0f) { CSound.SetPosition(_CurrentMusicStream, _CurrentPlaylistElement.Start); } if (_VideoEnabled) { LoadVideo(); } CSound.SetStreamVolume(_CurrentMusicStream, 0f); Play(); } else { Stop(); } }
public static void Stop() { if (!_Playing) { return; } if (_VideoEnabled && _Video != -1) { CVideo.VdClose(_Video); CDraw.RemoveTexture(ref _CurrentVideoTexture); _Video = -1; } CSound.FadeAndStop(_CurrentMusicStream, 0f, CSettings.BackgroundMusicFadeTime); _CurrentPlaylistElement = new PlaylistElement(); _Playing = false; }
public static void Previous() { if (_PreviousFileNames.Count > 0 || _PreviousMusicIndex >= 0) { float pos = CSound.GetPosition(_CurrentMusicStream); if (CSound.GetPosition(_CurrentMusicStream) >= 1.5f) { CSound.SetPosition(_CurrentMusicStream, 0); if (_VideoEnabled && _Video != -1) { CVideo.VdSkip(_Video, 0f, _CurrentPlaylistElement.VideoGap); } } else { Stop(); _PreviousMusicIndex--; if (_PreviousMusicIndex < 0) { _PreviousMusicIndex = 0; //No previous songs left, so play the first } _CurrentPlaylistElement = _PreviousFileNames[_PreviousMusicIndex]; _CurrentMusicStream = CSound.Load(_CurrentPlaylistElement.MusicFilePath); CSound.SetStreamVolumeMax(_CurrentMusicStream, CConfig.BackgroundMusicVolume); if (_VideoEnabled) { LoadVideo(); } CSound.SetStreamVolume(_CurrentMusicStream, 0f); Play(); } } else if (_CurrentMusicStream != -1) { CSound.SetPosition(_CurrentMusicStream, 0); if (_VideoEnabled && _Video != -1) { CVideo.VdSkip(_Video, 0f, _CurrentPlaylistElement.VideoGap); } } }
public static void Stop() { if (!_Playing) return; if (_VideoEnabled && _Video != -1) { CVideo.VdClose(_Video); CDraw.RemoveTexture(ref _CurrentVideoTexture); _Video = -1; } CSound.FadeAndStop(_CurrentMusicStream, 0f, CSettings.BackgroundMusicFadeTime); _CurrentPlaylistElement = new PlaylistElement(); _Playing = false; }
private void UpdatePlaylistElementList(Playlist playlist, IEnumerable <PlaylistUpdateViewModel> playlistElementListTO) { var playlistElementList = playlist.PlaylistElements; var index = 0; foreach (var playlistElementTO in playlistElementListTO) { int?playlistId; int?songId; if (playlistElementTO.Name != null) { playlistId = playlistElementTO.Id; songId = null; } else { playlistId = null; songId = playlistElementTO.Id; } PlaylistElement playlistElement; lock (obj) { _dbContext.Entry(playlist).Reload(); _dbContext.Entry(playlist).Collection(pl => pl.PlaylistElements).Load(); if (index >= playlist.PlaylistElements.Count()) { playlistElement = new PlaylistElement { ParentPlaylistId = playlist.Id, Position = index, PlaylistId = playlistId, SongId = songId }; _dbContext.Add(playlistElement); _dbContext.SaveChanges(); } else { playlistElement = playlist.PlaylistElements.Single(pe => pe.Position == index); playlistElement.SongId = songId; playlistElement.PlaylistId = playlistId; _dbContext.SaveChanges(); } } ++index; } if (playlistElementListTO.Count() < playlist.PlaylistElements.Count()) { index = playlist.PlaylistElements.Count() - 1; while (playlistElementListTO.Count() < playlist.PlaylistElements.Count()) { lock (obj) { var playlistElement = playlist.PlaylistElements.SingleOrDefault(pe => pe.Position == index); if (playlistElement != null) { _dbContext.Remove(playlistElement); _dbContext.SaveChanges(); } --index; _dbContext.Entry(playlist).Reload(); _dbContext.Entry(playlist).Collection(pl => pl.PlaylistElements).Load(); } } } }
public bool HandleMouse(MouseEvent MouseEvent) { _Interactions.HandleMouse(MouseEvent); if (CHelper.IsInBounds(CompleteRect, MouseEvent) && Visible) { //Scroll if (MouseEvent.Wheel > 0) { if (PlaylistElements.Count + Offset + MouseEvent.Wheel <= PlaylistElementContents.Count) { Offset += MouseEvent.Wheel; Update(); } return true; } else if (MouseEvent.Wheel < 0) { if (Offset + MouseEvent.Wheel >= 0) { Offset += MouseEvent.Wheel; Update(); } return true; } bool hover_set = false; for (int i = 0; i < PlaylistElements.Count; i++) { //Hover for playlist-element if (PlaylistElementContents.Count - 1 >= i && CHelper.IsInBounds(PlaylistElements[i].Background.Rect, MouseEvent)) { hover_set = true; CurrentPlaylistElement = i; _Interactions.SetInteractionToSelectSlide(PlaylistElements[CurrentPlaylistElement].SelectSlide); _Interactions.ProcessMouseMove(MouseEvent.X, MouseEvent.Y); } //Delete Entry with RB if (CHelper.IsInBounds(PlaylistElements[i].Background.Rect, MouseEvent) && MouseEvent.RB && PlaylistElements[i].Content != -1) { CPlaylists.Playlists[ActivePlaylistID].DeleteSong(PlaylistElements[i].Content); UpdatePlaylist(); return true; } } if (!hover_set) { CurrentPlaylistElement = -1; } switch (_EditMode) { //Normal mode case EEditMode.None: //LB actions if (MouseEvent.LB) { if (CurrentPlaylistElement != -1) { CPlaylists.Playlists[ActivePlaylistID].Songs[CurrentPlaylistElement + Offset].GameMode = PlaylistElementContents[CurrentPlaylistElement + Offset].Modes[PlaylistElements[CurrentPlaylistElement].SelectSlide.Selection]; UpdatePlaylist(); } if (_Theme.ButtonPlaylistClose.Selected) { ClosePlaylist(); return true; } else if (_Theme.ButtonPlaylistSing.Selected) { StartPlaylistSongs(); return true; } else if (_Theme.ButtonPlaylistSave.Selected) { CPlaylists.SavePlaylist(ActivePlaylistID); return true; } else if (_Theme.ButtonPlaylistDelete.Selected) { CPlaylists.DeletePlaylist(ActivePlaylistID); ClosePlaylist(); return true; } else if (_Theme.ButtonPlaylistName.Selected) { _EditMode = EEditMode.PlaylistName; _Theme.ButtonPlaylistName.EditMode = true; return true; } } //Change order with holding LB if (MouseEvent.LBH && CurrentPlaylistElement != -1 && PlaylistElementContents.Count > 0 && DragAndDropSongID == -1) { ChangeOrderSource = CurrentPlaylistElement + Offset; //Update of Drag/Drop-Texture if (ChangeOrderSource >= PlaylistElementContents.Count) return true; ChangeOrderElement = new PlaylistElement(PlaylistElements[CurrentPlaylistElement]); ChangeOrderElement.Background.Rect.Z = CSettings.zNear; ChangeOrderElement.Cover.Rect.Z = CSettings.zNear; ChangeOrderElement.SelectSlide.Rect.Z = CSettings.zNear; ChangeOrderElement.SelectSlide.RectArrowLeft.Z = CSettings.zNear; ChangeOrderElement.SelectSlide.RectArrowRight.Z = CSettings.zNear; ChangeOrderElement.Text1.Z = CSettings.zNear; ChangeOrderElement.Background.Texture = CTheme.GetSkinTexture(_Theme.TextureBackgroundName); ChangeOrderElement.Background.Color = BackgroundColor; OldMousePosX = MouseEvent.X; OldMousePosY = MouseEvent.Y; _EditMode = EEditMode.ChangeOrder; } if (!MouseEvent.LBH && DragAndDropSongID != -1) { EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL; CSong song = CSongs.GetSong(DragAndDropSongID); if (song != null) { if (song.IsDuet) gm = EGameMode.TR_GAMEMODE_DUET; if (CurrentPlaylistElement != -1) { CPlaylists.Playlists[ActivePlaylistID].SongInsert(CurrentPlaylistElement + Offset, DragAndDropSongID, gm); UpdatePlaylist(); } else { if (MouseEvent.Y < PlaylistElements[0].Background.Rect.Y && Offset == 0) { CPlaylists.Playlists[ActivePlaylistID].SongInsert(0, DragAndDropSongID, gm); UpdatePlaylist(); } else { if (PlaylistElements.Count + Offset >= PlaylistElementContents.Count) { float min = 0f; for (int i = PlaylistElements.Count - 1; i >= 0; i--) { if (PlaylistElements[i].SelectSlide.Visible) { min = PlaylistElements[i].SelectSlide.Rect.Y + PlaylistElements[i].SelectSlide.Rect.H; break; } } if (MouseEvent.Y > min) { CPlaylists.Playlists[ActivePlaylistID].AddSong(DragAndDropSongID, gm); UpdatePlaylist(); ScrollToBottom(); } } } DragAndDropSongID = -1; UpdatePlaylist(); } } } break; case EEditMode.PlaylistName: _Interactions.SetInteractionToButton(_Theme.ButtonPlaylistName); CurrentPlaylistElement = -1; if (MouseEvent.LB) { if (_Theme.ButtonPlaylistName.Selected) { CPlaylists.Playlists[ActivePlaylistID].PlaylistName = _Theme.ButtonPlaylistName.Text.Text; CPlaylists.Playlists[ActivePlaylistID].SavePlaylist(); _EditMode = EEditMode.None; return true; } } else if (MouseEvent.RB) { if (_Theme.ButtonPlaylistName.Selected) { _Theme.ButtonPlaylistName.Text.Text = CPlaylists.Playlists[ActivePlaylistID].PlaylistName; _EditMode = EEditMode.None; _Theme.ButtonPlaylistName.EditMode = false; return true; } } break; case EEditMode.ChangeOrder: //Actions according to playlist-element //Update coords for Drag/Drop-Texture ChangeOrderElement.MouseMove(MouseEvent.X, MouseEvent.Y, OldMousePosX, OldMousePosY); OldMousePosX = MouseEvent.X; OldMousePosY = MouseEvent.Y; if (!MouseEvent.LBH) { if (CurrentPlaylistElement != -1 && CurrentPlaylistElement + Offset != ChangeOrderSource) { CPlaylists.Playlists[ActivePlaylistID].SongMove(ChangeOrderSource, CurrentPlaylistElement + Offset); UpdatePlaylist(); } else if (CurrentPlaylistElement == -1) { if (MouseEvent.Y < PlaylistElements[0].Background.Rect.Y && Offset == 0) { CPlaylists.Playlists[ActivePlaylistID].SongMove(ChangeOrderSource, 0); } else { if (PlaylistElements.Count + Offset >= PlaylistElementContents.Count) { float min = 0f; for (int i = PlaylistElements.Count - 1; i >= 0; i--) { if (PlaylistElements[i].SelectSlide.Visible) { min = PlaylistElements[i].SelectSlide.Rect.Y + PlaylistElements[i].SelectSlide.Rect.H; break; } } if (MouseEvent.Y > min) { CPlaylists.Playlists[ActivePlaylistID].SongMove(ChangeOrderSource, PlaylistElementContents.Count - 1); } } } UpdatePlaylist(); } _EditMode = EEditMode.None; } break; } } return false; }
public static void Previous() { if (_PreviousFileNames.Count > 0 || _PreviousMusicIndex >= 0) { float pos = CSound.GetPosition(_CurrentMusicStream); if (CSound.GetPosition(_CurrentMusicStream) >= 1.5f) { CSound.SetPosition(_CurrentMusicStream, 0); if (_VideoEnabled && _Video != -1) CVideo.VdSkip(_Video, 0f, _CurrentPlaylistElement.VideoGap); } else { Stop(); _PreviousMusicIndex--; if (_PreviousMusicIndex < 0) _PreviousMusicIndex = 0; //No previous songs left, so play the first _CurrentPlaylistElement = _PreviousFileNames[_PreviousMusicIndex]; _CurrentMusicStream = CSound.Load(_CurrentPlaylistElement.MusicFilePath); CSound.SetStreamVolumeMax(_CurrentMusicStream, CConfig.BackgroundMusicVolume); if (_VideoEnabled) LoadVideo(); CSound.SetStreamVolume(_CurrentMusicStream, 0f); Play(); } } else if (_CurrentMusicStream != -1) { CSound.SetPosition(_CurrentMusicStream, 0); if (_VideoEnabled && _Video != -1) CVideo.VdSkip(_Video, 0f, _CurrentPlaylistElement.VideoGap); } }
private void PrepareList() { PlaylistElements.Clear(); for (int i = 0; i < Math.Floor(Rect.H / _Theme.EntryHeight); i++) { PlaylistElement en = new PlaylistElement(); en.Background = new CStatic(_Theme.TextureBackgroundName, BackgroundColor, new SRectF(Rect.X, Rect.Y + (i * _Theme.EntryHeight), Rect.W, _Theme.EntryHeight, Rect.Z)); en.Cover = new CStatic(_Theme.StaticCover); en.Cover.Rect.Y += Rect.Y + (i * _Theme.EntryHeight); en.Cover.Rect.X += Rect.X; en.Text1 = new CText(_Theme.Text1); en.Text1.X += Rect.X; en.Text1.Y += Rect.Y + (i * _Theme.EntryHeight); en.SelectSlide = new CSelectSlide(_Theme.SelectSlideGameMode); en.SelectSlide.Rect.X += Rect.X; en.SelectSlide.Rect.Y += Rect.Y + (i * _Theme.EntryHeight); en.SelectSlide.RectArrowLeft.X += Rect.X; en.SelectSlide.RectArrowLeft.Y += Rect.Y + (i * _Theme.EntryHeight); en.SelectSlide.RectArrowRight.X += Rect.X; en.SelectSlide.RectArrowRight.Y += Rect.Y + (i * _Theme.EntryHeight); en.Content = -1; PlaylistElements.Add(en); _Interactions.AddSelectSlide(en.SelectSlide); _Interactions.AddText(en.Text1); _Interactions.AddStatic(en.Background); _Interactions.AddStatic(en.Cover); } }
private void AssertEqual(PlaylistElement e1, PlaylistElement e2) { Assert.AreEqual(e1.Title, e2.Title); Assert.AreEqual(e1.Duration, e2.Duration); Assert.AreEqual(e1.Uri.ToString(), e2.Uri.ToString()); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.dialogolistas); var inst = Reproducirlistaact.gettearinstancia(); ImageView fondo = FindViewById <ImageView>(Resource.Id.fondo1); ImageView imgaccion = FindViewById <ImageView>(Resource.Id.imagenaccion); TextView textoaccion = FindViewById <TextView>(Resource.Id.textView3); TextView textoheader = FindViewById <TextView>(Resource.Id.textView1); LinearLayout botonreproducir = FindViewById <LinearLayout>(Resource.Id.imageView3); LinearLayout botonaccion = FindViewById <LinearLayout>(Resource.Id.imageView2); LinearLayout botoninfo = FindViewById <LinearLayout>(Resource.Id.imageView5); this.SetFinishOnTouchOutside(true); textoheader.Text = Intent.GetStringExtra("nombrelista"); Glide.With(this) .Load("http://i.ytimg.com/vi/" + Intent.GetStringExtra("portada").Split('=')[1] + "/mqdefault.jpg") .Into(fondo); var query = Intent.GetStringExtra("querry"); if (query == "Fromlocal") { imgaccion.SetBackgroundResource(Resource.Drawable.downloadbutton); textoaccion.Text = "Guardar lista"; } else { imgaccion.SetBackgroundResource(Resource.Drawable.upload); textoaccion.Text = "Enviar lista"; } var arch = File.ReadAllText(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/gr3playerplaylist/" + inst.listaslocales[inst.playlistidx].Name); var counter = arch.Split('$')[1].Split(';').ToList(); if (counter.Count > 0) { if (counter[0].Trim() == "") { this.Finish(); Toast.MakeText(this, "La lista esta vacia", ToastLength.Long).Show(); } } else { this.Finish(); Toast.MakeText(this, "La lista esta vacia", ToastLength.Long).Show(); } botonaccion.Click += delegate { new Thread(() => { if (query == "Fromlocal") { Mainmenu.gettearinstancia().playlistreceived = false; RunOnUiThread(() => { new Android.Support.V7.App.AlertDialog.Builder(this) .SetTitle("Advertencia") .SetMessage("Desea guardar la lista de reproduccion remota: " + Intent.GetStringExtra("nombrelista") + "??\n NOTA:\nSi hay una lista con este mismo nombre sera sustituida por esta") .SetPositiveButton("Si", (aa, aaa) => { new Thread(() => { var elementos = inst.listasremotas[inst.playlistidx]; var nombreses = string.Join(";", elementos.MediaElements.Select(axx => axx.Name).ToArray()) + ";"; var linkeses = string.Join(";", elementos.MediaElements.Select(axx => axx.Link).ToArray()) + ";"; var archi = File.CreateText(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/gr3playerplaylist/" + Intent.GetStringExtra("nombrelista")); archi.Write(nombreses + "$" + linkeses); archi.Close(); RunOnUiThread(() => Toast.MakeText(this, "Lista guardada exitosamente", ToastLength.Long).Show()); }).Start(); }) .SetNegativeButton("No", (aa, ff) => { }) .Create() .Show(); }); } else { var listilla = new List <PlaylistElement>(); var texto = File.ReadAllText(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/gr3playerplaylist/" + inst.listaslocales[inst.playlistidx].Name); var nombreses = texto.Split('$')[0].Split(';').ToList(); var links = texto.Split('$')[1].Split(';').ToList(); var listaelementos = new List <PlaylistElement>(); for (int i = 0; i < nombreses.Count; i++) { if (nombreses[i].Trim() != "" && links[i].Trim() != "") { var elemento = new PlaylistElement() { Name = nombreses[i], Link = links[i] }; listaelementos.Add(elemento); } } inst.listaslocales[inst.playlistidx].MediaElements = listaelementos; Mainmenu.gettearinstancia() .clientelalistas .Client .Send(Encoding.UTF8.GetBytes("Receive__==__==__" + JsonConvert.SerializeObject(inst.listaslocales[inst.playlistidx]))); RunOnUiThread(() => Toast.MakeText(this, "Lista enviada exitosamente", ToastLength.Long).Show()); RunOnUiThread(() => this.Finish()); } }).Start(); }; botoninfo.Click += delegate { new Thread(() => { if (query == "Fromremote") { if (inst.listaslocales.Count > 0) { var listilla = new List <PlaylistElement>(); var texto = File.ReadAllText(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/gr3playerplaylist/" + inst.listaslocales[inst.playlistidx].Name); var nombreses = texto.Split('$')[0].Split(';').ToList(); var links = texto.Split('$')[1].Split(';').ToList(); var listaelementos = new List <PlaylistElement>(); for (int i = 0; i < nombreses.Count; i++) { if (nombreses[i].Trim() != "" || links[i].Trim() != "") { var elemento = new PlaylistElement() { Name = nombreses[i], Link = links[i] }; listaelementos.Add(elemento); } } RunOnUiThread(() => { ListView lista = new ListView(this); adapterlistaremoto adapt = new adapterlistaremoto(this, listaelementos.Select(ax => ax.Name).ToList(), listaelementos.Select(ax => ax.Link).ToList()); lista.Adapter = adapt; new AlertDialog.Builder(this) .SetTitle("Elementos de esta lista de reproducción") .SetView(lista).SetPositiveButton("Entendido!", (dd, fgf) => { }) .Create() .Show(); }); } } else { var elementos = inst.listasremotas[inst.playlistidx]; RunOnUiThread(() => { ListView lista = new ListView(this); adapterlistaremoto adapt = new adapterlistaremoto(this, elementos.MediaElements.Select(ax => ax.Name).ToList(), elementos.MediaElements.Select(ax => ax.Link).ToList()); lista.Adapter = adapt; new AlertDialog.Builder(this) .SetTitle("Elementos de esta lista de reproducción") .SetView(lista).SetPositiveButton("Entendido!", (dd, fgf) => { }) .Create() .Show(); }); } }).Start(); }; botonreproducir.Click += delegate { if (query == "Fromremote") { if (inst.listaslocales.Count > 0) { var listilla = new List <PlaylistElement>(); var texto = File.ReadAllText(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath + "/gr3playerplaylist/" + inst.listaslocales[inst.playlistidx].Name); var nombreses = texto.Split('$')[0].Split(';').ToList(); var links = texto.Split('$')[1].Split(';').ToList(); var listaelementos = new List <PlaylistElement>(); for (int i = 0; i < nombreses.Count; i++) { if (nombreses[i].Trim() != "" && links[i].Trim() != "") { var elemento = new PlaylistElement() { Name = nombreses[i], Link = links[i] }; listaelementos.Add(elemento); } } inst.listaslocales[inst.playlistidx].MediaElements = listaelementos; Mainmenu.gettearinstancia() .clientelalistas .Client .Send(Encoding.UTF8.GetBytes(query + "__==__==__" + JsonConvert.SerializeObject(inst.listaslocales[inst.playlistidx]))); } else { Toast.MakeText(this, "No hay listas de reproduccion", ToastLength.Long).Show(); } } else { if (inst.listasremotas.Count > 0) { Mainmenu.gettearinstancia() .clientelalistas .Client .Send(Encoding.UTF8.GetBytes(query + "__==__==__" + JsonConvert.SerializeObject(inst.listasremotas[inst.playlistidx]))); } else { Toast.MakeText(this, "La lista esta vacia", ToastLength.Long).Show(); } } this.Finish(); }; // Create your application here }
public static void Next() { if (_AllFileNames.Count > 0) { if (_PreviousMusicIndex == _PreviousFileNames.Count - 1 || _PreviousFileNames.Count == 0) //We are not currently in the previous list { Stop(); if (_NotPlayedFileNames.Count == 0) _NotPlayedFileNames.AddRange(_AllFileNames); _CurrentPlaylistElement = _NotPlayedFileNames[CGame.Rand.Next(_NotPlayedFileNames.Count)]; _NotPlayedFileNames.Remove(_CurrentPlaylistElement); _PreviousFileNames.Add(_CurrentPlaylistElement); _PreviousMusicIndex = _PreviousFileNames.Count - 1; } else if(_PreviousFileNames.Count > 0) //We are in the previous list { Stop(); _PreviousMusicIndex++; _CurrentPlaylistElement = _PreviousFileNames[_PreviousMusicIndex]; } _CurrentMusicStream = CSound.Load(_CurrentPlaylistElement.MusicFilePath); CSound.SetStreamVolumeMax(_CurrentMusicStream, CConfig.BackgroundMusicVolume); //Seek to #Start-Tag, if found if (_CurrentPlaylistElement.Start != 0f) CSound.SetPosition(_CurrentMusicStream, _CurrentPlaylistElement.Start); if (_VideoEnabled) LoadVideo(); CSound.SetStreamVolume(_CurrentMusicStream, 0f); Play(); } else Stop(); }
public static Dictionary <string, PlaylistElement> AddToFavouriteList(Activity context, Dictionary <string, PlaylistElement> list, PlaylistElement elements) { if (list.ContainsKey(elements.Link)) { list.Remove(elements.Link); context.RunOnUiThread(() => { Toast.MakeText(context, "Elemento eliminado de favoritos", ToastLength.Long).Show(); }); } else { list.Add(elements.Link, elements); context.RunOnUiThread(() => { Toast.MakeText(context, "Elemento agregado a favoritos. Ahora aparecera en su pantalla de inicio", ToastLength.Long).Show(); }); } var arch = File.CreateText(Constants.CachePath + "/favourites.json"); arch.Write(JsonConvert.SerializeObject(list)); arch.Close(); return(list); }
private static bool IsBackgroundFile(PlaylistElement element) { foreach (PlaylistElement elements in _BGMusicFileNames) { if (elements.MusicFilePath == element.MusicFilePath) return true; } return false; }