00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
#ifndef _ID3LIB_FIELD_H_
00029
#define _ID3LIB_FIELD_H_
00030
00031
#include "id3/globals.h"
00032
00033
class ID3_Reader;
00034
class ID3_Writer;
00035
00036 class ID3_CPP_EXPORT ID3_Field
00037 {
00038
public:
00039
virtual void Clear() = 0;
00040
00041
virtual size_t Size()
const = 0;
00042
virtual size_t BinSize()
const = 0;
00043
virtual size_t GetNumTextItems()
const = 0;
00044
00045
00046
virtual ID3_Field& operator= (uint32 val) = 0;
00047
virtual void Set(uint32) = 0;
00048
virtual uint32 Get()
const = 0;
00049
00050
00051
virtual ID3_Field& operator= (
const char* s) = 0;
00052
virtual size_t Set(
const char*) = 0;
00053
virtual size_t Get(
char*, size_t)
const = 0;
00054
virtual size_t Get(
char*, size_t, size_t)
const = 0;
00055
virtual const char* GetRawText()
const = 0;
00056
virtual const char* GetRawTextItem(size_t)
const = 0;
00057
virtual size_t Add(
const char*) = 0;
00058
00059
00060
virtual ID3_Field& operator= (
const unicode_t* s) = 0;
00061
virtual size_t Set(
const unicode_t*) = 0;
00062
virtual size_t Get(
unicode_t *buffer, size_t)
const = 0;
00063
virtual size_t Get(
unicode_t *buffer, size_t, size_t)
const = 0;
00064
virtual const unicode_t* GetRawUnicodeText()
const = 0;
00065
virtual const unicode_t* GetRawUnicodeTextItem(size_t)
const = 0;
00066
virtual size_t Add(
const unicode_t*) = 0;
00067
00068
00069
virtual size_t Set(
const uchar*, size_t) = 0;
00070
virtual size_t Get(
uchar*, size_t)
const = 0;
00071
virtual const uchar* GetRawBinary()
const = 0;
00072
virtual void FromFile(
const char*) = 0;
00073
virtual void ToFile(
const char *sInfo)
const = 0;
00074
00075
00076
virtual ID3_Field& operator=(
const ID3_Field & ) = 0;
00077
virtual bool InScope(
ID3_V2Spec spec)
const = 0;
00078
00079
virtual ID3_FieldID GetID()
const = 0;
00080
virtual ID3_FieldType GetType()
const = 0;
00081
virtual bool SetEncoding(
ID3_TextEnc enc) = 0;
00082
virtual ID3_TextEnc GetEncoding()
const = 0;
00083
virtual bool IsEncodable()
const = 0;
00084
00085
virtual void Render(
ID3_Writer&)
const = 0;
00086
virtual bool Parse(
ID3_Reader&) = 0;
00087
virtual bool HasChanged()
const = 0;
00088
00089
protected:
00090 virtual ~ID3_Field() { };
00091
00092
00093 ID3_Field() { };
00094 };
00095
00096 class ID3_CPP_EXPORT ID3_FrameInfo
00097 {
00098
00099
public:
00100 ID3_FrameInfo() {};
00101 ~ID3_FrameInfo() {};
00102
char *ShortName(ID3_FrameID frameid);
00103
char *LongName(ID3_FrameID frameid);
00104
const char *Description(ID3_FrameID frameid);
00105
int MaxFrameID();
00106
int NumFields(ID3_FrameID frameid);
00107
ID3_FieldType FieldType(ID3_FrameID frameid,
int fieldnum);
00108 size_t FieldSize(ID3_FrameID frameid,
int fieldnum);
00109
flags_t FieldFlags(ID3_FrameID frameid,
int fieldnum);
00110 };
00111
00112
#endif
00113