view vixm/playlist.py @ 15:ae3451bedeb6

Implemented playlist searching
author Josef "Jeff" Sipek <jeffpc@josefsipek.net>
date Sat, 19 Aug 2006 23:53:56 -0400
parents 50584a5c300e
children dfcf1a46fc56
line wrap: on
line source

# a playlist definition

import xmms, re

LIST_PRIO	= 0
LIST_DEFAULT	= 1

class playlist:
	def __init__(self, allowrandom=False):
		self.__list = []
		self.__allowrand = allowrandom # allow randomization of this list
	
	def enqueue(self, song):
		""" Append a song to the list """
		self.__list.append(song)
	
	def dequeue(self, song):
		""" Remove a song from the list """
		self.__list.remove(song)
	
	def pop(self):
		""" Pop the next song """
		return self.__list.pop(0)

	def __getitem__(self, i):
		""" Get item at position i """
		return self.__list[i]

	def __len__(self):
		""" Return the length of the playlist """
		return len(self.__list)

	def search(self, regexp):
		""" Yield all the songs matching regexp """
		for song in self.__list:
			if re.search(regexp, str(song), re.IGNORECASE):
				yield song

	def index(self, song):
		""" Returns the index of the first occurence of song """
		return self.__list.index(song)