Mercurial > audlegacy
annotate src/audacious/tuple.h @ 4195:2281da647da9
beggining of GdkPixbuf transition
author | Tomasz Mon <desowin@gmail.com> |
---|---|
date | Sat, 19 Jan 2008 06:03:03 +0100 |
parents | 9e24c8746d99 |
children | 5a0f5ef1de61 |
rev | line source |
---|---|
3278 | 1 /* |
2 * Audacious | |
3 * Copyright (c) 2006-2007 Audacious team | |
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; under version 3 of the License. | |
8 * | |
9 * This program is distributed in the hope that it will be useful, | |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 * GNU General Public License for more details. | |
13 * | |
14 * You should have received a copy of the GNU General Public License | |
15 * along with this program. If not, see <http://www.gnu.org/licenses>. | |
16 * | |
17 * The Audacious team does not consider modular code linking to | |
18 * Audacious or using our public API to be a derived work. | |
19 */ | |
20 | |
21 #ifndef __AUDACIOUS_TUPLE_H__ | |
22 #define __AUDACIOUS_TUPLE_H__ | |
23 | |
24 #include <glib.h> | |
25 #include <mowgli.h> | |
26 | |
3489
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
27 |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
28 enum { |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
29 FIELD_ARTIST = 0, |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
30 FIELD_TITLE, |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
31 FIELD_ALBUM, |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
32 FIELD_COMMENT, |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
33 FIELD_GENRE, |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
34 |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
35 FIELD_TRACK, |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
36 FIELD_TRACK_NUMBER, |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
37 FIELD_LENGTH, |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
38 FIELD_YEAR, |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
39 FIELD_QUALITY, |
3409
86dafe2300f7
Added Tuplez compiler (not used yet, though) and some related changes in
Matti Hamalainen <ccr@tnsp.org>
parents:
3328
diff
changeset
|
40 |
3489
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
41 FIELD_CODEC, |
4089
9e24c8746d99
- introduce new API functions uri_to_display_basename() and uri_to_display_dirname(). each function derives utf8 encoded basename or dirname from given uri respectively.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
4061
diff
changeset
|
42 FIELD_FILE_NAME, /* This is always in UTF-8 */ |
9e24c8746d99
- introduce new API functions uri_to_display_basename() and uri_to_display_dirname(). each function derives utf8 encoded basename or dirname from given uri respectively.
Yoshiki Yazawa <yaz@cc.rim.or.jp>
parents:
4061
diff
changeset
|
43 FIELD_FILE_PATH, /* This is always in UTF-8 */ |
3489
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
44 FIELD_FILE_EXT, |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
45 FIELD_SONG_ARTIST, |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
46 |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
47 FIELD_MTIME, |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
48 FIELD_FORMATTER, |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
49 FIELD_PERFORMER, |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
50 FIELD_COPYRIGHT, |
3497
6f34cc4217b9
Added "date" field to basic fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3489
diff
changeset
|
51 FIELD_DATE, |
3489
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
52 |
3550
6b0be1d088e6
- subtune handling is now done in playlist core, using tuple fields subsong-id and subsong-num (requires subtune-able plugins to be updated)
Giacomo Lozito <james@develia.org>
parents:
3498
diff
changeset
|
53 FIELD_SUBSONG_ID, |
6b0be1d088e6
- subtune handling is now done in playlist core, using tuple fields subsong-id and subsong-num (requires subtune-able plugins to be updated)
Giacomo Lozito <james@develia.org>
parents:
3498
diff
changeset
|
54 FIELD_SUBSONG_NUM, |
4009
ba6258a39662
icon, codec and quality info added to file info box. Added new tuple field FIELD_MIMETYPE used for icon resolving
Eugene Zagidullin <e.asphyx@gmail.com>
parents:
3633
diff
changeset
|
55 FIELD_MIMETYPE, |
4061
450581e58761
added new tuple field FIELD_BITRATE
Eugene Zagidullin <e.asphyx@gmail.com>
parents:
4009
diff
changeset
|
56 FIELD_BITRATE, |
3550
6b0be1d088e6
- subtune handling is now done in playlist core, using tuple fields subsong-id and subsong-num (requires subtune-able plugins to be updated)
Giacomo Lozito <james@develia.org>
parents:
3498
diff
changeset
|
57 |
3489
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
58 /* special field, must always be last */ |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
59 FIELD_LAST |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
60 }; |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
61 |
3278 | 62 typedef enum { |
63 TUPLE_STRING, | |
64 TUPLE_INT, | |
65 TUPLE_UNKNOWN | |
66 } TupleValueType; | |
67 | |
3409
86dafe2300f7
Added Tuplez compiler (not used yet, though) and some related changes in
Matti Hamalainen <ccr@tnsp.org>
parents:
3328
diff
changeset
|
68 typedef struct { |
3498
9fcb90613e4f
Added types to base tuples.
Matti Hamalainen <ccr@tnsp.org>
parents:
3497
diff
changeset
|
69 gchar *name; |
9fcb90613e4f
Added types to base tuples.
Matti Hamalainen <ccr@tnsp.org>
parents:
3497
diff
changeset
|
70 TupleValueType type; |
9fcb90613e4f
Added types to base tuples.
Matti Hamalainen <ccr@tnsp.org>
parents:
3497
diff
changeset
|
71 } TupleBasicType; |
9fcb90613e4f
Added types to base tuples.
Matti Hamalainen <ccr@tnsp.org>
parents:
3497
diff
changeset
|
72 |
9fcb90613e4f
Added types to base tuples.
Matti Hamalainen <ccr@tnsp.org>
parents:
3497
diff
changeset
|
73 extern const TupleBasicType tuple_fields[FIELD_LAST]; |
9fcb90613e4f
Added types to base tuples.
Matti Hamalainen <ccr@tnsp.org>
parents:
3497
diff
changeset
|
74 |
9fcb90613e4f
Added types to base tuples.
Matti Hamalainen <ccr@tnsp.org>
parents:
3497
diff
changeset
|
75 typedef struct { |
3409
86dafe2300f7
Added Tuplez compiler (not used yet, though) and some related changes in
Matti Hamalainen <ccr@tnsp.org>
parents:
3328
diff
changeset
|
76 TupleValueType type; |
86dafe2300f7
Added Tuplez compiler (not used yet, though) and some related changes in
Matti Hamalainen <ccr@tnsp.org>
parents:
3328
diff
changeset
|
77 union { |
86dafe2300f7
Added Tuplez compiler (not used yet, though) and some related changes in
Matti Hamalainen <ccr@tnsp.org>
parents:
3328
diff
changeset
|
78 gchar *string; |
86dafe2300f7
Added Tuplez compiler (not used yet, though) and some related changes in
Matti Hamalainen <ccr@tnsp.org>
parents:
3328
diff
changeset
|
79 gint integer; |
86dafe2300f7
Added Tuplez compiler (not used yet, though) and some related changes in
Matti Hamalainen <ccr@tnsp.org>
parents:
3328
diff
changeset
|
80 } value; |
86dafe2300f7
Added Tuplez compiler (not used yet, though) and some related changes in
Matti Hamalainen <ccr@tnsp.org>
parents:
3328
diff
changeset
|
81 } TupleValue; |
86dafe2300f7
Added Tuplez compiler (not used yet, though) and some related changes in
Matti Hamalainen <ccr@tnsp.org>
parents:
3328
diff
changeset
|
82 |
3489
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
83 typedef struct _Tuple { |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
84 mowgli_object_t parent; |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
85 mowgli_dictionary_t *dict; |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
86 TupleValue *values[FIELD_LAST]; |
3633
8c4633438785
Implement selective adding of subtunes.
Matti Hamalainen <ccr@tnsp.org>
parents:
3568
diff
changeset
|
87 gint nsubtunes; |
8c4633438785
Implement selective adding of subtunes.
Matti Hamalainen <ccr@tnsp.org>
parents:
3568
diff
changeset
|
88 gint *subtunes; |
3489
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
89 } Tuple; |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
90 |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
91 |
3278 | 92 Tuple *tuple_new(void); |
3304
00286cde2485
Make filename a const
Christian Birchinger <joker@netswarm.net>
parents:
3301
diff
changeset
|
93 Tuple *tuple_new_from_filename(const gchar *filename); |
3489
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
94 gboolean tuple_associate_string(Tuple *tuple, const gint nfield, const gchar *field, const gchar *string); |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
95 gboolean tuple_associate_int(Tuple *tuple, const gint nfield, const gchar *field, gint integer); |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
96 void tuple_disassociate(Tuple *tuple, const gint nfield, const gchar *field); |
3409
86dafe2300f7
Added Tuplez compiler (not used yet, though) and some related changes in
Matti Hamalainen <ccr@tnsp.org>
parents:
3328
diff
changeset
|
97 void tuple_disassociate_now(TupleValue *value); |
3489
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
98 TupleValueType tuple_get_value_type(Tuple *tuple, const gint nfield, const gchar *field); |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
99 const gchar *tuple_get_string(Tuple *tuple, const gint nfield, const gchar *field); |
9580bb3e58fa
Tuple handling API changed to include support for "hardcoded" fields.
Matti Hamalainen <ccr@tnsp.org>
parents:
3409
diff
changeset
|
100 gint tuple_get_int(Tuple *tuple, const gint nfield, const gchar *field); |
3328
e20c1f720153
defined a tuple_free for tuple namespace consistency
Giacomo Lozito <james@develia.org>
parents:
3304
diff
changeset
|
101 #define tuple_free(x) mowgli_object_unref(x); |
3278 | 102 |
103 #endif |