annotate src/libaudtag/tag_module.c @ 4887:0ddbd0025174 default tip

added libaudtag. (not used yet.)
author Yoshiki Yazawa <yaz@honeyplanet.jp>
date Wed, 05 May 2010 18:26:06 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4887
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
1 /*
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
2 * Copyright 2009 Paula Stanciu
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
3 *
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
4 * This file is part of Audacious.
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
5 *
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
6 * Audacious is free software: you can redistribute it and/or modify it under
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
7 * the terms of the GNU General Public License as published by the Free Software
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
8 * Foundation, version 3 of the License.
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
9 *
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
10 * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
11 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
12 * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
13 *
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
14 * You should have received a copy of the GNU General Public License along with
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
15 * Audacious. If not, see <http://www.gnu.org/licenses/>.
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
16 *
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
17 * The Audacious team does not consider modular code linking to Audacious or
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
18 * using our public API to be a derived work.
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
19 */
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
20
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
21 #include <glib.h>
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
22 #include <audlegacy/tuple.h>
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
23 #include <audlegacy/vfs.h>
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
24 #include "util.h"
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
25 #include "tag_module.h"
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
26 #include "wma/module.h"
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
27 #include "id3/id3v1.h"
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
28 #include "id3/id3v2.h"
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
29 #include "ape/ape.h"
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
30 #include "aac/aac.h"
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
31
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
32 void init_tag_modules(void)
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
33 {
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
34 mowgli_node_add((void *)&wma, mowgli_node_create(), &tag_modules);
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
35 mowgli_node_add((void *)&id3v2, mowgli_node_create(), &tag_modules);
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
36 mowgli_node_add((void *)&ape, mowgli_node_create(), &tag_modules);
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
37 mowgli_node_add((void *)&id3v1, mowgli_node_create(), &tag_modules);
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
38 /*
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
39 mowgli_node_add((void *)&aac, mowgli_node_create(), &tag_modules);
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
40 */
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
41 }
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
42
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
43 tag_module_t *find_tag_module(VFSFile * fd)
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
44 {
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
45 mowgli_node_t *mod, *tmod;
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
46 MOWGLI_LIST_FOREACH_SAFE(mod, tmod, tag_modules.head)
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
47 {
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
48 vfs_fseek(fd, 0, SEEK_SET);
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
49 if (((tag_module_t *) (mod->data))->can_handle_file(fd))
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
50 return (tag_module_t *) (mod->data);
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
51 }
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
52
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
53 AUDDBG("no module found\n");
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
54 return NULL;
0ddbd0025174 added libaudtag. (not used yet.)
Yoshiki Yazawa <yaz@honeyplanet.jp>
parents:
diff changeset
55 }