AAX SDK 2.6.1
Avid Audio Extensions Development Kit
Loading...
Searching...
No Matches
AAX_CChunkDataParser.h
Go to the documentation of this file.
1/*================================================================================================*/
2/*
3 *
4 * Copyright 2013-2015, 2023 Avid Technology, Inc.
5 * All rights reserved.
6 *
7 * CONFIDENTIAL: this document contains confidential information of Avid. Do
8 * not disclose to any third party. Use of the information contained in this
9 * document is subject to an Avid SDK license.
10 *
11 */
12
19/*================================================================================================*/
20
21
22#pragma once
23
24#ifndef AAX_CHUNKDATAPARSER_H
25#define AAX_CHUNKDATAPARSER_H
26
27#include "AAX.h"
28#include "AAX_CString.h"
29#include <vector>
30
31//forward declarations
32struct AAX_SPlugInChunk;
33
38 const int32_t FLOAT_TYPE = 1;
39 const char FLOAT_STRING_IDENTIFIER[] = "f_";
40
41 const int32_t LONG_TYPE = 2;
42 const char LONG_STRING_IDENTIFIER[] = "l_";
43
44 const int32_t DOUBLE_TYPE = 3;
45 const char DOUBLE_STRING_IDENTIFIER[] = "d_";
46 const size_t DOUBLE_TYPE_SIZE = 8;
47 const size_t DOUBLE_TYPE_INCR = 8;
48
49 const int32_t SHORT_TYPE = 4;
50 const char SHORT_STRING_IDENTIFIER[] = "s_";
51 const size_t SHORT_TYPE_SIZE = 2;
52 const size_t SHORT_TYPE_INCR = 4; // keep life word aligned
53
54 const int32_t STRING_TYPE = 5;
55 const char STRING_STRING_IDENTIFIER[] = "r_";
56 const size_t MAX_STRINGDATA_LENGTH = 255;
57
58 const size_t DEFAULT32BIT_TYPE_SIZE = 4;
59 const size_t DEFAULT32BIT_TYPE_INCR = 4;
60
61 const size_t STRING_IDENTIFIER_SIZE = 2;
62
63 const int32_t NAME_NOT_FOUND = -1;
64 const size_t MAX_NAME_LENGTH = 255;
65 const int32_t BUILD_DATA_FAILED = -333;
66 const int32_t HEADER_SIZE = 4;
67 const int32_t VERSION_ID_1 = 0x01010101;
68}
69
115{
116 public:
119
125 void AddFloat(const char *name, float value);
126 void AddDouble(const char *name, double value);
127 void AddInt32(const char *name, int32_t value);
128 void AddInt16(const char *name, int16_t value);
129 void AddString(const char *name, AAX_CString value);
130
136 bool FindFloat(const char *name, float *value);
137 bool FindDouble(const char *name, double *value);
138 bool FindInt32(const char *name, int32_t *value);
139 bool FindInt16(const char *name, int16_t *value);
140 bool FindString(const char *name, AAX_CString *value);
141
142 bool ReplaceDouble(const char *name, double value); //SW added for fela
145 int32_t GetChunkVersion() {return mChunkVersion;}
146 bool IsEmpty();
147 void Clear();
149
152 void LoadChunk(const AAX_SPlugInChunk *chunk);
153
154 protected:
155 void WordAlign(uint32_t &index);
156 void WordAlign(int32_t &index);
157 int32_t FindName(const AAX_CString &Name);
159
167
169
171public:
173 {
174 int32_t mDataType;
176 int64_t mIntValue;
178
180 mDataType(0),
182 mIntValue(0),
184 {};
185 };
186
187 std::vector<DataValue> mDataValues;
188};
189
190#endif //AAX_CHUNKDATAPARSER_H
A generic AAX string class with similar functionality to std::string.
Various utility definitions for AAX.
Constants used by ChunkDataParser class.
Definition: AAX_CChunkDataParser.h:37
const size_t STRING_IDENTIFIER_SIZE
Definition: AAX_CChunkDataParser.h:61
const int32_t LONG_TYPE
Definition: AAX_CChunkDataParser.h:41
const char STRING_STRING_IDENTIFIER[]
Definition: AAX_CChunkDataParser.h:55
const int32_t DOUBLE_TYPE
Definition: AAX_CChunkDataParser.h:44
const int32_t HEADER_SIZE
Definition: AAX_CChunkDataParser.h:66
const size_t DOUBLE_TYPE_SIZE
Definition: AAX_CChunkDataParser.h:46
const int32_t NAME_NOT_FOUND
Definition: AAX_CChunkDataParser.h:63
const int32_t SHORT_TYPE
Definition: AAX_CChunkDataParser.h:49
const char SHORT_STRING_IDENTIFIER[]
Definition: AAX_CChunkDataParser.h:50
const size_t SHORT_TYPE_SIZE
Definition: AAX_CChunkDataParser.h:51
const size_t DEFAULT32BIT_TYPE_INCR
Definition: AAX_CChunkDataParser.h:59
const size_t MAX_STRINGDATA_LENGTH
Definition: AAX_CChunkDataParser.h:56
const char FLOAT_STRING_IDENTIFIER[]
Definition: AAX_CChunkDataParser.h:39
const size_t MAX_NAME_LENGTH
Definition: AAX_CChunkDataParser.h:64
const char DOUBLE_STRING_IDENTIFIER[]
Definition: AAX_CChunkDataParser.h:45
const size_t SHORT_TYPE_INCR
Definition: AAX_CChunkDataParser.h:52
const int32_t STRING_TYPE
Definition: AAX_CChunkDataParser.h:54
const size_t DOUBLE_TYPE_INCR
Definition: AAX_CChunkDataParser.h:47
const int32_t BUILD_DATA_FAILED
Definition: AAX_CChunkDataParser.h:65
const int32_t FLOAT_TYPE
Definition: AAX_CChunkDataParser.h:38
const int32_t VERSION_ID_1
Definition: AAX_CChunkDataParser.h:67
const size_t DEFAULT32BIT_TYPE_SIZE
Definition: AAX_CChunkDataParser.h:58
const char LONG_STRING_IDENTIFIER[]
Definition: AAX_CChunkDataParser.h:42
Plug-in chunk header + data.
Definition: AAX.h:536
Parser utility for plugin chunks.
Definition: AAX_CChunkDataParser.h:115
bool FindFloat(const char *name, float *value)
CALL: Finds some data of type float with name and value in the current chunk.
void AddInt16(const char *name, int16_t value)
CALL: See AddFloat()
void LoadChunk(const AAX_SPlugInChunk *chunk)
Sets current chunk to data in chunk parameter.
void AddDouble(const char *name, double value)
CALL: See AddFloat()
int32_t mLastFoundIndex
The last index found in the chunk.
Definition: AAX_CChunkDataParser.h:166
bool FindString(const char *name, AAX_CString *value)
virtual ~AAX_CChunkDataParser()
void Clear()
Resets chunk.
int32_t mChunkVersion
Equal to fVersion from the chunk header. Equal to -1 if no chunk is loaded.
Definition: AAX_CChunkDataParser.h:170
void AddInt32(const char *name, int32_t value)
CALL: See AddFloat()
int32_t FindName(const AAX_CString &Name)
used by public Find methods
char * mChunkData
Definition: AAX_CChunkDataParser.h:168
int32_t GetChunkData(AAX_SPlugInChunk *chunk)
CALL: Fills passed in chunk with data from current chunk; returns 0 if successful.
int32_t GetChunkVersion()
CALL: Lists fVersion in chunk header for convenience.
Definition: AAX_CChunkDataParser.h:145
bool IsEmpty()
CALL: Returns true if no data is in the chunk.
void AddString(const char *name, AAX_CString value)
void WordAlign(int32_t &index)
sets index to 4-byte boundary
void AddFloat(const char *name, float value)
CALL: Adds some data of type float with name and value to the current chunk.
bool FindInt16(const char *name, int16_t *value)
CALL: See FindFloat()
int32_t GetChunkDataSize()
CALL: Returns size of current chunk.
bool FindDouble(const char *name, double *value)
CALL: See FindFloat()
void WordAlign(uint32_t &index)
sets index to 4-byte boundary
bool FindInt32(const char *name, int32_t *value)
CALL: See FindFloat()
bool ReplaceDouble(const char *name, double value)
std::vector< DataValue > mDataValues
Definition: AAX_CChunkDataParser.h:187
Definition: AAX_CChunkDataParser.h:173
AAX_CString mStringValue
used if this DataValue is a string
Definition: AAX_CChunkDataParser.h:177
int32_t mDataType
Definition: AAX_CChunkDataParser.h:174
AAX_CString mDataName
name of the stored data
Definition: AAX_CChunkDataParser.h:175
DataValue()
Definition: AAX_CChunkDataParser.h:179
int64_t mIntValue
used if this DataValue is not a string
Definition: AAX_CChunkDataParser.h:176
A generic AAX string class with similar functionality to std::string
Definition: AAX_CString.h:44