Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- import random
- class Track(object):
- """ Representa un sólo elemento de música """
- def __init__(self, artist, title, length, genre):
- self.artist = artist
- self.title = title
- self.length = length
- self.genre = genre
- self.album = None
- def __str__(self):
- return "%s - %s || %d || %s" % (self.title, self.artist, self.length, self.genre)
- class Album(object):
- """ Representa un CD con varias canciones """
- def __init__(self, title, artist, genre, year):
- self.title = title
- self.artist = artist
- self.genre = genre
- self.year = year
- self.tracklist = []
- def addTrack(self, artist, title, length, genre=None):
- """ Añade una canción al álbum y copia el género del mismo """
- actualGenre = self.genre if genre == None else genre
- newTrack = Track(artist, title, length, actualGenre)
- # Añade la canción al álbum mismo (self)
- newTrack.album = self
- self.tracklist.append(newTrack)
- def __str__(self):
- if len(self.tracklist) == 0:
- return "CD vacío"
- else:
- return "%s - %s - %s" % (self.artist, self.title, self.genre)
- class Ipod(object):
- """ Representa el reproductor de música de Apple, iPod """
- def __init__(self):
- #La canción que se está reproduciendo
- self.nowPlayingIndex = 0
- #La lista de canciones programadas para su reproducción
- self.playback = []
- #Modo de reproducción por default
- self.playMode = "default"
- #Alta de elementos al Playback -----------------------------
- def addAlbumToPlayback(self, album):
- """ Añade un álbum completo a la lista de reproducción """
- for i in album.tracklist:
- self.playback.append(i)
- def addTrackToPlayback(self, track):
- """ Añade una sola canción a la lista de reproducción """
- self.playback.append(track)
- def clearPlayback(self):
- """ Borra la lista de reproducción """
- self.playback[:] = []
- return "Se ha borrado la lista de reproducción"
- #Controles de Reproducción ---------------------------------
- def prevTrack(self):
- """ Reproduce la canción anterior en el Playback """
- proposedNewIndex = self.nowPlayingIndex - 1
- if (proposedNewIndex > 0):
- self.nowPlayingIndex = proposedNewIndex
- elif self.playMode == "repeat":
- self.nowPlayingIndex = len(self.playback)
- def nowPlaying(self):
- """ Muestra la reproducción actual """
- return str(self.playback[self.nowPlayingIndex])
- def nextTrack(self):
- """ Reproduce la siguiente canción en el Playback """
- proposedNewIndex = self.nowPlayingIndex + 1
- if (proposedNewIndex < len(self.playback)):
- self.nowPlayingIndex = proposedNewIndex
- elif self.playMode == "repeat":
- self.nowPlayingIndex = 0
- def shuffle(self):
- """ Reordena la lista de reproducción de manera aleatoria"""
- random.shuffle(self.playback)
- return "Se ha reordenado de manera aleatoria el Playback"
- def changePlayMode(self):
- """ Cambia el modo de reproducción del Playback """
- if self.playMode == "default":
- self.playMode = "repeat"
- else:
- self.playMode = "default"
- return "Se ha cambiado el modo de reproduccion a " + self.playMode
- #Creación del iPod -----------------------------------------
- ipod = Ipod()
- #Creación de un álbum --------------------------------------
- album_therootofallevil = Album("The Root of all Evil", "Arch Enemy", "Melodic Death Metal", 2005)
- #Se agregan las canciones al álbum "The Root of all Evil" --
- album_therootofallevil.addTrack("Arch Enemy", "The Root of All Evil", 200)
- album_therootofallevil.addTrack("Arch Enemy", "Beast of Man", 300)
- album_therootofallevil.addTrack("Arch Enemy", "The Immortal", 150)
- album_therootofallevil.addTrack("Arch Enemy", "Diva Satanica", 300)
- album_therootofallevil.addTrack("Arch Enemy", "Demonic Science", 450)
- album_therootofallevil.addTrack("Arch Enemy", "Bury me an Angel", 230)
- album_therootofallevil.addTrack("Arch Enemy", "Dead Inside", 280)
- album_therootofallevil.addTrack("Arch Enemy", "Dark Insanity", 300)
- album_therootofallevil.addTrack("Arch Enemy", "Pilgrim", 160)
- album_therootofallevil.addTrack("Arch Enemy", "Demoniality", 440)
- album_therootofallevil.addTrack("Arch Enemy", "Transmigration Macabre", 280)
- album_therootofallevil.addTrack("Arch Enemy", "Silverwing", 500)
- album_therootofallevil.addTrack("Arch Enemy", "Bridge of Destiny", 350)
- #Agreguemos nomás por huevear
- track_snowbound = Track("Arch Enemy", "Snow Bound", 100, "Melodic Death Metal")
- ipod.addAlbumToPlayback(album_therootofallevil)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement