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
19 package sk.baka.ambient.library;
20
21 import sk.baka.ambient.collection.TrackOriginEnum;
22
23 /***
24 * Scans for files in a background thread. When
25 * {@link Thread#isInterrupted() interrupted}, it should end ASAP. The
26 * {@link Runnable#run()} may throw {@link RuntimeException}.
27 *
28 * @author Martin Vysny
29 */
30 public interface IFileScanner extends Runnable {
31 /***
32 * Initializes the scanner.
33 *
34 * @param library
35 * the library instance.
36 * @param genreCache
37 * the genre cache.
38 */
39 void init(final Library library, final GenreCache genreCache);
40
41 /***
42 * Returns the storage type.
43 *
44 * @return storage type, must not be <code>null</code>.
45 */
46 TrackOriginEnum getOrigin();
47
48 /***
49 * Invoked when the scan finishes. Checks if the scanner already provided
50 * the user with some kind of notification.
51 *
52 * @return <code>true</code> if user was notified about the scan being
53 * finished, <code>false</code> otherwise.
54 */
55 boolean isUserNotified();
56 }