1 // $Id: spec.cpp,v 1.2 2002/07/31 13:20:49 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 #if defined HAVE_CONFIG_H
29 #include <config.h>
30 #endif
31
32 #include "spec.h"
33
ID3_VerRevToV2Spec(uchar ver,uchar rev)34 ID3_V2Spec ID3_VerRevToV2Spec(uchar ver, uchar rev)
35 {
36 ID3_V2Spec spec = ID3V2_UNKNOWN;
37 if (2 == ver)
38 {
39 if (0 == rev)
40 {
41 spec = ID3V2_2_0;
42 }
43 else if (1 == rev)
44 {
45 spec = ID3V2_2_1;
46 }
47 }
48 else if (3 == ver)
49 {
50 if (0 == rev)
51 {
52 spec = ID3V2_3_0;
53 }
54 }
55 else if (4 == ver)
56 {
57 if (0 == rev)
58 {
59 spec = ID3V2_4_0;
60 }
61 }
62
63 return spec;
64 }
65
ID3_V2SpecToVer(ID3_V2Spec spec)66 uchar ID3_V2SpecToVer(ID3_V2Spec spec)
67 {
68 uchar ver = 0;
69 switch (spec)
70 {
71 case ID3V2_2_0:
72 case ID3V2_2_1:
73 ver = 2;
74 break;
75 case ID3V2_3_0:
76 ver = 3;
77 break;
78 case ID3V2_4_0:
79 ver = 4;
80 break;
81 default:
82 break;
83 }
84 return ver;
85 }
86
ID3_V2SpecToRev(ID3_V2Spec spec)87 uchar ID3_V2SpecToRev(ID3_V2Spec spec)
88 {
89 uchar rev = 0;
90 switch (spec)
91 {
92 case ID3V2_4_0:
93 rev = 0;
94 break;
95 case ID3V2_3_0:
96 rev = 0;
97 break;
98 case ID3V2_2_1:
99 rev = 1;
100 break;
101 case ID3V2_2_0:
102 rev = 0;
103 break;
104 default:
105 break;
106 }
107 return rev;
108 }
109
110