annotate src/audacious/ui_jumptotrack_cache.h @ 4291:ca077e01ed3a

Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
author Jussi Judin <jjudin+audacious@iki.fi>
date Mon, 18 Feb 2008 20:44:40 -0600
parents
children 2eee464379dc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4291
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
1 /* Audacious - Cross-platform multimedia player
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
2 * Copyright (C) 2008 Audacious development team.
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
3 *
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
4 * This program is free software; you can redistribute it and/or modify
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
5 * it under the terms of the GNU General Public License as published by
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
6 * the Free Software Foundation; under version 3 of the License.
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
7 *
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
8 * This program is distributed in the hope that it will be useful,
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
11 * GNU General Public License for more details.
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
12 *
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
13 * You should have received a copy of the GNU General Public License
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
14 * along with this program. If not, see <http://www.gnu.org/licenses>.
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
15 *
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
16 * The Audacious team does not consider modular code linking to
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
17 * Audacious or using our public API to be a derived work.
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
18 */
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
19
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
20 #ifndef UI_JUMPTOTRACK_CACHE_H
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
21 #define UI_JUMPTOTRACK_CACHE_H
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
22
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
23 #include <glib.h>
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
24
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
25 #include "playlist.h"
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
26
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
27 typedef struct _JumpToTrackCache JumpToTrackCache;
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
28 typedef struct _JumpToTrackEntry JumpToTrackEntry;
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
29
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
30 struct _JumpToTrackCache
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
31 {
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
32 gulong playlist_serial;
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
33 GHashTable* keywords;
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
34 };
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
35
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
36 struct _JumpToTrackEntry
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
37 {
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
38 PlaylistEntry* entry;
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
39 // We need to manually keep information about current playlist position.
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
40 gulong playlist_position;
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
41 };
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
42
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
43 extern JumpToTrackCache* ui_jump_to_track_cache_new(void);
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
44 extern const GArray* ui_jump_to_track_cache_search(JumpToTrackCache* cache, const Playlist* playlist, const gchar* keyword);
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
45 extern void ui_jump_to_track_cache_free(JumpToTrackCache* cache);
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
46
ca077e01ed3a Add caching to Jump to Track feature to speed up searches. (Bugzilla #180)
Jussi Judin <jjudin+audacious@iki.fi>
parents:
diff changeset
47 #endif