Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
/*
2
 *      Version numbering for LAME.
3
 *
4
 *      Copyright (c) 1999 A.L. Faber
5
 *
6
 * This library is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU Library General Public
8
 * License as published by the Free Software Foundation; either
9
 * version 2 of the License, or (at your option) any later version.
10
 *
11
 * This library is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14
 * Library General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU Library General Public
17
 * License along with this library; if not, write to the
18
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19
 * Boston, MA 02111-1307, USA.
20
 */
21
 
22
/*!
23
  \file   version.c
24
  \brief  Version numbering for LAME.
25
 
26
  Contains functions which describe the version of LAME.
27
 
28
  \author A.L. Faber
29
  \version \$Id: version.c,v 1.17 2001/02/20 18:17:59 aleidinger Exp $
30
  \ingroup libmp3lame
31
 
32
  \todo The mp3x version should be located in the mp3x source,
33
        not in the libmp3lame source.
34
*/
35
 
36
 
37
#ifdef HAVE_CONFIG_H
38
# include <config.h>
39
#endif
40
 
41
 
42
#include <stdio.h>
43
#include <lame.h>
44
#include "version.h"    /* macros of version numbers */
45
 
46
#ifdef WITH_DMALLOC
47
#include <dmalloc.h>
48
#endif
49
 
50
//! Stringify \a x.
51
#define STR(x)   #x
52
//! Stringify \a x, perform macro expansion.
53
#define XSTR(x)  STR(x)
54
 
55
#if defined(MMX_choose_table)
56
# define V1  "MMX "
57
#else
58
# define V1  ""
59
#endif
60
 
61
#if defined(KLEMM)
62
# define V2  "KLM "
63
#else
64
# define V2  ""
65
#endif
66
 
67
#if defined(RH)
68
# define V3  "RH "
69
#else
70
# define V3  ""
71
#endif
72
 
73
//! Compile time features.
74
#define V   V1 V2 V3
75
 
76
//! Get the LAME version string.
77
/*!
78
  \param void
79
  \return a pointer to a string which describes the version of LAME.
80
*/
81
const char*  get_lame_version ( void )		/* primary to write screen reports */
82
{
83
    /* Here we can also add informations about compile time configurations */
84
 
85
#if   LAME_ALPHA_VERSION > 0
86
    static /*@observer@*/ const char *const str =
87
        XSTR(LAME_MAJOR_VERSION) "." XSTR(LAME_MINOR_VERSION) " " V
88
        "(alpha " XSTR(LAME_ALPHA_VERSION) ", " __DATE__ " " __TIME__ ")";
89
#elif LAME_BETA_VERSION > 0
90
    static /*@observer@*/ const char *const str =
91
        XSTR(LAME_MAJOR_VERSION) "." XSTR(LAME_MINOR_VERSION) " " V
92
        "(beta " XSTR(LAME_BETA_VERSION) ", " __DATE__ ")";
93
#else
94
    static /*@observer@*/ const char *const str =
95
        XSTR(LAME_MAJOR_VERSION) "." XSTR(LAME_MINOR_VERSION) " " V;
96
#endif
97
 
98
    return str;
99
}
100
 
101
 
102
//! Get the short LAME version string.
103
/*!
104
  It's mainly for inclusion into the MP3 stream.
105
 
106
  \param void   
107
  \return a pointer to the short version of the LAME version string.
108
*/
109
const char*  get_lame_short_version ( void )
110
{
111
    /* adding date and time to version string makes it harder for output
112
       validation */
113
 
114
#if   LAME_ALPHA_VERSION > 0
115
    static /*@observer@*/ const char *const str =
116
        XSTR(LAME_MAJOR_VERSION) "." XSTR(LAME_MINOR_VERSION) " (alpha)";
117
#elif LAME_BETA_VERSION > 0
118
    static /*@observer@*/ const char *const str =
119
        XSTR(LAME_MAJOR_VERSION) "." XSTR(LAME_MINOR_VERSION) " (beta)";
120
#else
121
    static /*@observer@*/ const char *const str =
122
        XSTR(LAME_MAJOR_VERSION) "." XSTR(LAME_MINOR_VERSION)
123
#endif
124
 
125
    return str;
126
}
127
 
