View Javadoc

1   package org.musicontroller.songselection;
2   
3   import java.util.List;
4   
5   import org.musicontroller.core.Song;
6   import org.musicontroller.security.IUser;
7   
8   public interface SongSelector {
9   	
10  	/**
11  	 * Returns one Song, which is selected using the Advanced Random algorithm.
12  	 * @param candidates The list of Songs that are requested. If this parameter
13  	 *        is null, the result is null. If the set of candidates is empty the
14  	 *        result is null.
15  	 * @param lpc The collection of the last songs played
16  	 * @param user The User
17  	 * @return The Song that is best suitable to be played
18  	 */
19  	public Song selectSong(List<Song> candidates, LastPlayedContainer lpc, IUser user);
20  	
21  	/**
22  	 * Informs the SongSelector that a song of a certain Band has been played.
23  	 * @param bandid
24  	 */
25  	public void addBandPlay(long bandid);
26  	
27  	/**
28  	 * Informs the SongSelector that a song of a certain Band has been skipped.
29  	 * @param bandid
30  	 */
31  	public void addBandSkip(long bandid);
32  	
33  	/**
34  	 * Informs the SongSelector that a song of a certain Keyword has been played.
35  	 * @param keywordid
36  	 */
37  	public void addKeywordPlay(long keywordid);
38  
39  	/**
40  	 * Informs the SongSelector that a song of a certain Keyword has been skipped.
41  	 * @param keywordid
42  	 */
43  	public void addKeywordSkip(long keywordid);
44  }