예제 #1
0
 public Cancion(Cancion c)
 {
     titulo   = c.titulo;
     album    = c.album;
     duracion = c.duracion;
     Bonus    = c.Bonus;
 }
예제 #2
0
        public agregarCancion(ref Cancion c) //editar
        {
            Log.Instance.ImprimirMensaje("Editando canción", TipoMensaje.Info);
            Stopwatch crono = Stopwatch.StartNew();

            InitializeComponent();
            cual = -1;
            esLarga.Hide();
            cancion            = c;
            editar             = true;
            cancionlarga       = null;
            tituloTextBox.Text = c.titulo;
            minTextBox.Text    = c.duracion.Minutes.ToString();
            secsTextBox.Text   = c.duracion.Seconds.ToString();
            if (c is CancionLarga)
            {
                minTextBox.Enabled  = false;
                secsTextBox.Enabled = false;
            }
            esLarga.Hide();
            labelNumPartes.Hide();
            textBoxNumPartes.Hide();
            ConsejoEsBonus = new ToolTip();
            ConsejoEsBonus.SetToolTip(checkBoxBonus, Programa.textosLocal.GetString("esBonusAyuda"));
            if (c.Bonus)
            {
                checkBoxBonus.Checked = true;
            }
            np = 0;
            ponerTextos();
            crono.Stop();
            Log.Instance.ImprimirMensaje("Cargado", TipoMensaje.Correcto, crono);
        }
예제 #3
0
 public void agregarCancion(Cancion c)
 {
     canciones.Add(c);
     if (!c.Bonus)
     {
         duracion += c.duracion;
     }
     numCanciones = (short)canciones.Count;
 }
예제 #4
0
 public void agregarCancion(Cancion c, int cual)
 {
     canciones.Insert(cual, c);
     if (!c.Bonus)
     {
         duracion += c.duracion;
     }
     numCanciones = (short)canciones.Count;
 }
예제 #5
0
 public void BorrarCancion(Cancion cancion)
 {
     if (!cancion.Bonus)
     {
         duracion -= cancion.duracion;
     }
     canciones.Remove(cancion);
     numCanciones--;
 }
예제 #6
0
        public void ReproducirLista(ListaReproduccion lr)
        {
            ListaReproduccion        = lr;
            ListaReproduccionPuntero = 0;
            Cancion c = lr[ListaReproduccionPuntero];

            lrui = new ListaReproduccionUI(lr);
            ReproducirCancion(c);
        }
예제 #7
0
        private void ListaReproduccionUI_DragDrop(object sender, DragEventArgs e)
        {
            Cancion c = null;

            if ((c = (Cancion)e.Data.GetData(typeof(Cancion))) != null)
            {
                listaReproduccion.AgregarCancion(c);
                Refrescar();
            }
        }
예제 #8
0
        private void vistaCanciones_MouseDoubleClick(object sender, MouseEventArgs e) //editar cancion
        {
            Log.Instance.ImprimirMensaje("Editando canción", TipoMensaje.Info);
            String         text           = vistaCanciones.SelectedItems[0].Text;
            Cancion        cancionAEditar = albumAEditar.DevolverCancion(text);
            agregarCancion editarCancion  = new agregarCancion(ref cancionAEditar);

            editarCancion.ShowDialog();
            cargarVista();
            Log.Instance.ImprimirMensaje("Guardado correctamente", TipoMensaje.Correcto);
        }
예제 #9
0
        private void Shuffle(List <Cancion> list)
        {
            Random rng = new Random();
            int    n   = list.Count;

            while (n > 1)
            {
                n--;
                int     k     = rng.Next(n + 1);
                Cancion valor = list[k];
                list[k] = list[n];
                list[n] = valor;
            }
        }
예제 #10
0
        private void setBonusToolStripMenuItem_Click(object sender, EventArgs e)
        {
            foreach (ListViewItem item in vistaCanciones.SelectedItems)
            {
                Cancion c = albumAVisualizar.canciones[Convert.ToInt32(item.SubItems[0].Text) - 1];
                albumAVisualizar.duracion -= c.duracion;
                c.Bonus = true;
            }
            visualizarAlbum vNew = new visualizarAlbum(ref albumAVisualizar);

            Dispose();
            Close();
            vNew.Show();
        }
예제 #11
0
        public Cancion DevolverCancion(string t)
        {
            Cancion c = null;
            int     i = 0;

            c = canciones[i];
            while (t != canciones[i].titulo)
            {
                i++;
                c = canciones[i];
            }

            return(c);
        }
