View Javadoc

1   /***
2    *     Ambient - A music player for the Android platform
3    Copyright (C) 2007 Martin Vysny
4    
5    This program is free software: you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation, either version 3 of the License, or
8    (at your option) any later version.
9    
10   This program is distributed in the hope that it will be useful,
11   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13   GNU General Public License for more details.
14  
15   You should have received a copy of the GNU General Public License
16   along with this program.  If not, see <http://www.gnu.org/licenses/>.
17   */
18  package sk.baka.ambient.library;
19  
20  import java.util.List;
21  
22  import sk.baka.ambient.collection.TrackMetadataBean;
23  import sk.baka.ambient.lrc.lyrdb.LyrdbTrack;
24  
25  /***
26   * Listens for library events.
27   * 
28   * @author Martin Vysny
29   */
30  public interface ILibraryListener {
31  	/***
32  	 * Informs that the file rescan is complete and the database is updated.
33  	 * Invoked in Scanner thread.
34  	 * 
35  	 * @param updateStarted
36  	 *            if <code>true</code> then the library update just started. If
37  	 *            <code>false</code> then the update finished.
38  	 * @param interrupted
39  	 *            if <code>true</code> then the scan was interrupted.
40  	 * @param userNotified
41  	 *            if <code>true</code> then the user is already notified about
42  	 *            the library being updated.
43  	 */
44  	void libraryUpdate(final boolean updateStarted, final boolean interrupted,
45  			final boolean userNotified);
46  
47  	/***
48  	 * A cover for given track has been successfully downloaded. Note that if
49  	 * the cache size is set to a very small value the image may already be
50  	 * purged from the cache. To avoid this either set a sensible cache size
51  	 * value, e.g. 128kb, or turn off the image downloading by setting offline
52  	 * mode to <code>true</code>.
53  	 * 
54  	 * @param track
55  	 *            the track.
56  	 */
57  	void coverLoaded(final TrackMetadataBean track);
58  
59  	/***
60  	 * A lyrics event. Either lyrics for given track has been successfully
61  	 * downloaded or user needs to select one from given lyrics list.
62  	 * 
63  	 * @param track
64  	 *            the track.
65  	 * @param lyrics
66  	 *            if non-<code>null</code> then user needs to select the correct
67  	 *            karaoke from this list. The list may be empty - in this case
68  	 *            no karaoke files are available. If <code>null</code> then the
69  	 *            karaoke file is available locally. If non-<code>null</code>
70  	 *            and is empty then no karaoke files are available.
71  	 */
72  	void lyricsLoaded(final TrackMetadataBean track,
73  			final List<LyrdbTrack> lyrics);
74  }