1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#pragma once
#include "foundation/dispatch.h"
#include "nx/nxstring.h"
#include "foundation/error.h"
#include "metadata/MetadataKeys.h"
#include "nx/nxdata.h"
#include "metadata/types.h"
class NOVTABLE ifc_metadata_editor : public Wasabi2::Dispatchable
{
protected:
ifc_metadata_editor() : Dispatchable(DISPATCHABLE_VERSION) {}
~ifc_metadata_editor() {}
public:
enum
{
INDEX_DEFAULT = -1,
};
int Save() { return MetadataEditor_Save(); }
/* Fields */
int SetField(int field, unsigned int index, nx_string_t value) { return MetadataEditor_SetField(field, index, value); }
int SetInteger(int field, unsigned int index, int64_t value) { return MetadataEditor_SetInteger(field, index, value); }
int SetReal(int field, unsigned int index, double value) { return MetadataEditor_SetReal(field, index, value); }
/* Art */
int SetArtwork(int field, unsigned int index, artwork_t *data, data_flags_t flags=DATA_FLAG_ALL) { return MetadataEditor_SetArtwork(field, index, data, flags); }
/* Binary Data */
enum
{
DISPATCHABLE_VERSION,
};
protected:
virtual int WASABICALL MetadataEditor_Save()=0;
virtual int WASABICALL MetadataEditor_SetField(int field, unsigned int index, nx_string_t value)=0;
virtual int WASABICALL MetadataEditor_SetInteger(int field, unsigned int index, int64_t value)=0;
virtual int WASABICALL MetadataEditor_SetReal(int field, unsigned int index, double value)=0;
virtual int WASABICALL MetadataEditor_SetArtwork(int field, unsigned int index, artwork_t *data, data_flags_t flags)=0;
};
|