예제 #12
0
        private void vistaCanciones_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            int     n = Convert.ToInt32(vistaCanciones.SelectedItems[0].SubItems[0].Text);
            Cancion c = albumAVisualizar.getCancion(n - 1);

            if (c is CancionLarga cl)
            {
                string infoDetallada = "";
                for (int i = 0; i < cl.Partes.Count; i++)
                {
                    infoDetallada += cl.GetNumeroRomano(i + 1) + ". ";
                    infoDetallada += cl.Partes[i].titulo + " - " + cl.Partes[i].duracion;
                    infoDetallada += Environment.NewLine;
                }
                MessageBox.Show(infoDetallada);
            }
        }
예제 #13
0
 private void agregarCancion_KeyDown(object sender, KeyEventArgs e)
 {
     try
     {
         min = Convert.ToInt32(minTextBox.Text);
         sec = Convert.ToInt32(secsTextBox.Text);
         t   = tituloTextBox.Text;
         Cancion c = new Cancion(t, new TimeSpan(0, min, sec), ref album);
         album.agregarCancion(c, cual);
         Log.Instance.ImprimirMensaje(t + " añadido correctamente", TipoMensaje.Correcto);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "", MessageBoxButtons.OK);
         Log.Instance.ImprimirMensaje(ex.Message, TipoMensaje.Error);
     }
     Close();
 }
예제 #14
0
 private void vistaCanciones_KeyDown(object sender, KeyEventArgs e)
 {
     if (e.KeyCode == Keys.Delete)
     {
         ListViewItem[] itemsborrar = new ListViewItem[vistaCanciones.SelectedItems.Count];
         int            i           = 0;
         foreach (ListViewItem item in vistaCanciones.SelectedItems)
         {
             Cancion cancionABorrar = albumAEditar.DevolverCancion(item.Text);
             albumAEditar.BorrarCancion(cancionABorrar);
             itemsborrar[i] = item;
             i++;
         }
         foreach (var item in itemsborrar)
         {
             vistaCanciones.Items.Remove(item);
         }
     }
 }
예제 #15
0
        private void clickDerechoConfig_Opening(object sender, System.ComponentModel.CancelEventArgs e)
        {
            defusionarToolStripMenuItem.Visible = true;
            fusionarToolStripMenuItem.Visible   = true;
            int     i         = vistaCanciones.SelectedItems[0].Index;
            Cancion seleccion = albumAVisualizar.getCancion(i);

            if (vistaCanciones.SelectedItems.Count > 1)
            {
                defusionarToolStripMenuItem.Visible = false;
            }
            if (!(seleccion is CancionLarga))
            {
                defusionarToolStripMenuItem.Visible = false;
            }
            else
            {
                fusionarToolStripMenuItem.Visible = false;
            }
        }
예제 #16
0
        private void vistaCanciones_SelectedIndexChanged_1(object sender, EventArgs e)
        {
            TimeSpan seleccion = new TimeSpan();

            foreach (ListViewItem cancion in vistaCanciones.SelectedItems)
            {
                if (CDaVisualizar != null && CDaVisualizar.Discos.Length > 1)
                {
                    Cancion can = albumAVisualizar.getCancion(cancion.SubItems[1].Text);
                    seleccion += can.duracion;
                }
                else
                {
                    int     c   = Convert.ToInt32(cancion.SubItems[0].Text); c--;
                    Cancion can = albumAVisualizar.getCancion(c);
                    seleccion += can.duracion;
                }
            }
            duracionSeleccionada.Text = Programa.textosLocal.GetString("dur_total") + ": " + seleccion.ToString();
        }
예제 #17
0
 private void reproducirspotifyToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (!string.IsNullOrEmpty(albumAVisualizar.IdSpotify))
     {
         Cancion seleccion = albumAVisualizar.getCancion(vistaCanciones.SelectedItems[0].Index);
         if (!(seleccion is CancionLarga))
         {
             SpotifyAPI.Web.Models.ErrorResponse err = Programa._spotify.ReproducirCancion(albumAVisualizar.IdSpotify, vistaCanciones.SelectedItems[0].Index);
             if (err.Error != null && err.Error.Message != null)
             {
                 MessageBox.Show(err.Error.Message);
             }
         }
         else
         {
             CancionLarga cl = (CancionLarga)seleccion;
             SpotifyAPI.Web.Models.ErrorResponse err = Programa._spotify.ReproducirCancion(albumAVisualizar.IdSpotify, cl);
             if (err.Error != null && err.Error.Message != null)
             {
                 MessageBox.Show(err.Error.Message);
             }
         }
     }
 }
