You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.3 KiB
Python

# Copyright 2015 Adafruit Industries.
# Author: Tony DiCola
# License: GNU GPLv2, see LICENSE.txt
import random
class Playlist(object):
"""Representation of a playlist of movies."""
def __init__(self, movies, is_random):
"""Create a playlist from the provided list of movies."""
self._movies = movies
self._index = None
self._is_random = is_random
def get_next(self):
"""Get the next movie in the playlist. Will loop to start of playlist
after reaching end.
"""
# Check if no movies are in the playlist and return nothing.
if len(self._movies) == 0:
return None
# Start Random movie
if self._is_random:
self._index = random.randrange(0, len(self._movies))
else:
# Start at the first movie and increment through them in order.
if self._index is None:
self._index = 0
else:
self._index += 1
# Wrap around to the start after finishing.
if self._index >= len(self._movies):
self._index = 0
return self._movies[self._index]
def length(self):
"""Return the number of movies in the playlist."""
return len(self._movies)