annotate read_cache.h @ 400:3daa43270d2c src

Cosmetic change only - os2_open os2_open() doesn't look like the rest of the code. And since we just updated it, it probably should look like the rest of the code.
author erik
date Sun, 06 Sep 2009 15:26:43 +0000
parents 0a5a6f03b029
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 285
diff changeset
1 /*
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
2 * Copyright (C) 2000 Rich Wareham <richwareham@users.sourceforge.net>
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 285
diff changeset
3 *
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
4 * This file is part of libdvdnav, a DVD navigation library.
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 285
diff changeset
5 *
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
6 * libdvdnav is free software; you can redistribute it and/or modify
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
7 * it under the terms of the GNU General Public License as published by
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
8 * the Free Software Foundation; either version 2 of the License, or
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
9 * (at your option) any later version.
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 285
diff changeset
10 *
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
11 * libdvdnav is distributed in the hope that it will be useful,
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
14 * GNU General Public License for more details.
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 285
diff changeset
15 *
389
d3c273ced49c Use consistent license headers everywhere: Fix wrong FSF address.
diego
parents: 388
diff changeset
16 * You should have received a copy of the GNU General Public License along
d3c273ced49c Use consistent license headers everywhere: Fix wrong FSF address.
diego
parents: 388
diff changeset
17 * with libdvdnav; if not, write to the Free Software Foundation, Inc.,
d3c273ced49c Use consistent license headers everywhere: Fix wrong FSF address.
diego
parents: 388
diff changeset
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
19 */
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
20
391
d232a96ac231 Use consistent multiple inclusion guards everywhere:
diego
parents: 389
diff changeset
21 #ifndef LIBDVDNAV_READ_CACHE_H
d232a96ac231 Use consistent multiple inclusion guards everywhere:
diego
parents: 389
diff changeset
22 #define LIBDVDNAV_READ_CACHE_H
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
23
34
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
24 /* Opaque cache type -- defined in dvdnav_internal.h */
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
25 /* typedef struct read_cache_s read_cache_t; */
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
26
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
27 /* EXPERIMENTAL: Setting the following to 1 will use an experimental multi-threaded
388
90ca650854e0 Remove all trailing whitespace,
rathann
parents: 285
diff changeset
28 * read-ahead cache.
34
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
29 */
60
30995ad032cf use new memcopy'less read ahead cache
mroi
parents: 41
diff changeset
30 #define _MULTITHREAD_ 0
34
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
31
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
32 /* Constructor/destructors */
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
33 read_cache_t *dvdnav_read_cache_new(dvdnav_t* dvd_self);
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
34 void dvdnav_read_cache_free(read_cache_t* self);
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
35
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
36 /* This function MUST be called whenever self->file changes. */
34
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
37 void dvdnav_read_cache_clear(read_cache_t *self);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
38 /* This function is called just after reading the NAV packet. */
34
1f29402ef2ef 'Objectified' the read-ahead cache in preparation to implement a 'proper' threaded cache a-la that recommended in the DVD Demystified book.
richwareham
parents: 0
diff changeset
39 void dvdnav_pre_cache_blocks(read_cache_t *self, int sector, size_t block_count);
60
30995ad032cf use new memcopy'less read ahead cache
mroi
parents: 41
diff changeset
40 /* This function will do the cache read.
30995ad032cf use new memcopy'less read ahead cache
mroi
parents: 41
diff changeset
41 * The buffer handed in must be malloced to take one dvd block.
30995ad032cf use new memcopy'less read ahead cache
mroi
parents: 41
diff changeset
42 * On a cache hit, a different buffer will be returned though.
30995ad032cf use new memcopy'less read ahead cache
mroi
parents: 41
diff changeset
43 * Those buffers must _never_ be freed. */
30995ad032cf use new memcopy'less read ahead cache
mroi
parents: 41
diff changeset
44 int dvdnav_read_cache_block(read_cache_t *self, int sector, size_t block_count, uint8_t **buf);
0
3ddf0eaece51 Initial revision
richwareham
parents:
diff changeset
45
391
d232a96ac231 Use consistent multiple inclusion guards everywhere:
diego
parents: 389
diff changeset
46 #endif /* LIBDVDNAV_READ_CACHE_H */