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