예제 #18
0
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                if (!larga && cancionlarga == null) //caso normal
                {
                    min   = Convert.ToInt32(minTextBox.Text);
                    sec   = Convert.ToInt32(secsTextBox.Text);
                    t     = tituloTextBox.Text;
                    bonus = checkBoxBonus.Checked;
                    if (editar) //si edita
                    {
                        cancion.titulo   = t;
                        cancion.duracion = new TimeSpan(0, min, sec);
                        cancion.Bonus    = bonus;
                        DialogResult     = DialogResult.OK;
                        Close();
                    }
                    else
                    {
                        Cancion c = new Cancion(t, new TimeSpan(0, min, sec), ref album, bonus);
                        if (cual != 0)
                        {
                            album.agregarCancion(c, cual);
                        }
                        else
                        {
                            album.agregarCancion(c);
                        }
                        DialogResult = DialogResult.OK;
                        Close();
                    }
                }
                else if (larga && cancionlarga == null) //caso de que creemos una cancion larga, sin partes
                {
                    t   = tituloTextBox.Text;
                    min = sec = 0;
                    np  = Convert.ToInt32(textBoxNumPartes.Text);
                    CancionLarga cl = new CancionLarga(t, ref album);
                    album.agregarCancion(cl, cual);
                    for (int i = 0; i < np; i++)
                    {
                        agregarCancion addParte = new agregarCancion(ref cl, i + 1, ref album);
                        addParte.ShowDialog();
                        if (addParte.DialogResult == DialogResult.Cancel)
                        {
                            break;
                        }
                        else
                        {
                            DialogResult = DialogResult.OK;
                        }
                    }
                }
                else if (cancionlarga != null && larga == true)//parte de una cancion normal
                {
                    t   = tituloTextBox.Text;
                    min = Convert.ToInt32(minTextBox.Text);
                    sec = Convert.ToInt32(secsTextBox.Text);
                    TimeSpan dur = new TimeSpan(0, min, sec);
                    np = 0;
                    Cancion p = new Cancion(t, dur, ref album);
                    cancionlarga.addParte(ref p);
                    DialogResult    = DialogResult.OK;
                    album.duracion += dur;
                }
                Dispose();
            }
            catch (NullReferenceException ex)
            {
                Log.Instance.ImprimirMensaje(ex.Message, TipoMensaje.Error);

                MessageBox.Show(Programa.textosLocal.GetString("error_vacio1"));
            }

            catch (FormatException ex)
            {
                Log.Instance.ImprimirMensaje(ex.Message, TipoMensaje.Error);

                MessageBox.Show(Programa.textosLocal.GetString("error_formato"));
                //throw;
            }
        }
예제 #19
0
 public void addParte(ref Cancion p)
 {
     Partes.Add(p);
     duracion += p.duracion;
 }
