id3lib 3.8.3

- Main Page
- Namespaces
- Classes
- Files

- File List
- File Members

c_wrapper.cpp
Go to the documentation of this file.
1 // $Id: c_wrapper.cpp,v 1.22 2002/09/21 17:23:32 t1mpy Exp $
2
3 // id3lib: a C++ library for creating and manipulating id3v1/v2 tags
4 // Copyright 1999, 2000 Scott Thomas Haug
5 // Copyright 2002 Thijmen Klok (thijmen@id3lib.org)
6
7 // This library is free software; you can redistribute it and/or modify it
8 // under the terms of the GNU Library General Public License as published by
9 // the Free Software Foundation; either version 2 of the License, or (at your
10 // option) any later version.
11 //
12 // This library is distributed in the hope that it will be useful, but WITHOUT
13 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
15 // License for more details.
16 //
17 // You should have received a copy of the GNU Library General Public License
18 // along with this library; if not, write to the Free Software Foundation,
19 // Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20
21 // The id3lib authors encourage improvements and optimisations to be sent to
22 // the id3lib coordinator. Please see the README file for details on where to
23 // send such submissions. See the AUTHORS file for a list of people who have
24 // contributed to id3lib. See the ChangeLog file for a list of changes to
25 // id3lib. These files are distributed with id3lib at
26 // http://download.sourceforge.net/id3lib/
27
28 //#include <string.h>
29 #include "id3.h"
30 #include "tag.h"
31 #include "field.h"
32
33 #if defined HAVE_CONFIG_H
34 #include <config.h>
35 #endif
36
37 #ifdef __cplusplus
38 extern "C"
39 {
40 #endif /* __cplusplus */
41
42 // tag wrappers
43
44 #define ID3_CATCH(code) try { code; } catch (...) { }
45
46 ID3_C_EXPORT ID3Tag* CCONV
47 ID3Tag_New(void)
48 {
49 ID3_Tag* tag = NULL;
50 ID3_CATCH(tag = new ID3_Tag);
51 return reinterpret_cast<ID3Tag *>(tag);
52 }
53
54
55 ID3_C_EXPORT void CCONV
56 ID3Tag_Delete(ID3Tag *tag)
57 {
58 if (tag)
59 {
60 ID3_CATCH(delete reinterpret_cast<ID3_Tag*>(tag));
61 }
62 }
63
64
65 ID3_C_EXPORT void CCONV
66 ID3Tag_Clear(ID3Tag *tag)
67 {
68 if (tag)
69 {
70 ID3_CATCH(reinterpret_cast<ID3_Tag*>(tag)->Clear());
71 }
72 }
73
74
75 ID3_C_EXPORT bool CCONV
76 ID3Tag_HasChanged(const ID3Tag *tag)
77 {
78 bool changed = false;
79
80 if (tag)
81 {
82 ID3_CATCH(changed = reinterpret_cast<const ID3_Tag * >(tag)->HasChanged());
83 }
84
85 return changed;
86 }
87
88
89 ID3_C_EXPORT void CCONV
90 ID3Tag_SetUnsync(ID3Tag *tag, bool unsync)
91 {
92 if (tag)
93 {
94 ID3_CATCH(reinterpret_cast<ID3_Tag *>(tag)->SetUnsync(unsync));
95 }
96 }
97
98
99 ID3_C_EXPORT void CCONV
100 ID3Tag_SetExtendedHeader(ID3Tag *tag, bool ext)
101 {
102 if (tag)
103 {
104 ID3_CATCH(reinterpret_cast<ID3_Tag *>(tag)->SetExtendedHeader(ext));
105 }
106 }
107
108 ID3_C_EXPORT void CCONV
109 ID3Tag_SetPadding(ID3Tag *tag, bool pad)
110 {
111 if (tag)
112 {
113 ID3_CATCH(reinterpret_cast<ID3_Tag *>(tag)->SetPadding(pad));
114 }
115 }
116
117
118 ID3_C_EXPORT void CCONV
119 ID3Tag_AddFrame(ID3Tag *tag, const ID3Frame *frame)
120 {
121 if (tag)
122 {
123 ID3_CATCH(reinterpret_cast<ID3_Tag *>(tag)->AddFrame(reinterpret_cast<const ID3_Frame *>(frame)));
124 }
125 }
126
127
128 ID3_C_EXPORT bool CCONV
129 ID3Tag_AttachFrame(ID3Tag *tag, ID3Frame *frame)
130 {
131 bool b = false;
132 if (tag)
133 {
134 ID3_CATCH(b = reinterpret_cast<ID3_Tag *>(tag)->AttachFrame(reinterpret_cast<ID3_Frame *>(frame)));
135 }
136 return b;
137 }
138
139
140 ID3_C_EXPORT void CCONV
141 ID3Tag_AddFrames(ID3Tag *tag, const ID3Frame *frames, size_t num)
142 {
143 if (tag)
144 {
145 ID3_CATCH(reinterpret_cast<ID3_Tag *>(tag)->AddFrames(reinterpret_cast<const ID3_Frame *>(frames), num));
146 }
147 }
148
149
150 ID3_C_EXPORT ID3Frame* CCONV
151 ID3Tag_RemoveFrame(ID3Tag *tag, const ID3Frame *frame)
152 {
153 ID3_Frame* rem_frame = NULL;
154 if (tag)
155 {
156 ID3_CATCH(rem_frame = reinterpret_cast<ID3_Tag *>(tag)->RemoveFrame(reinterpret_cast<const ID3_Frame *>(frame)));
157 }
158 return reinterpret_cast<ID3Frame*>(rem_frame);
159 }
160
161
162 ID3_C_EXPORT ID3_Err CCONV
163 ID3Tag_Parse(ID3Tag *tag, const uchar header[ ID3_TAGHEADERSIZE ],
164 const uchar *buffer)
165 {
166 size_t size = 0;
167 if (tag)
168 {
169 ID3_CATCH(size = reinterpret_cast<ID3_Tag *>(tag)->Parse(header, buffer));
170 }
171 return ID3E_NoError;
172 }
173
174
175 ID3_C_EXPORT size_t CCONV
176 ID3Tag_Link(ID3Tag *tag, const char *fileName)
177 {
178 size_t offset = 0;
179 if (tag)
180 {
181 ID3_CATCH(offset = reinterpret_cast<ID3_Tag *>(tag)->Link(fileName));
182 }
183 return offset;
184 }
185
186 ID3_C_EXPORT size_t CCONV
187 ID3Tag_LinkWithFlags(ID3Tag *tag, const char *fileName, flags_t flags)
188 {
189 size_t offset = 0;
190 if (tag)
191 {
192 ID3_CATCH(offset = reinterpret_cast<ID3_Tag *>(tag)->Link(fileName,flags));
193 }
194 return offset;
195 }
196
197
198
199 ID3_C_EXPORT ID3_Err CCONV
200 ID3Tag_Update(ID3Tag *tag)
201 {
202 flags_t flags = 0;
203 if (tag)
204 {
205 ID3_CATCH(flags = reinterpret_cast<ID3_Tag *>(tag)->Update());
206 }
207 return ID3E_NoError;
208 }
209
210 ID3_C_EXPORT ID3_Err CCONV
211 ID3Tag_UpdateByTagType(ID3Tag *tag, flags_t tag_type)
212 {
213 flags_t flags = 0;
214 if (tag)
215 {
216 ID3_CATCH(flags = reinterpret_cast<ID3_Tag *>(tag)->Update(tag_type));
217 }
218 return ID3E_NoError;
219 }
220
221
222 ID3_C_EXPORT ID3_Err CCONV
223 ID3Tag_Strip(ID3Tag *tag, flags_t ulTagFlags)
224 {
225 if (tag)
226 {
227 ID3_CATCH(reinterpret_cast<ID3_Tag *>(tag)->Strip(ulTagFlags));
228 }
229 return ID3E_NoError;
230 }
231
232
233 ID3_C_EXPORT ID3Frame* CCONV
234 ID3Tag_FindFrameWithID(const ID3Tag *tag, ID3_FrameID id)
235 {
236 ID3_Frame *frame = NULL;
237
238 if (tag)
239 {
240 ID3_CATCH(frame = reinterpret_cast<const ID3_Tag *>(tag)->Find(id));
241 }
242
243 return reinterpret_cast<ID3Frame *>(frame);
244 }
245
246
247 ID3_C_EXPORT ID3Frame* CCONV
248 ID3Tag_FindFrameWithINT(const ID3Tag *tag, ID3_FrameID id,
249 ID3_FieldID fld, uint32 data)
250 {
251 ID3_Frame *frame = NULL;
252
253 if (tag)
254 {
255 ID3_CATCH(frame = reinterpret_cast<const ID3_Tag *>(tag)->Find(id, fld, data));
256 }
257
258 return reinterpret_cast<ID3Frame *>(frame);
259 }
260
261
262 ID3_C_EXPORT ID3Frame* CCONV
263 ID3Tag_FindFrameWithASCII(const ID3Tag *tag, ID3_FrameID id,
264 ID3_FieldID fld, const char *data)
265 {
266 ID3_Frame *frame = NULL;
267
268 if (tag)
269 {
270 ID3_CATCH(frame = reinterpret_cast<const ID3_Tag *>(tag)->Find(id, fld, data));
271 }
272
273 return reinterpret_cast<ID3Frame *>(frame);
274 }
275
276
277 ID3_C_EXPORT ID3Frame* CCONV
278 ID3Tag_FindFrameWithUNICODE(const ID3Tag *tag, ID3_FrameID id,
279 ID3_FieldID fld, const unicode_t *data)
280 {
281 ID3_Frame *frame = NULL;
282
283 if (tag)
284 {
285 ID3_CATCH(frame = reinterpret_cast<const ID3_Tag *>(tag)->Find(id, fld, data));
286 }
287
288 return reinterpret_cast<ID3Frame *>(frame);
289 }
290
291
292 ID3_C_EXPORT size_t CCONV
293 ID3Tag_NumFrames(const ID3Tag *tag)
294 {
295 size_t num = 0;
296
297 if (tag)
298 {
299 ID3_CATCH(num = reinterpret_cast<const ID3_Tag *>(tag)->NumFrames());
300 }
301
302 return num;
303 }
304
305
306 ID3_C_EXPORT bool CCONV
307 ID3Tag_HasTagType(const ID3Tag *tag, ID3_TagType tt)
308 {
309 bool has_tt = false;
310
311 if (tag)
312 {
313 ID3_CATCH(has_tt = reinterpret_cast<const ID3_Tag *>(tag)->HasTagType(tt));
314 }
315
316 return has_tt;
317 }
318
319 ID3_C_EXPORT ID3TagIterator* CCONV
320 ID3Tag_CreateIterator(ID3Tag* tag)
321 {
322 ID3_Tag::Iterator* iter = NULL;
323
324 if (tag)
325 {
326 ID3_CATCH(iter = reinterpret_cast<ID3_Tag*>(tag)->CreateIterator());
327 }
328
329 return reinterpret_cast<ID3TagIterator*>(iter);
330 }
331
332 ID3_C_EXPORT ID3TagConstIterator* CCONV
333 ID3Tag_CreateConstIterator(const ID3Tag* tag)
334 {
335 ID3_Tag::ConstIterator* iter = NULL;
336
337 if (tag)
338 {
339 ID3_CATCH(iter = reinterpret_cast<const ID3_Tag*>(tag)->CreateIterator());
340 }
341
342 return reinterpret_cast<ID3TagConstIterator*>(iter);
343 }
344
345 ID3_C_EXPORT void CCONV
346 ID3TagIterator_Delete(ID3TagIterator *iter)
347 {
348 if (iter)
349 {
350 ID3_CATCH(delete reinterpret_cast<ID3_Tag::Iterator*>(iter));
351 }
352 }
353
354 ID3_C_EXPORT ID3Frame* CCONV
355 ID3TagIterator_GetNext(ID3TagIterator *iter)
356 {
357 ID3_Frame* frame = NULL;
358 if (iter)
359 {
360 ID3_CATCH(frame = reinterpret_cast<ID3_Tag::Iterator*>(iter)->GetNext());
361 }
362 return reinterpret_cast<ID3Frame*>(frame);
363 }
364
365 ID3_C_EXPORT void CCONV
366 ID3TagConstIterator_Delete(ID3TagConstIterator *iter)
367 {
368 if (iter)
369 {
370 ID3_CATCH(delete reinterpret_cast<ID3_Tag::ConstIterator*>(iter));
371 }
372 }
373
374 ID3_C_EXPORT const ID3Frame* CCONV
375 ID3TagConstIterator_GetNext(ID3TagConstIterator *iter)
376 {
377 const ID3_Frame* frame = NULL;
378 if (iter)
379 {
380 ID3_CATCH(frame = reinterpret_cast<ID3_Tag::ConstIterator*>(iter)->GetNext());
381 }
382 return reinterpret_cast<const ID3Frame*>(frame);
383 }
384
385 // frame wrappers
386
387 ID3_C_EXPORT ID3Frame* CCONV
388 ID3Frame_New(void)
389 {
390 ID3_Frame* frame = NULL;
391 ID3_CATCH(frame = new ID3_Frame);
392 return reinterpret_cast<ID3Frame *>(frame);
393 }
394
395 ID3_C_EXPORT ID3Frame* CCONV
396 ID3Frame_NewID(ID3_FrameID id)
397 {
398 ID3_Frame* frame = NULL;
399 ID3_CATCH(frame = new ID3_Frame(id));
400 return reinterpret_cast<ID3Frame *>(frame);
401 }
402
403 ID3_C_EXPORT void CCONV
404 ID3Frame_Delete(ID3Frame *frame)
405 {
406 if (frame)
407 {
408 ID3_CATCH(delete reinterpret_cast<ID3_Frame *>(frame));
409 }
410 }
411
412
413 ID3_C_EXPORT void CCONV
414 ID3Frame_Clear(ID3Frame *frame)
415 {
416 if (frame)
417 {
418 ID3_CATCH(reinterpret_cast<ID3_Frame *>(frame)->Clear());
419 }
420 }
421
422
423 ID3_C_EXPORT void CCONV
424 ID3Frame_SetID(ID3Frame *frame, ID3_FrameID id)
425 {
426 if (frame)
427 {
428 ID3_CATCH(reinterpret_cast<ID3_Frame *>(frame)->SetID(id));
429 }
430 }
431
432
433 ID3_C_EXPORT ID3_FrameID CCONV
434 ID3Frame_GetID(const ID3Frame *frame)
435 {
436 ID3_FrameID id = ID3FID_NOFRAME;
437
438 if (frame)
439 {
440 ID3_CATCH(id = reinterpret_cast<const ID3_Frame *>(frame)->GetID());
441 }
442
443 return id;
444 }
445
446
447 ID3_C_EXPORT ID3Field* CCONV
448 ID3Frame_GetField(const ID3Frame *frame, ID3_FieldID name)
449 {
450 ID3_Field *field = NULL;
451
452 if (frame)
453 {
454 ID3_CATCH(field = reinterpret_cast<const ID3_Frame *>(frame)->GetField(name));
455 }
456
457 return reinterpret_cast<ID3Field *>(field);
458 }
459
460
461 ID3_C_EXPORT void CCONV
462 ID3Frame_SetCompression(ID3Frame *frame, bool comp)
463 {
464 if (frame)
465 {
466 ID3_CATCH(reinterpret_cast<ID3_Frame *>(frame)->SetCompression(comp));
467 }
468 }
469
470
471 ID3_C_EXPORT bool CCONV
472 ID3Frame_GetCompression(const ID3Frame *frame)
473 {
474 bool compressed = false;
475 if (frame)
476 {
477 ID3_CATCH(compressed = reinterpret_cast<const ID3_Frame *>(frame)->GetCompression());
478 }
479 return compressed;
480 }
481
482
483 // field wrappers
484
485
486 ID3_C_EXPORT void CCONV
487 ID3Field_Clear(ID3Field *field)
488 {
489 if (field)
490 {
491 ID3_CATCH(reinterpret_cast<ID3_Field *>(field)->Clear());
492 }
493 }
494
495
496 ID3_C_EXPORT size_t CCONV
497 ID3Field_Size(const ID3Field *field)
498 {
499 size_t size = 0;
500
501 if (field)
502 {
503 ID3_CATCH(size = reinterpret_cast<const ID3_Field *>(field)->Size());
504 }
505
506 return size;
507 }
508
509
510 ID3_C_EXPORT size_t CCONV
511 ID3Field_GetNumTextItems(const ID3Field *field)
512 {
513 size_t items = 0;
514
515 if (field)
516 {
517 ID3_CATCH(items = reinterpret_cast<const ID3_Field *>(field)->GetNumTextItems());
518 }
519
520 return items;
521 }
522
523
524 ID3_C_EXPORT void CCONV
525 ID3Field_SetINT(ID3Field *field, uint32 data)
526 {
527 if (field)
528 {
529 ID3_CATCH(reinterpret_cast<ID3_Field *>(field)->Set(data));
530 }
531 }
532
533
534 ID3_C_EXPORT uint32 CCONV
535 ID3Field_GetINT(const ID3Field *field)
536 {
537 uint32 value = 0;
538
539 if (field)
540 {
541 ID3_CATCH(value = reinterpret_cast<const ID3_Field *>(field)->Get());
542 }
543
544 return value;
545 }
546
547
548 ID3_C_EXPORT void CCONV
549 ID3Field_SetUNICODE(ID3Field *field, const unicode_t *string)
550 {
551 if (field)
552 {
553 ID3_CATCH(reinterpret_cast<ID3_Field *>(field)->Set(string));
554 }
555 }
556
557
558 ID3_C_EXPORT size_t CCONV
559 ID3Field_GetUNICODE(const ID3Field *field, unicode_t *buffer, size_t maxChars)
560 {
561 size_t numChars = 0;
562
563 if (field)
564 {
565 ID3_CATCH(numChars = reinterpret_cast<const ID3_Field *>(field)->Get(buffer, maxChars));
566 }
567
568 return numChars;
569 }
570
571
572 ID3_C_EXPORT size_t CCONV
573 ID3Field_GetUNICODEItem(const ID3Field *field, unicode_t *buffer,
574 size_t maxChars, size_t itemNum)
575 {
576 size_t numChars = 0;
577
578 if (field)
579 {
580 ID3_CATCH(numChars = reinterpret_cast<const ID3_Field *>(field)->Get(buffer, maxChars, itemNum));
581 }
582
583 return numChars;
584 }
585
586
587 ID3_C_EXPORT void CCONV
588 ID3Field_AddUNICODE(ID3Field *field, const unicode_t *string)
589 {
590 if (field)
591 {
592 ID3_CATCH(reinterpret_cast<ID3_Field *>(field)->Add(string));
593 }
594 }
595
596
597 ID3_C_EXPORT void CCONV
598 ID3Field_SetASCII(ID3Field *field, const char *string)
599 {
600 if (field)
601 {
602 ID3_CATCH(reinterpret_cast<ID3_Field *>(field)->Set(string));
603 }
604 }
605
606
607 ID3_C_EXPORT size_t CCONV
608 ID3Field_GetASCII(const ID3Field *field, char *buffer, size_t maxChars)
609 {
610 size_t numChars = 0;
611
612 if (field)
613 {
614 ID3_CATCH(numChars = reinterpret_cast<const ID3_Field *>(field)->Get(buffer, maxChars));
615 }
616
617 return numChars;
618 }
619
620 ID3_C_EXPORT size_t CCONV
621 ID3Field_GetASCIIItem(const ID3Field *field, char *buffer,
622 size_t maxChars, size_t itemNum)
623 {
624 size_t numChars = 0;
625
626 if (field)
627 {
628 ID3_CATCH(numChars = reinterpret_cast<const ID3_Field *>(field)->Get(buffer, maxChars, itemNum));
629 }
630
631 return numChars;
632 }
633
634
635 ID3_C_EXPORT void CCONV
636 ID3Field_AddASCII(ID3Field *field, const char *string)
637 {
638 if (field)
639 {
640 ID3_CATCH(reinterpret_cast<ID3_Field *>(field)->Add(string));
641 }
642 }
643
644
645 ID3_C_EXPORT void CCONV
646 ID3Field_SetBINARY(ID3Field *field, const uchar *data, size_t size)
647 {
648 if (field)
649 {
650 ID3_CATCH(reinterpret_cast<ID3_Field *>(field)->Set(data, size));
651 }
652 }
653
654
655 ID3_C_EXPORT void CCONV
656 ID3Field_GetBINARY(const ID3Field *field, uchar *buffer, size_t buffLength)
657 {
658 if (field)
659 {
660 ID3_CATCH(reinterpret_cast<const ID3_Field *>(field)->Get(buffer, buffLength));
661 }
662 }
663
664
665 ID3_C_EXPORT void CCONV
666 ID3Field_FromFile(ID3Field *field, const char *fileName)
667 {
668 if (field)
669 {
670 ID3_CATCH(reinterpret_cast<ID3_Field *>(field)->FromFile(fileName));
671 }
672 }
673
674
675 ID3_C_EXPORT void CCONV
676 ID3Field_ToFile(const ID3Field *field, const char *fileName)
677 {
678 if (field)
679 {
680 ID3_CATCH(reinterpret_cast<const ID3_Field *>(field)->ToFile(fileName));
681 }
682 }
683
684 #ifdef __cplusplus
685 }
686 #endif /* __cplusplus */
687
ID3_Tag::Iterator
Definition: tag.h:47
tag.h
ID3Tag_FindFrameWithID
ID3_C_EXPORT ID3Frame *CCONV ID3Tag_FindFrameWithID(const ID3Tag *tag, ID3_FrameID id)
Definition: c_wrapper.cpp:234
ID3Tag_HasChanged
ID3_C_EXPORT bool CCONV ID3Tag_HasChanged(const ID3Tag *tag)
Definition: c_wrapper.cpp:76
ID3Tag_Update
ID3_C_EXPORT ID3_Err CCONV ID3Tag_Update(ID3Tag *tag)
Definition: c_wrapper.cpp:200
ID3Tag_NumFrames
ID3_C_EXPORT size_t CCONV ID3Tag_NumFrames(const ID3Tag *tag)
Definition: c_wrapper.cpp:293
ID3Field_SetBINARY
ID3_C_EXPORT void CCONV ID3Field_SetBINARY(ID3Field *field, const uchar *data, size_t size)
Definition: c_wrapper.cpp:646
ID3Frame_GetCompression
ID3_C_EXPORT bool CCONV ID3Frame_GetCompression(const ID3Frame *frame)
Definition: c_wrapper.cpp:472
ID3_TagType
ID3_TagType
The various types of tags that id3lib can handle.
Definition: globals.h:174
ID3Field_FromFile
ID3_C_EXPORT void CCONV ID3Field_FromFile(ID3Field *field, const char *fileName)
Definition: c_wrapper.cpp:666
ID3_Tag
The representative class of an id3 tag.
Definition: tag.h:41
ID3Tag_UpdateByTagType
ID3_C_EXPORT ID3_Err CCONV ID3Tag_UpdateByTagType(ID3Tag *tag, flags_t tag_type)
Definition: c_wrapper.cpp:211
ID3Tag_SetPadding
ID3_C_EXPORT void CCONV ID3Tag_SetPadding(ID3Tag *tag, bool pad)
Definition: c_wrapper.cpp:109
ID3E_NoError
No error reported.
Definition: globals.h:365
flags_t
uint16 flags_t
Definition: globals.h:118
ID3_CATCH
#define ID3_CATCH(code)
Definition: c_wrapper.cpp:44
ID3TagIterator_GetNext
ID3_C_EXPORT ID3Frame *CCONV ID3TagIterator_GetNext(ID3TagIterator *iter)
Definition: c_wrapper.cpp:355
ID3Field_Clear
ID3_C_EXPORT void CCONV ID3Field_Clear(ID3Field *field)
Definition: c_wrapper.cpp:487
ID3Field_GetUNICODEItem
ID3_C_EXPORT size_t CCONV ID3Field_GetUNICODEItem(const ID3Field *field, unicode_t *buffer, size_t maxChars, size_t itemNum)
Definition: c_wrapper.cpp:573
ID3Tag_AttachFrame
ID3_C_EXPORT bool CCONV ID3Tag_AttachFrame(ID3Tag *tag, ID3Frame *frame)
Definition: c_wrapper.cpp:129
ID3Frame_GetField
ID3_C_EXPORT ID3Field *CCONV ID3Frame_GetField(const ID3Frame *frame, ID3_FieldID name)
Definition: c_wrapper.cpp:448
ID3TagIterator_Delete
ID3_C_EXPORT void CCONV ID3TagIterator_Delete(ID3TagIterator *iter)
Definition: c_wrapper.cpp:346
ID3TagConstIterator_Delete
ID3_C_EXPORT void CCONV ID3TagConstIterator_Delete(ID3TagConstIterator *iter)
Definition: c_wrapper.cpp:366
ID3Field_ToFile
ID3_C_EXPORT void CCONV ID3Field_ToFile(const ID3Field *field, const char *fileName)
Definition: c_wrapper.cpp:676
ID3Field_AddUNICODE
ID3_C_EXPORT void CCONV ID3Field_AddUNICODE(ID3Field *field, const unicode_t *string)
Definition: c_wrapper.cpp:588
ID3FID_NOFRAME
No known frame.
Definition: globals.h:231
ID3TagConstIterator_GetNext
ID3_C_EXPORT const ID3Frame *CCONV ID3TagConstIterator_GetNext(ID3TagConstIterator *iter)
Definition: c_wrapper.cpp:375
ID3Tag_CreateIterator
ID3_C_EXPORT ID3TagIterator *CCONV ID3Tag_CreateIterator(ID3Tag *tag)
Definition: c_wrapper.cpp:320
ID3Tag_Link
ID3_C_EXPORT size_t CCONV ID3Tag_Link(ID3Tag *tag, const char *fileName)
Definition: c_wrapper.cpp:176
ID3_FrameID
ID3_FrameID
Enumeration of the different types of frames recognized by id3lib.
Definition: globals.h:229
uchar
unsigned char uchar
Definition: globals.h:114
ID3Frame_NewID
ID3_C_EXPORT ID3Frame *CCONV ID3Frame_NewID(ID3_FrameID id)
Definition: c_wrapper.cpp:396
ID3Frame_Clear
ID3_C_EXPORT void CCONV ID3Frame_Clear(ID3Frame *frame)
Definition: c_wrapper.cpp:414
ID3Field_SetUNICODE
ID3_C_EXPORT void CCONV ID3Field_SetUNICODE(ID3Field *field, const unicode_t *string)
Definition: c_wrapper.cpp:549
ID3Tag_Clear
ID3_C_EXPORT void CCONV ID3Tag_Clear(ID3Tag *tag)
Definition: c_wrapper.cpp:66
ID3Field_SetINT
ID3_C_EXPORT void CCONV ID3Field_SetINT(ID3Field *field, uint32 data)
Definition: c_wrapper.cpp:525
ID3Tag_LinkWithFlags
ID3_C_EXPORT size_t CCONV ID3Tag_LinkWithFlags(ID3Tag *tag, const char *fileName, flags_t flags)
Definition: c_wrapper.cpp:187
ID3Field_GetUNICODE
ID3_C_EXPORT size_t CCONV ID3Field_GetUNICODE(const ID3Field *field, unicode_t *buffer, size_t maxChars)
Definition: c_wrapper.cpp:559
ID3Field_GetINT
ID3_C_EXPORT uint32 CCONV ID3Field_GetINT(const ID3Field *field)
Definition: c_wrapper.cpp:535
ID3Tag_FindFrameWithUNICODE
ID3_C_EXPORT ID3Frame *CCONV ID3Tag_FindFrameWithUNICODE(const ID3Tag *tag, ID3_FrameID id, ID3_FieldID fld, const unicode_t *data)
Definition: c_wrapper.cpp:278
ID3Tag_Delete
ID3_C_EXPORT void CCONV ID3Tag_Delete(ID3Tag *tag)
Definition: c_wrapper.cpp:56
ID3_Tag::ConstIterator
Definition: tag.h:53
ID3Frame_SetCompression
ID3_C_EXPORT void CCONV ID3Frame_SetCompression(ID3Frame *frame, bool comp)
Definition: c_wrapper.cpp:462
ID3Frame_Delete
ID3_C_EXPORT void CCONV ID3Frame_Delete(ID3Frame *frame)
Definition: c_wrapper.cpp:404
ID3Tag_HasTagType
ID3_C_EXPORT bool CCONV ID3Tag_HasTagType(const ID3Tag *tag, ID3_TagType tt)
Definition: c_wrapper.cpp:307
ID3_Err
ID3_Err
Predefined id3lib error types.
Definition: globals.h:363
ID3Tag_SetExtendedHeader
ID3_C_EXPORT void CCONV ID3Tag_SetExtendedHeader(ID3Tag *tag, bool ext)
Definition: c_wrapper.cpp:100
ID3_C_EXPORT
#define ID3_C_EXPORT
This file defines common macros, types, constants, and enums used throughout id3lib.
Definition: globals.h:78
ID3_Frame
The representative class of an id3v2 frame.
Definition: id3lib_frame.h:38
ID3Tag_CreateConstIterator
ID3_C_EXPORT ID3TagConstIterator *CCONV ID3Tag_CreateConstIterator(const ID3Tag *tag)
Definition: c_wrapper.cpp:333
ID3Field_GetASCIIItem
ID3_C_EXPORT size_t CCONV ID3Field_GetASCIIItem(const ID3Field *field, char *buffer, size_t maxChars, size_t itemNum)
Definition: c_wrapper.cpp:621
ID3Field_AddASCII
ID3_C_EXPORT void CCONV ID3Field_AddASCII(ID3Field *field, const char *string)
Definition: c_wrapper.cpp:636
ID3Tag_RemoveFrame
ID3_C_EXPORT ID3Frame *CCONV ID3Tag_RemoveFrame(ID3Tag *tag, const ID3Frame *frame)
Definition: c_wrapper.cpp:151
ID3Field_GetNumTextItems
ID3_C_EXPORT size_t CCONV ID3Field_GetNumTextItems(const ID3Field *field)
Definition: c_wrapper.cpp:511
ID3Field_SetASCII
ID3_C_EXPORT void CCONV ID3Field_SetASCII(ID3Field *field, const char *string)
Definition: c_wrapper.cpp:598
CCONV
#define CCONV
Definition: globals.h:80
field.h
ID3Tag_Parse
ID3_C_EXPORT ID3_Err CCONV ID3Tag_Parse(ID3Tag *tag, const uchar header[ID3_TAGHEADERSIZE], const uchar *buffer)
Definition: c_wrapper.cpp:163
NULL
#define NULL
Definition: globals.h:743
ID3Tag_FindFrameWithINT
ID3_C_EXPORT ID3Frame *CCONV ID3Tag_FindFrameWithINT(const ID3Tag *tag, ID3_FrameID id, ID3_FieldID fld, uint32 data)
Definition: c_wrapper.cpp:248
ID3Tag_AddFrame
ID3_C_EXPORT void CCONV ID3Tag_AddFrame(ID3Tag *tag, const ID3Frame *frame)
Definition: c_wrapper.cpp:119
ID3Field_GetBINARY
ID3_C_EXPORT void CCONV ID3Field_GetBINARY(const ID3Field *field, uchar *buffer, size_t buffLength)
Definition: c_wrapper.cpp:656
ID3Frame_SetID
ID3_C_EXPORT void CCONV ID3Frame_SetID(ID3Frame *frame, ID3_FrameID id)
Definition: c_wrapper.cpp:424
ID3_Field
The representative class of an ID3v2 field.
Definition: field.h:36
ID3Tag_New
ID3_C_EXPORT ID3Tag *CCONV ID3Tag_New(void)
Definition: c_wrapper.cpp:47
unicode_t
uint16 unicode_t
Definition: globals.h:117
ID3Frame_GetID
ID3_C_EXPORT ID3_FrameID CCONV ID3Frame_GetID(const ID3Frame *frame)
Definition: c_wrapper.cpp:434
ID3Frame_New
ID3_C_EXPORT ID3Frame *CCONV ID3Frame_New(void)
Definition: c_wrapper.cpp:388
ID3_TAGHEADERSIZE
#define ID3_TAGHEADERSIZE
Definition: globals.h:104
ID3Tag_Strip
ID3_C_EXPORT ID3_Err CCONV ID3Tag_Strip(ID3Tag *tag, flags_t ulTagFlags)
Definition: c_wrapper.cpp:223
ID3Tag_SetUnsync
ID3_C_EXPORT void CCONV ID3Tag_SetUnsync(ID3Tag *tag, bool unsync)
Definition: c_wrapper.cpp:90
ID3Tag_AddFrames
ID3_C_EXPORT void CCONV ID3Tag_AddFrames(ID3Tag *tag, const ID3Frame *frames, size_t num)
Definition: c_wrapper.cpp:141
ID3Tag_FindFrameWithASCII
ID3_C_EXPORT ID3Frame *CCONV ID3Tag_FindFrameWithASCII(const ID3Tag *tag, ID3_FrameID id, ID3_FieldID fld, const char *data)
Definition: c_wrapper.cpp:263
ID3_FieldID
ID3_FieldID
Enumeration of the different types of fields in a frame.
Definition: globals.h:197
ID3Field_Size
ID3_C_EXPORT size_t CCONV ID3Field_Size(const ID3Field *field)
Definition: c_wrapper.cpp:497
ID3Field_GetASCII
ID3_C_EXPORT size_t CCONV ID3Field_GetASCII(const ID3Field *field, char *buffer, size_t maxChars)
Definition: c_wrapper.cpp:608