128
 
129
//! Get the version string for GPSYCHO.
130
/*!
131
  \param void
132
  \return a pointer to a string which describes the version of GPSYCHO.
133
*/
134
const char*  get_psy_version ( void )
135
{
136
#if   PSY_ALPHA_VERSION > 0
137
    static /*@observer@*/ const char *const str =
138
        XSTR(PSY_MAJOR_VERSION) "." XSTR(PSY_MINOR_VERSION)
139
        " (alpha " XSTR(PSY_ALPHA_VERSION) ", " __DATE__ " " __TIME__ ")";
140
#elif PSY_BETA_VERSION > 0
141
    static /*@observer@*/ const char *const str =
142
        XSTR(PSY_MAJOR_VERSION) "." XSTR(PSY_MINOR_VERSION)
143
        " (beta " XSTR(PSY_BETA_VERSION) ", " __DATE__ ")";
144
#else
145
    static /*@observer@*/ const char *const str =
146
        XSTR(PSY_MAJOR_VERSION) "." XSTR(PSY_MINOR_VERSION);
147
#endif
148
 
149
    return str;
150
}
151
 
152
 
153
//! Get the mp3x version string.
154
/*!
155
  \param void
156
  \return a pointer to a string which describes the version of mp3x.
157
*/
158
const char*  get_mp3x_version ( void )
159
{
160
#if   MP3X_ALPHA_VERSION > 0
161
    static /*@observer@*/ const char *const str =
162
        XSTR(MP3X_MAJOR_VERSION) "." XSTR(MP3X_MINOR_VERSION)
163
        " (alpha " XSTR(MP3X_ALPHA_VERSION) ", " __DATE__ " " __TIME__ ")";
164
#elif MP3X_BETA_VERSION > 0
165
    static /*@observer@*/ const char *const str =
166
        XSTR(MP3X_MAJOR_VERSION) "." XSTR(MP3X_MINOR_VERSION)
167
        " (beta " XSTR(MP3X_BETA_VERSION) ", " __DATE__ ")";
168
#else
169
    static /*@observer@*/ const char *const str =
170
        XSTR(MP3X_MAJOR_VERSION) "." XSTR(MP3X_MINOR_VERSION);
171
#endif
172
 
173
    return str;
174
}
175
 
176
 
177
//! Get the URL for the LAME website.
178
/*!
179
  \param void
180
  \return a pointer to a string which is a URL for the LAME website.
181
*/
182
const char*  get_lame_url ( void )
183
{
184
    static /*@observer@*/ const char *const str = LAME_URL;
185
 
186
    return str;
187
}    
188
 
189
 
190
//! Get the numerical representation of the version.
191
/*!
192
  Writes the numerical representation of the version of LAME and
193
  GPSYCHO into lvp.
194
 
195
  \param lvp    
196
*/
197
void get_lame_version_numerical ( lame_version_t *const lvp )
198
{
199
    static /*@observer@*/ const char *const features = V;
200
 
201
    /* generic version */
202
    lvp->major = LAME_MAJOR_VERSION;
203
    lvp->minor = LAME_MINOR_VERSION;
204
    lvp->alpha = LAME_ALPHA_VERSION;
205
    lvp->beta  = LAME_BETA_VERSION;
206
 
207
    /* psy version */
208
    lvp->psy_major = PSY_MAJOR_VERSION;
209
    lvp->psy_minor = PSY_MINOR_VERSION;
210
    lvp->psy_alpha = PSY_ALPHA_VERSION;
211
    lvp->psy_beta  = PSY_BETA_VERSION;
212
 
213
    /* compile time features */
214
    /*@-mustfree@*/
215
    lvp->features = features;
216
    /*@=mustfree@*/
217
}
218
 
219
/* end of version.c */