예제 #20
0
        public static void cargarAlbumesCSV(string fichero)
        {
            Log.Instance.ImprimirMensaje("Cargando álbumes CSV almacenados en " + fichero, TipoMensaje.Info, "cargarAlbumesLegacy(string)");
            Stopwatch crono = Stopwatch.StartNew();
            //cargando CSV a lo bestia
            int lineaC = 1;

            using (StreamReader lector = new StreamReader(fichero))
            {
                string linea;
                while (!lector.EndOfStream)
                {
                    linea = lector.ReadLine();
                    while (linea == "")
                    {
                        linea = lector.ReadLine();
                        lineaC++;
                    }

                    if (linea == null)
                    {
                        continue;                //si no hay nada tu sigue, que hemos llegado al final del fichero, después del nulo porque siempre al terminar un disco pongo línea nueva.
                    }
                    string[] datos = linea.Split(';');
                    if (datos.Length != 8)
                    {
                        Log.Instance.ImprimirMensaje("Error cargando el álbum. Revise la línea " + lineaC + " del fichero " + fichero, TipoMensaje.Error);
                        MessageBox.Show("Error cargando el álbum. Revise la línea " + lineaC + " del fichero " + fichero, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        Environment.Exit(-1);
                    }
                    short  nC  = 0;
                    int    gen = findGenero(datos[4]);
                    Genero g   = Programa.generos[gen];
                    if (string.IsNullOrEmpty(datos[5]))
                    {
                        datos[5] = string.Empty;
                    }
                    Album a = null;
                    try
                    {
                        nC = Convert.ToInt16(datos[3]);
                        a  = new Album(g, datos[0], datos[1], Convert.ToInt16(datos[2]), Convert.ToInt16(datos[3]), datos[5]);
                    }
                    catch (FormatException e)
                    {
                        Log.Instance.ImprimirMensaje("Error cargando el álbum. Revise la línea " + lineaC + " del fichero " + fichero, TipoMensaje.Error);
                        MessageBox.Show("Error cargando el álbum. Revise la línea " + lineaC + " del fichero " + fichero, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        Environment.Exit(-1);
                    }
                    if (!string.IsNullOrEmpty(datos[6]))
                    {
                        a.SetSpotifyID(datos[6]);
                    }
                    if (!string.IsNullOrEmpty(datos[7]))
                    {
                        a.DirectorioSonido = datos[7];
                    }
                    bool exito = false;
                    for (int i = 0; i < nC; i++)
                    {
                        exito = false;
                        linea = lector.ReadLine();
                        lineaC++;
                        if (string.IsNullOrEmpty(linea))
                        {
                            /*System.Windows.Forms.MessageBox.Show("mensajeError"+Environment.NewLine
                             + a.nombre + " - " + a.nombre + Environment.NewLine
                             + "saltarAlSiguiente", "error", System.Windows.Forms.MessageBoxButtons.OK);*/
                            break; //no sigue cargando el álbum
                        }
                        else
                        {
                            try
                            {
                                exito = true;
                                string[] datosCancion = linea.Split(';');
                                if (datosCancion.Length == 3)
                                {
                                    byte    bonus = Convert.ToByte(datosCancion[2]);
                                    Cancion c     = new Cancion(datosCancion[0], TimeSpan.FromSeconds(Convert.ToInt32(datosCancion[1])), ref a, Convert.ToBoolean(bonus));
                                    a.agregarCancion(c, i);
                                }
                                else
                                {
                                    CancionLarga cl = new CancionLarga(datosCancion[0], ref a);
                                    int          np = Convert.ToInt32(datosCancion[1]);
                                    for (int j = 0; j < np; j++)
                                    {
                                        linea = lector.ReadLine();
                                        lineaC++;
                                        datosCancion = linea.Split(';');
                                        Cancion c = new Cancion(datosCancion[0], TimeSpan.FromSeconds(Convert.ToInt32(datosCancion[1])), ref a);
                                        cl.addParte(ref c);
                                    }
                                    a.agregarCancion(cl, i);
                                }
                            }
                            catch (FormatException e)
                            {
                                Log.Instance.ImprimirMensaje("Error cargando el álbum. Revise la línea " + lineaC + " del fichero " + fichero, TipoMensaje.Error);
                                MessageBox.Show("Error cargando el álbum. Revise la línea " + lineaC + " del fichero " + fichero, "", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                Environment.Exit(-1);
                            }
                        }
                    }
                    if (miColeccion.estaEnColeccion(a))
                    {
                        exito = false; //pues ya está repetido.
                        Log.Instance.ImprimirMensaje("Álbum repetido -> " + a.artista + " - " + a.nombre, TipoMensaje.Advertencia);
                    }
                    if (exito)
                    {
                        miColeccion.agregarAlbum(ref a);
                    }
                    a.LevantarBorrado();
                    lineaC++;
                }
            }
            crono.Stop();
            Log.Instance.ImprimirMensaje("Cargados " + miColeccion.albumes.Count + " álbumes correctamente", TipoMensaje.Correcto, crono);
            refrescarVista();
        }
예제 #21
0
        private void vistaCanciones_ItemDrag(object sender, ItemDragEventArgs e)
        {
            Cancion cancion = albumAVisualizar.getCancion(vistaCanciones.SelectedItems[0].Index);

            vistaCanciones.DoDragDrop(cancion, DragDropEffects.Copy);
        }
예제 #22
0
        private void reproducirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Cancion cancionAReproducir = albumAVisualizar.getCancion(vistaCanciones.SelectedItems[0].Index);

            Reproductor.Instancia.ReproducirCancion(cancionAReproducir);
        }
예제 #23
0
 public void AgregarCancion(Cancion c)
 {
     Canciones.Add(c);
 }
예제 #24
0
 public void QuitarCancion(Cancion c)
 {
     canciones.Remove(c);
     numCanciones--;
     duracion -= c.duracion;
 }