00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
#ifndef TAGLIB_H
00023
#define TAGLIB_H
00024
00025 #define TAGLIB_MAJOR_VERSION 0
00026 #define TAGLIB_MINOR_VERSION 96
00027
00028
#include <string>
00029
00031
00040
namespace TagLib {
00041
00042
class String;
00043
00044 typedef wchar_t wchar;
00045 typedef unsigned char uchar;
00046 typedef unsigned int uint;
00047 typedef unsigned long ulong;
00048
00053 typedef std::basic_string<wchar>
wstring;
00054
00055
#ifndef DO_NOT_DOCUMENT // Tell Doxygen to skip this class.
00056
00063
class RefCounter
00064 {
00065
public:
00066 RefCounter() : refCount(1) {}
00067
void ref() { refCount++; }
00068
bool deref() {
return ! --refCount ; }
00069
int count() {
return refCount; }
00070
private:
00071
uint refCount;
00072 };
00073
00078
static inline char *strdup(
const char *s)
00079 {
00080
const int l = ::strlen(s);
00081
char *buffer =
new char[l];
00082 ::memcpy(buffer, s, l);
00083
return buffer;
00084 }
00085
00086
#endif // DO_NOT_DOCUMENT
00087
00088 }
00089
00148
#endif