id3lib  3.8.3
spec.cpp
Go to the documentation of this file.
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 
35 {
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 
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 
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 
ID3_V2Spec
Definition: globals.h:162
@ ID3V2_4_0
Definition: globals.h:167
@ ID3V2_2_1
Definition: globals.h:165
@ ID3V2_UNKNOWN
Definition: globals.h:163
@ ID3V2_2_0
Definition: globals.h:164
@ ID3V2_3_0
Definition: globals.h:166
unsigned char uchar
Definition: globals.h:114
uchar ID3_V2SpecToRev(ID3_V2Spec spec)
Definition: spec.cpp:87
ID3_V2Spec ID3_VerRevToV2Spec(uchar ver, uchar rev)
Definition: spec.cpp:34
uchar ID3_V2SpecToVer(ID3_V2Spec spec)
Definition: spec.cpp:66