| AAX SDK 2.8.0 Avid Audio Extensions Development Kit

- Welcome
- Manual
- Classes
- Files
- Lists
- Support

- File List
- File Members

Loading...
Searching...
No Matches
AAX_StringUtilities.hpp
Go to the documentation of this file.
1/*================================================================================================*/
2/*
3 * Copyright 2014-2017, 2019-2021, 2023-2024 Avid Technology, Inc.
4 * All rights reserved.
5 *
6 * This file is part of the Avid AAX SDK.
7 *
8 * The AAX SDK is subject to commercial or open-source licensing.
9 *
10 * By using the AAX SDK, you agree to the terms of both the Avid AAX SDK License
11 * Agreement and Avid Privacy Policy.
12 *
13 * AAX SDK License: https://developer.avid.com/aax
14 * Privacy Policy: https://www.avid.com/legal/privacy-policy-statement
15 *
16 * Or: You may also use this code under the terms of the GPL v3 (see
17 * www.gnu.org/licenses).
18 *
19 * THE AAX SDK IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 * EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 * DISCLAIMED.
22 */
23/*================================================================================================*/
24
25#ifndef AAXLibrary_AAX_StringUtilities_hpp
26#define AAXLibrary_AAX_StringUtilities_hpp
27
28#include "AAX_IString.h"
29#include "AAX_Errors.h"
30#include "AAX_Assert.h"
31
32#include <cstdlib>
33#include <cstring>
34
35#include <algorithm>
36#include <sstream>
37#include <string>
38#include <vector>
39
40//===========================================================================
41//
42// FloatToString: Convert the given floating point number to a pascal string.
43//
44//===========================================================================
45/*
46 void FloatToString(float aNumber, StringPtr aString)
47{
48 Str255 MantissaStr;
49 double aDouble;
50 StringPtr tempStr;
51 int32_t mantissa,tens,hundreds;
52 int16_t count;
53
54 aDouble = (double) aNumber;
55 if (aNumber < 0.0) // take abs value
56 aDouble = -aDouble;
57
58 aDouble += 0.005; // perform rounding by adding 1/2 of the hundreths digit
59
60 mantissa = aDouble;
61 tens = (aDouble * 10.0) - (mantissa * 10.0);
62 hundreds = (aDouble * 100.0) - (mantissa * 100.0) - (tens * 10.0);
63
64 NumToString(mantissa, MantissaStr);
65
66 // set up string length
67 if (aNumber < 0.0)
68 *aString++ = (char) (1 + 3 + *MantissaStr);
69 else
70 *aString++ = (char) (3 + *MantissaStr);
71
72 tempStr = MantissaStr;
73
74 // copy mantissa first
75 count = *tempStr++;
76
77 if (aNumber < 0.0)
78 *aString++ = '-';
79
80 while (count--)
81 *aString++ = *tempStr++;
82
83 *aString++ = '.';
84 *aString++ = (char) (tens + '0');
85 *aString++ = (char) (hundreds + '0');
86}
87*/
88
90//
91// GetCStringOfLength
92//
93// A routine for selecting a string based on the size passed in
94// by the client. If none of the strings are short enough then
95// the shortest string is truncated to fit.
96//
97// stringIn="A Very Nice String\nA String\nAStrng\nStr\n";
98//
99// Submitted from Erik Gavriluk of BombFactory (Free of Charge)
100// Debugged and separator character changed by Frederick Umminger
101//===============================================================
102
103 void AAX::GetCStringOfLength(char *s_out, const char* s_in, int32_t aMaxChars)
104{
105 AAX_ASSERT(0 < aMaxChars);
106
107 const char kSeparator = '\n';
108
109 if(s_in)
110 {
111 const char* s_begin = s_in;
112 const char* s_end = s_begin;
113 while(s_begin)
114 {
115 // Count characters in current substring
116 while((*s_end != kSeparator) && (*s_end != '\0'))
117 {
118 s_end++;
119 };
120
121 // If substring is less than or equal to aMaxChars then use it.
122 if((s_end-s_begin <= aMaxChars) || (*s_end=='\0'))
123 {
124 break;
125 }
126
127 s_begin = ++s_end;
128 }
129 // We don't use strncpy in order to make sure a '\0' gets put on the end of s_out
130 *s_out = '\0';
131 const int32_t length = int32_t(s_end-s_begin);
132 if (0 < length && 0 < aMaxChars)
133 {
134 std::strncat(s_out, s_begin, static_cast<std::size_t>(std::max<int32_t>(0, std::min<int32_t>(aMaxChars,length))));
135 }
136 }
137 else if (0 < aMaxChars)
138 {
139 strncpy(s_out, "", static_cast<size_t>(aMaxChars));
140 };
141}
142
143int32_t AAX::Caseless_strcmp(const char* cs, const char* ct)
144{
145 if(cs)
146 {
147 if(ct)
148 {
149 while(*cs && *ct)
150 {
151 int32_t cmp = toupper(*ct++) - toupper(*cs++);
152 if(cmp) return cmp;
153 };
154 if(*cs)
155 {
156 return -1;
157 }
158 else
159 {
160 if(*ct)
161 {
162 return 1;
163 }
164 else
165 {
166 return 0;
167 };
168 };
169 }
170 else
171 {
172 return -1;
173 };
174 }
175 else
176 {
177 if(ct)
178 return 1;
179 else
180 return 0;
181 }
182
183}
184
185
186std::string AAX::Binary2String(uint32_t value, int32_t numBits)
187{
188 std::string s;
189
190 uint32_t currentBitMask = (static_cast<uint32_t>(0x1) << (numBits-1));
191
192 while (currentBitMask != 0)
193 {
194 if (currentBitMask & value)
195 {
196 s += "1";
197 }
198 else
199 {
200 s += "0";
201 };
202 currentBitMask >>= 1;
203 }
204 return s;
205}
206
207uint32_t AAX::String2Binary(const AAX_IString& s)
208{
209 uint32_t value = 0;
210
211 const char* const cS = s.Get();
212 int32_t length = int32_t(s.Length());
213 for(int32_t i = 0; i < length ; i++)
214 {
215 switch(cS[i])
216 {
217 case '0':
218 break;
219 case '1':
220 value |= (0x1 << (length-1-i));
221 break;
222 default:
223 AAX_ASSERT('0' == cS[i] || '1' == cS[i]);
224 };
225 };
226
227 return value;
228}
229
230 bool AAX::IsASCII(char inChar)
231{
232 return (0x20 <= inChar) && (0x7E >= inChar);
233}
234
235 bool AAX::IsFourCharASCII(uint32_t inFourChar)
236{
237 const uint32_t oneCharMask = 0x000000FF;
238 const size_t oneCharNumBits = 8;
239
240 bool result = true;
241 for (uint16_t i = 3; true == result /* i value checked within loop */; --i)
242 {
243 const char curChar = static_cast<const char>((inFourChar >> (i*oneCharNumBits)) & oneCharMask);
244 result = result && IsASCII(curChar);
245 if (0 == i) { break; }
246 }
247 return result;
248}
249
250std::string AAX::AsStringFourChar(uint32_t inFourChar)
251{
252 AAX_CONSTEXPR uint32_t oneCharMask = 0x000000FF;
253 AAX_CONSTEXPR int16_t oneCharNumBits = 8;
254 AAX_CONSTEXPR auto unknownChar = "(?)"; // for current usage, a raw string here is slightly more efficient than a std::string
255
256 std::string resultStr;
257 for (int16_t i = 3; i >= 0; --i)
258 {
259 const char curChar = static_cast<char>((inFourChar >> (i*oneCharNumBits)) & oneCharMask);
260
261 // Prefer an explicit 'if' statement instead of a ternary operator to allow using the most
262 // efficient 'append' operator in each case
263 if (IsASCII(curChar))
264 {
265 resultStr += curChar;
266 }
267 else
268 {
269 resultStr += unknownChar;
270 }
271 }
272 return resultStr;
273}
274
275 namespace AAX { namespace internal {
276 template <typename T>
277std::string ToHexadecimal(T inValue, bool inLeadingZeros = false)
278{
279 AAX_CONSTEXPR char hexChars[] = "0123456789abcdef";
280 AAX_CONSTEXPR size_t size = sizeof(T) * 2;
281
282 std::string buffer{"0"};
283
284 // This conditional is to respect the expected output on 'inValud=0': "0" (instead of "0x0")
285 if (inValue)
286 {
287 buffer += 'x';
288 bool first_non_zero = inLeadingZeros;
289
290 // Largest integers will have 16 hex characters, just below the short-string
291 // optimization of std::string, so no dynamic allocation is required
292 for (size_t i = 0; i < size; ++i)
293 {
294 const auto c = hexChars[(inValue >> 4 * (size - 1 - i)) & 0xf];
295 if (first_non_zero || c != '0')
296 {
297 first_non_zero = true;
298 buffer += c;
299 }
300 }
301 }
302
303 return buffer;
304}
305}}
306
307std::string AAX::AsStringPropertyValue(AAX_EProperty inProperty, AAX_CPropertyValue inPropertyValue)
308{
309 // Attempt to infer a sensible way to print the property
310 if (AAX_eProperty_SampleRate == inProperty ||
311 AAX_eProperty_Constraint_Location == inProperty)
312 {
313 // Print specific properties' values as bitfield
314
315 // We want the exact bits, so we memcpy to avoid any potential issues
316 // with casting from signed to unsigned
317 uint32_t bitfield;
318 memcpy(&bitfield, &inPropertyValue, sizeof(uint32_t));
319
320 AAX_CONSTEXPR int32_t maxNumBitsToShow = 8; // Currently there are no bitfield properties with more than 8 possible flags
321 return AAX::Binary2String(bitfield, maxNumBitsToShow);
322 }
323
324 if (AAX::IsFourCharASCII(static_cast<uint32_t>(inPropertyValue)))
325 {
326 // Print values in ASCII range as four-char
327 return '\'' + AAX::AsStringFourChar(static_cast<uint32_t>(inPropertyValue)) + '\'';
328 }
329
330 if (0x00FFFFFF < abs(inPropertyValue))
331 {
332 // Print values with most bits used as hex
333 return internal::ToHexadecimal(inPropertyValue);
334 }
335
336 // Otherwise, print as simple decimal
337 return std::to_string(static_cast<long int>(inPropertyValue));
338}
339
340std::string AAX::AsStringInt32(int32_t inInt32)
341{
342 return std::to_string((long int)inInt32);
343}
344
345std::string AAX::AsStringUInt32(uint32_t inUInt32)
346{
347 return std::to_string((unsigned long)inUInt32);
348}
349
350std::string AAX::AsStringIDTriad(const AAX_SPlugInIdentifierTriad& inIDTriad)
351{
352 std::string result = "(";
353
354 result += "man: '" + AAX::AsStringFourChar(inIDTriad.mManufacturerID) + "', ";
355 result += "prod: '" + AAX::AsStringFourChar(inIDTriad.mProductID) + "', ";
356 result += "type: '" + AAX::AsStringFourChar(inIDTriad.mPlugInID) + "'";
357
358 result += ")";
359 return result;
360}
361
362std::string AAX::AsStringStemFormat(AAX_EStemFormat inStemFormat, bool inAbbreviate)
363{
364 switch (inStemFormat)
365 {
366 case AAX_eStemFormat_Mono: { return std::string("Mono"); break; }
367 case AAX_eStemFormat_Stereo: { return std::string(inAbbreviate ? "St" : "Stereo"); break; }
368 case AAX_eStemFormat_LCR: { return std::string("LCR"); break; }
369 case AAX_eStemFormat_LCRS: { return std::string("LCRS"); break; }
370 case AAX_eStemFormat_Quad: { return std::string("Quad"); break; }
371 case AAX_eStemFormat_5_0: { return std::string("5.0"); break; }
372 case AAX_eStemFormat_5_1: { return std::string("5.1"); break; }
373 case AAX_eStemFormat_6_0: { return std::string("6.0"); break; }
374 case AAX_eStemFormat_6_1: { return std::string("6.1"); break; }
375 case AAX_eStemFormat_7_0_SDDS: { return std::string(inAbbreviate ? "7.0 S" : "7.0 SDDS"); break; }
376 case AAX_eStemFormat_7_1_SDDS: { return std::string(inAbbreviate ? "7.1 S" : "7.1 SDDS"); break; }
377 case AAX_eStemFormat_7_0_DTS: { return std::string("7.0"); break; }
378 case AAX_eStemFormat_7_1_DTS: { return std::string("7.1"); break; }
379 case AAX_eStemFormat_7_0_2: {return std::string("7.0.2"); break; }
380 case AAX_eStemFormat_7_1_2: { return std::string("7.1.2"); break; }
381 case AAX_eStemFormat_Ambi_1_ACN: { return std::string(inAbbreviate ? "Amb1" : "Ambisonics (1st Order)"); break; }
382 case AAX_eStemFormat_Ambi_2_ACN: { return std::string(inAbbreviate ? "Amb2" : "Ambisonics (2nd Order)"); break; }
383 case AAX_eStemFormat_Ambi_3_ACN: { return std::string(inAbbreviate ? "Amb3" : "Ambisonics (3rd Order)"); break; }
384 case AAX_eStemFormat_Ambi_4_ACN: { return std::string(inAbbreviate ? "Amb4" : "Ambisonics (4th Order)"); break; }
385 case AAX_eStemFormat_Ambi_5_ACN: { return std::string(inAbbreviate ? "Amb5" : "Ambisonics (5th Order)"); break; }
386 case AAX_eStemFormat_Ambi_6_ACN: { return std::string(inAbbreviate ? "Amb6" : "Ambisonics (6th Order)"); break; }
387 case AAX_eStemFormat_Ambi_7_ACN: { return std::string(inAbbreviate ? "Amb7" : "Ambisonics (7th Order)"); break; }
388 case AAX_eStemFormat_5_0_2: { return std::string("5.0.2"); break; }
389 case AAX_eStemFormat_5_1_2: { return std::string("5.1.2"); break; }
390 case AAX_eStemFormat_5_0_4: { return std::string("5.0.4"); break; }
391 case AAX_eStemFormat_5_1_4: { return std::string("5.1.4"); break; }
392 case AAX_eStemFormat_7_0_4: { return std::string("7.0.4"); break; }
393 case AAX_eStemFormat_7_1_4: { return std::string("7.1.4"); break; }
394 case AAX_eStemFormat_7_0_6: { return std::string("7.0.6"); break; }
395 case AAX_eStemFormat_7_1_6: { return std::string("7.1.6"); break; }
396 case AAX_eStemFormat_9_0_4: { return std::string("9.0.4"); break; }
397 case AAX_eStemFormat_9_1_4: { return std::string("9.1.4"); break; }
398 case AAX_eStemFormat_9_0_6: { return std::string("9.0.6"); break; }
399 case AAX_eStemFormat_9_1_6: { return std::string("9.1.6"); break; }
400
401
402 case AAX_eStemFormat_None: { return std::string("None"); break; }
403 case AAX_eStemFormat_Any: { return std::string("Any"); break; }
404
405 case AAX_eStemFormat_INT32_MAX:
406 case AAX_eStemFormatNum:
407 default: { return std::string(inAbbreviate ? "unk" : "unknown stem format"); break; }
408 }
409}
410
411std::string AAX::AsStringStemChannel(AAX_EStemFormat inStemFormat, uint32_t inChannelIndex, bool inAbbreviate)
412{
413 switch (inStemFormat)
414 {
415 case AAX_eStemFormat_Mono:
416 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "M" : "Audio"); }
417 break;
418 case AAX_eStemFormat_Stereo:
419 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
420 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
421 break;
422 case AAX_eStemFormat_LCR:
423 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
424 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
425 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
426 break;
427 case AAX_eStemFormat_LCRS:
428 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
429 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
430 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
431 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "S" : "Surround"); }
432 break;
433 case AAX_eStemFormat_Quad:
434 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
435 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
436 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ls" : "Left Surround"); }
437 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rs" : "Right Surround"); }
438 break;
439 case AAX_eStemFormat_5_0:
440 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
441 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
442 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
443 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ls" : "Left Surround"); }
444 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rs" : "Right Surround"); }
445 break;
446 case AAX_eStemFormat_5_1:
447 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
448 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
449 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
450 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ls" : "Left Surround"); }
451 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rs" : "Right Surround"); }
452 if (0 == inChannelIndex--) { return std::string("LFE"); }
453 break;
454 case AAX_eStemFormat_6_0:
455 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
456 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
457 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
458 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ls" : "Left Surround"); }
459 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Cs" : "Center Surround"); }
460 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rs" : "Right Surround"); }
461 break;
462 case AAX_eStemFormat_6_1:
463 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
464 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
465 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
466 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ls" : "Left Surround"); }
467 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Cs" : "Center Surround"); }
468 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rs" : "Right Surround"); }
469 if (0 == inChannelIndex--) { return std::string("LFE"); }
470 break;
471 case AAX_eStemFormat_7_0_SDDS:
472 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
473 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lc" : "Left Center"); }
474 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
475 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rc" : "Right Center"); }
476 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
477 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ls" : "Left Surround"); }
478 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rs" : "Right Surround"); }
479 break;
480 case AAX_eStemFormat_7_1_SDDS:
481 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
482 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lc" : "Left Center"); }
483 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
484 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rc" : "Right Center"); }
485 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
486 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ls" : "Left Surround"); }
487 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rs" : "Right Surround"); }
488 if (0 == inChannelIndex--) { return std::string("LFE"); }
489 break;
490 case AAX_eStemFormat_7_0_DTS:
491 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
492 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
493 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
494 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lss" : "Left Surround Side"); }
495 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rss" : "Right Surround Side"); }
496 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lsr" : "Left Surround Rear"); }
497 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rsr" : "Right Surround Rear"); }
498 break;
499 case AAX_eStemFormat_7_1_DTS:
500 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
501 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
502 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
503 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lss" : "Left Surround Side"); }
504 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rss" : "Right Surround Side"); }
505 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lsr" : "Left Surround Rear"); }
506 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rsr" : "Right Surround Rear"); }
507 if (0 == inChannelIndex--) { return std::string("LFE"); }
508 break;
509 case AAX_eStemFormat_7_0_2:
510 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
511 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
512 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
513 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lss" : "Left Surround Side"); }
514 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rss" : "Right Surround Side"); }
515 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lsr" : "Left Surround Rear"); }
516 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rsr" : "Right Surround Rear"); }
517 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "LTS" : "Left Top Surround"); }
518 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "RTS" : "Right Top Surround"); }
519 break;
520 case AAX_eStemFormat_7_1_2:
521 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
522 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
523 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
524 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lss" : "Left Surround Side"); }
525 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rss" : "Right Surround Side"); }
526 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lsr" : "Left Surround Rear"); }
527 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rsr" : "Right Surround Rear"); }
528 if (0 == inChannelIndex--) { return std::string("LFE"); }
529 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "LTS" : "Left Top Surround"); }
530 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "RTS" : "Right Top Surround"); }
531 break;
532 case AAX_eStemFormat_Ambi_1_ACN:
533 case AAX_eStemFormat_Ambi_2_ACN:
534 case AAX_eStemFormat_Ambi_3_ACN:
535 case AAX_eStemFormat_Ambi_4_ACN:
536 case AAX_eStemFormat_Ambi_5_ACN:
537 case AAX_eStemFormat_Ambi_6_ACN:
538 case AAX_eStemFormat_Ambi_7_ACN:
539 if (0 == inChannelIndex--) { return std::string("1"); }
540 if (0 == inChannelIndex--) { return std::string("2"); }
541 if (0 == inChannelIndex--) { return std::string("3"); }
542 if (0 == inChannelIndex--) { return std::string("4"); }
543 if (0 == inChannelIndex--) { return std::string("5"); }
544 if (0 == inChannelIndex--) { return std::string("6"); }
545 if (0 == inChannelIndex--) { return std::string("7"); }
546 if (0 == inChannelIndex--) { return std::string("8"); }
547 if (0 == inChannelIndex--) { return std::string("9"); }
548 if (0 == inChannelIndex--) { return std::string("10"); }
549 if (0 == inChannelIndex--) { return std::string("11"); }
550 if (0 == inChannelIndex--) { return std::string("12"); }
551 if (0 == inChannelIndex--) { return std::string("13"); }
552 if (0 == inChannelIndex--) { return std::string("14"); }
553 if (0 == inChannelIndex--) { return std::string("15"); }
554 if (0 == inChannelIndex--) { return std::string("16"); }
555 if (0 == inChannelIndex--) { return std::string("17"); }
556 if (0 == inChannelIndex--) { return std::string("18"); }
557 if (0 == inChannelIndex--) { return std::string("19"); }
558 if (0 == inChannelIndex--) { return std::string("20"); }
559 if (0 == inChannelIndex--) { return std::string("21"); }
560 if (0 == inChannelIndex--) { return std::string("22"); }
561 if (0 == inChannelIndex--) { return std::string("23"); }
562 if (0 == inChannelIndex--) { return std::string("24"); }
563 if (0 == inChannelIndex--) { return std::string("25"); }
564 if (0 == inChannelIndex--) { return std::string("26"); }
565 if (0 == inChannelIndex--) { return std::string("27"); }
566 if (0 == inChannelIndex--) { return std::string("28"); }
567 if (0 == inChannelIndex--) { return std::string("29"); }
568 if (0 == inChannelIndex--) { return std::string("30"); }
569 if (0 == inChannelIndex--) { return std::string("31"); }
570 if (0 == inChannelIndex--) { return std::string("32"); }
571 if (0 == inChannelIndex--) { return std::string("33"); }
572 if (0 == inChannelIndex--) { return std::string("34"); }
573 if (0 == inChannelIndex--) { return std::string("35"); }
574 if (0 == inChannelIndex--) { return std::string("36"); }
575 if (0 == inChannelIndex--) { return std::string("37"); }
576 if (0 == inChannelIndex--) { return std::string("38"); }
577 if (0 == inChannelIndex--) { return std::string("39"); }
578 if (0 == inChannelIndex--) { return std::string("40"); }
579 if (0 == inChannelIndex--) { return std::string("41"); }
580 if (0 == inChannelIndex--) { return std::string("42"); }
581 if (0 == inChannelIndex--) { return std::string("43"); }
582 if (0 == inChannelIndex--) { return std::string("44"); }
583 if (0 == inChannelIndex--) { return std::string("45"); }
584 if (0 == inChannelIndex--) { return std::string("46"); }
585 if (0 == inChannelIndex--) { return std::string("47"); }
586 if (0 == inChannelIndex--) { return std::string("48"); }
587 if (0 == inChannelIndex--) { return std::string("49"); }
588 if (0 == inChannelIndex--) { return std::string("50"); }
589 if (0 == inChannelIndex--) { return std::string("51"); }
590 if (0 == inChannelIndex--) { return std::string("52"); }
591 if (0 == inChannelIndex--) { return std::string("53"); }
592 if (0 == inChannelIndex--) { return std::string("54"); }
593 if (0 == inChannelIndex--) { return std::string("55"); }
594 if (0 == inChannelIndex--) { return std::string("56"); }
595 if (0 == inChannelIndex--) { return std::string("57"); }
596 if (0 == inChannelIndex--) { return std::string("58"); }
597 if (0 == inChannelIndex--) { return std::string("59"); }
598 if (0 == inChannelIndex--) { return std::string("60"); }
599 if (0 == inChannelIndex--) { return std::string("61"); }
600 if (0 == inChannelIndex--) { return std::string("62"); }
601 if (0 == inChannelIndex--) { return std::string("63"); }
602 if (0 == inChannelIndex--) { return std::string("64"); }
603 break;
604 case AAX_eStemFormat_5_0_2:
605 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
606 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
607 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
608 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ls" : "Left Surround"); }
609 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rs" : "Right Surround"); }
610 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltm" : "Left Top Middle"); }
611 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtm" : "Right Top Middle"); }
612 break;
613 case AAX_eStemFormat_5_1_2:
614 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
615 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
616 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
617 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ls" : "Left Surround"); }
618 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rs" : "Right Surround"); }
619 if (0 == inChannelIndex--) { return std::string("LFE"); }
620 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltm" : "Left Top Middle"); }
621 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtm" : "Right Top Middle"); }
622 break;
623 case AAX_eStemFormat_5_0_4:
624 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
625 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
626 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
627 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ls" : "Left Surround"); }
628 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rs" : "Right Surround"); }
629 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltf" : "Left Top Front"); }
630 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtf" : "Right Top Front"); }
631 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltr" : "Left Top Rear"); }
632 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtr" : "Right Top Rear"); }
633 break;
634 case AAX_eStemFormat_5_1_4:
635 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
636 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
637 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
638 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ls" : "Left Surround"); }
639 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rs" : "Right Surround"); }
640 if (0 == inChannelIndex--) { return std::string("LFE"); }
641 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltf" : "Left Top Front"); }
642 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtf" : "Right Top Front"); }
643 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltr" : "Left Top Rear"); }
644 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtr" : "Right Top Rear"); }
645 break;
646 case AAX_eStemFormat_7_0_4:
647 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
648 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
649 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
650 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lss" : "Left Surround Side"); }
651 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rss" : "Right Surround Side"); }
652 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lsr" : "Left Surround Rear"); }
653 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rsr" : "Right Surround Rear"); }
654 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltf" : "Left Top Front"); }
655 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtf" : "Right Top Front"); }
656 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltr" : "Left Top Rear"); }
657 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtr" : "Right Top Rear"); }
658 break;
659 case AAX_eStemFormat_7_1_4:
660 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
661 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
662 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
663 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lss" : "Left Surround Side"); }
664 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rss" : "Right Surround Side"); }
665 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lsr" : "Left Surround Rear"); }
666 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rsr" : "Right Surround Rear"); }
667 if (0 == inChannelIndex--) { return std::string("LFE"); }
668 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltf" : "Left Top Front"); }
669 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtf" : "Right Top Front"); }
670 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltr" : "Left Top Rear"); }
671 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtr" : "Right Top Rear"); }
672 break;
673 case AAX_eStemFormat_7_0_6:
674 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
675 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
676 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
677 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lss" : "Left Surround Side"); }
678 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rss" : "Right Surround Side"); }
679 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lsr" : "Left Surround Rear"); }
680 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rsr" : "Right Surround Rear"); }
681 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltf" : "Left Top Front"); }
682 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtf" : "Right Top Front"); }
683 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltm" : "Left Top Middle"); }
684 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtm" : "Right Top Middle"); }
685 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltr" : "Left Top Rear"); }
686 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtr" : "Right Top Rear"); }
687 break;
688 case AAX_eStemFormat_7_1_6:
689 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
690 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
691 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
692 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lss" : "Left Surround Side"); }
693 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rss" : "Right Surround Side"); }
694 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lsr" : "Left Surround Rear"); }
695 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rsr" : "Right Surround Rear"); }
696 if (0 == inChannelIndex--) { return std::string("LFE"); }
697 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltf" : "Left Top Front"); }
698 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtf" : "Right Top Front"); }
699 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltm" : "Left Top Middle"); }
700 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtm" : "Right Top Middle"); }
701 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltr" : "Left Top Rear"); }
702 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtr" : "Right Top Rear"); }
703 break;
704 case AAX_eStemFormat_9_0_4:
705 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
706 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
707 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
708 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lw" : "Left Wide"); }
709 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rw" : "Right Wide"); }
710 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lss" : "Left Surround Side"); }
711 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rss" : "Right Surround Side"); }
712 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lsr" : "Left Surround Rear"); }
713 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rsr" : "Right Surround Rear"); }
714 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltf" : "Left Top Front"); }
715 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtf" : "Right Top Front"); }
716 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltr" : "Left Top Rear"); }
717 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtr" : "Right Top Rear"); }
718 break;
719 case AAX_eStemFormat_9_1_4:
720 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
721 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
722 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
723 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lw" : "Left Wide"); }
724 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rw" : "Right Wide"); }
725 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lss" : "Left Surround Side"); }
726 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rss" : "Right Surround Side"); }
727 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lsr" : "Left Surround Rear"); }
728 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rsr" : "Right Surround Rear"); }
729 if (0 == inChannelIndex--) { return std::string("LFE"); }
730 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltf" : "Left Top Front"); }
731 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtf" : "Right Top Front"); }
732 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltr" : "Left Top Rear"); }
733 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtr" : "Right Top Rear"); }
734 break;
735 case AAX_eStemFormat_9_0_6:
736 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
737 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
738 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
739 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lw" : "Left Wide"); }
740 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rw" : "Right Wide"); }
741 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lss" : "Left Surround Side"); }
742 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rss" : "Right Surround Side"); }
743 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lsr" : "Left Surround Rear"); }
744 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rsr" : "Right Surround Rear"); }
745 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltf" : "Left Top Front"); }
746 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtf" : "Right Top Front"); }
747 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltm" : "Left Top Middle"); }
748 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtm" : "Right Top Middle"); }
749 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltr" : "Left Top Rear"); }
750 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtr" : "Right Top Rear"); }
751 break;
752 case AAX_eStemFormat_9_1_6:
753 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "L" : "Left"); }
754 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "C" : "Center"); }
755 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "R" : "Right"); }
756 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lw" : "Left Wide"); }
757 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rw" : "Right Wide"); }
758 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lss" : "Left Surround Side"); }
759 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rss" : "Right Surround Side"); }
760 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Lsr" : "Left Surround Rear"); }
761 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rsr" : "Right Surround Rear"); }
762 if (0 == inChannelIndex--) { return std::string("LFE"); }
763 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltf" : "Left Top Front"); }
764 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtf" : "Right Top Front"); }
765 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltm" : "Left Top Middle"); }
766 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtm" : "Right Top Middle"); }
767 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Ltr" : "Left Top Rear"); }
768 if (0 == inChannelIndex--) { return std::string(inAbbreviate ? "Rtr" : "Right Top Rear"); }
769 break;
770
771
772 case AAX_eStemFormat_None:
773 break;
774 case AAX_eStemFormat_Any:
775 break;
776
777 case AAX_eStemFormat_INT32_MAX:
778 case AAX_eStemFormatNum:
779 default:
780 break;
781 }
782
783 return std::string(inAbbreviate ? "?" : "unknown");
784}
785
786std::string AAX::AsStringResult(AAX_Result inResult)
787{
788#ifdef DEFINE_AAX_ERROR_STRING
789#undef DEFINE_AAX_ERROR_STRING
790#endif
791#define DEFINE_AAX_ERROR_STRING(X) if (X == inResult) { return std::string(#X); }
792
793 DEFINE_AAX_ERROR_STRING(AAX_SUCCESS);
794 DEFINE_AAX_ERROR_STRING(AAX_ERROR_INVALID_PARAMETER_ID);
795 DEFINE_AAX_ERROR_STRING(AAX_ERROR_INVALID_STRING_CONVERSION);
796 DEFINE_AAX_ERROR_STRING(AAX_ERROR_INVALID_METER_INDEX);
797 DEFINE_AAX_ERROR_STRING(AAX_ERROR_NULL_OBJECT);
798 DEFINE_AAX_ERROR_STRING(AAX_ERROR_OLDER_VERSION);
799 DEFINE_AAX_ERROR_STRING(AAX_ERROR_INVALID_CHUNK_INDEX);
800 DEFINE_AAX_ERROR_STRING(AAX_ERROR_INVALID_CHUNK_ID);
801 DEFINE_AAX_ERROR_STRING(AAX_ERROR_INCORRECT_CHUNK_SIZE);
802 DEFINE_AAX_ERROR_STRING(AAX_ERROR_UNIMPLEMENTED);
803 DEFINE_AAX_ERROR_STRING(AAX_ERROR_INVALID_PARAMETER_INDEX);
804 DEFINE_AAX_ERROR_STRING(AAX_ERROR_NOT_INITIALIZED);
805 DEFINE_AAX_ERROR_STRING(AAX_ERROR_ACF_ERROR);
806 DEFINE_AAX_ERROR_STRING(AAX_ERROR_INVALID_METER_TYPE);
807 DEFINE_AAX_ERROR_STRING(AAX_ERROR_CONTEXT_ALREADY_HAS_METERS);
808 DEFINE_AAX_ERROR_STRING(AAX_ERROR_NULL_COMPONENT);
809 DEFINE_AAX_ERROR_STRING(AAX_ERROR_PORT_ID_OUT_OF_RANGE);
810 DEFINE_AAX_ERROR_STRING(AAX_ERROR_FIELD_TYPE_DOES_NOT_SUPPORT_DIRECT_ACCESS);
811 DEFINE_AAX_ERROR_STRING(AAX_ERROR_DIRECT_ACCESS_OUT_OF_BOUNDS);
812 DEFINE_AAX_ERROR_STRING(AAX_ERROR_FIFO_FULL);
813 DEFINE_AAX_ERROR_STRING(AAX_ERROR_INITIALIZING_PACKET_STREAM_THREAD);
814 DEFINE_AAX_ERROR_STRING(AAX_ERROR_POST_PACKET_FAILED);
815 DEFINE_AAX_ERROR_STRING(AAX_RESULT_PACKET_STREAM_NOT_EMPTY);
816 DEFINE_AAX_ERROR_STRING(AAX_RESULT_ADD_FIELD_UNSUPPORTED_FIELD_TYPE);
817 DEFINE_AAX_ERROR_STRING(AAX_ERROR_MIXER_THREAD_FALLING_BEHIND);
818 DEFINE_AAX_ERROR_STRING(AAX_ERROR_INVALID_FIELD_INDEX);
819 DEFINE_AAX_ERROR_STRING(AAX_ERROR_MALFORMED_CHUNK);
820 DEFINE_AAX_ERROR_STRING(AAX_ERROR_TOD_BEHIND);
821 DEFINE_AAX_ERROR_STRING(AAX_RESULT_NEW_PACKET_POSTED);
822 DEFINE_AAX_ERROR_STRING(AAX_ERROR_PLUGIN_NOT_AUTHORIZED);
823 DEFINE_AAX_ERROR_STRING(AAX_ERROR_PLUGIN_NULL_PARAMETER);
824 DEFINE_AAX_ERROR_STRING(AAX_ERROR_NOTIFICATION_FAILED);
825 DEFINE_AAX_ERROR_STRING(AAX_ERROR_INVALID_VIEW_SIZE);
826 DEFINE_AAX_ERROR_STRING(AAX_ERROR_SIGNED_INT_OVERFLOW);
827 DEFINE_AAX_ERROR_STRING(AAX_ERROR_NO_COMPONENTS);
828 DEFINE_AAX_ERROR_STRING(AAX_ERROR_DUPLICATE_EFFECT_ID);
829 DEFINE_AAX_ERROR_STRING(AAX_ERROR_DUPLICATE_TYPE_ID);
830 DEFINE_AAX_ERROR_STRING(AAX_ERROR_EMPTY_EFFECT_NAME);
831 DEFINE_AAX_ERROR_STRING(AAX_ERROR_UNKNOWN_PLUGIN);
832 DEFINE_AAX_ERROR_STRING(AAX_ERROR_PROPERTY_UNDEFINED);
833 DEFINE_AAX_ERROR_STRING(AAX_ERROR_INVALID_PATH);
834 DEFINE_AAX_ERROR_STRING(AAX_ERROR_UNKNOWN_ID);
835 DEFINE_AAX_ERROR_STRING(AAX_ERROR_UNKNOWN_EXCEPTION);
836 DEFINE_AAX_ERROR_STRING(AAX_ERROR_INVALID_ARGUMENT);
837 DEFINE_AAX_ERROR_STRING(AAX_ERROR_NULL_ARGUMENT);
838 DEFINE_AAX_ERROR_STRING(AAX_ERROR_INVALID_INTERNAL_DATA);
839 DEFINE_AAX_ERROR_STRING(AAX_ERROR_ARGUMENT_BUFFER_OVERFLOW);
840
841 if (AAX_ERROR_PLUGIN_BEGIN >= inResult && AAX_ERROR_PLUGIN_END <= inResult)
842 return std::string("plug-in defined error");
843
844 return std::string("<unknown error code>");
845}
846
847std::string AAX::AsStringSupportLevel(AAX_ESupportLevel inSupportLevel)
848{
849 switch (inSupportLevel)
850 {
851 case AAX_eSupportLevel_Uninitialized:
852 return "AAX_eSupportLevel_Uninitialized";
853 case AAX_eSupportLevel_Unsupported:
854 return "AAX_eSupportLevel_Unsupported";
855 case AAX_eSupportLevel_Supported:
856 return "AAX_eSupportLevel_Supported";
857 case AAX_eSupportLevel_Disabled:
858 return "AAX_eSupportLevel_Disabled";
859 case AAX_eSupportLevel_ByProperty:
860 return "AAX_eSupportLevel_ByProperty";
861 }
862 return std::to_string(inSupportLevel);
863}
864
865#endif
AAX_ESupportLevel
AAX_ESupportLevel
Definition: AAX_Enums.h:1320
AAX_eSupportLevel_Uninitialized
@ AAX_eSupportLevel_Uninitialized
Definition: AAX_Enums.h:1323
AAX_eSupportLevel_Unsupported
@ AAX_eSupportLevel_Unsupported
Definition: AAX_Enums.h:1327
AAX_eSupportLevel_Disabled
@ AAX_eSupportLevel_Disabled
Definition: AAX_Enums.h:1342
AAX_eSupportLevel_ByProperty
@ AAX_eSupportLevel_ByProperty
Definition: AAX_Enums.h:1349
AAX_eSupportLevel_Supported
@ AAX_eSupportLevel_Supported
Definition: AAX_Enums.h:1331
AAX_EStemFormat
AAX_EStemFormat
Stem format definitions.
Definition: AAX_Enums.h:243
AAX_eStemFormat_9_1_6
@ AAX_eStemFormat_9_1_6
L C R Lw Rw Lss Rss Lsr Rsr LFE Ltf Rtf Ltm Rtm Ltr Rtr.
Definition: AAX_Enums.h:271
AAX_eStemFormat_Mono
@ AAX_eStemFormat_Mono
M.
Definition: AAX_Enums.h:245
AAX_eStemFormat_Ambi_3_ACN
@ AAX_eStemFormat_Ambi_3_ACN
Ambisonics: third-order with ACN channel order and SN3D (AmbiX) normalization.
Definition: AAX_Enums.h:276
AAX_eStemFormat_9_1_4
@ AAX_eStemFormat_9_1_4
L C R Lw Rw Lss Rss Lsr Rsr LFE Ltf Rtf Ltr Rtr.
Definition: AAX_Enums.h:269
AAX_eStemFormat_INT32_MAX
@ AAX_eStemFormat_INT32_MAX
Definition: AAX_Enums.h:290
AAX_eStemFormat_9_0_4
@ AAX_eStemFormat_9_0_4
L C R Lw Rw Lss Rss Lsr Rsr Ltf Rtf Ltr Rtr.
Definition: AAX_Enums.h:268
AAX_eStemFormat_5_0_4
@ AAX_eStemFormat_5_0_4
L C R Ls Rs Ltf Rtf Ltr Rtr.
Definition: AAX_Enums.h:262
AAX_eStemFormat_Ambi_1_ACN
@ AAX_eStemFormat_Ambi_1_ACN
Ambisonics: first-order with ACN channel order and SN3D (AmbiX) normalization.
Definition: AAX_Enums.h:274
AAX_eStemFormat_7_0_DTS
@ AAX_eStemFormat_7_0_DTS
L C R Lss Rss Lsr Rsr.
Definition: AAX_Enums.h:256
AAX_eStemFormat_7_0_SDDS
@ AAX_eStemFormat_7_0_SDDS
L Lc C Rc R Ls Rs.
Definition: AAX_Enums.h:254
AAX_eStemFormat_7_1_2
@ AAX_eStemFormat_7_1_2
L C R Lss Rss Lsr Rsr LFE Lts Rts.
Definition: AAX_Enums.h:259
AAX_eStemFormat_5_1_2
@ AAX_eStemFormat_5_1_2
L C R Ls Rs LFE Ltm Rtm.
Definition: AAX_Enums.h:261
AAX_eStemFormat_Quad
@ AAX_eStemFormat_Quad
L R Ls Rs.
Definition: AAX_Enums.h:249
AAX_eStemFormatNum
@ AAX_eStemFormatNum
Definition: AAX_Enums.h:285
AAX_eStemFormat_None
@ AAX_eStemFormat_None
Definition: AAX_Enums.h:287
AAX_eStemFormat_5_0_2
@ AAX_eStemFormat_5_0_2
L C R Ls Rs Ltm Rtm.
Definition: AAX_Enums.h:260
AAX_eStemFormat_7_1_4
@ AAX_eStemFormat_7_1_4
L C R Lss Rss Lsr Rsr LFE Ltf Rtf Ltr Rtr.
Definition: AAX_Enums.h:265
AAX_eStemFormat_7_0_6
@ AAX_eStemFormat_7_0_6
L C R Lss Rss Lsr Rsr Ltf Rtf Ltm Rtm Ltr Rtr.
Definition: AAX_Enums.h:266
AAX_eStemFormat_9_0_6
@ AAX_eStemFormat_9_0_6
L C R Lw Rw Lss Rss Lsr Rsr Ltf Rtf Ltm Rtm Ltr Rtr.
Definition: AAX_Enums.h:270
AAX_eStemFormat_7_1_SDDS
@ AAX_eStemFormat_7_1_SDDS
L Lc C Rc R Ls Rs LFE.
Definition: AAX_Enums.h:255
AAX_eStemFormat_Stereo
@ AAX_eStemFormat_Stereo
L R.
Definition: AAX_Enums.h:246
AAX_eStemFormat_7_1_DTS
@ AAX_eStemFormat_7_1_DTS
L C R Lss Rss Lsr Rsr LFE.
Definition: AAX_Enums.h:257
AAX_eStemFormat_7_1_6
@ AAX_eStemFormat_7_1_6
L C R Lss Rss Lsr Rsr LFE Ltf Rtf Ltm Rtm Ltr Rtr.
Definition: AAX_Enums.h:267
AAX_eStemFormat_LCR
@ AAX_eStemFormat_LCR
L C R.
Definition: AAX_Enums.h:247
AAX_eStemFormat_5_1
@ AAX_eStemFormat_5_1
L C R Ls Rs LFE.
Definition: AAX_Enums.h:251
AAX_eStemFormat_LCRS
@ AAX_eStemFormat_LCRS
L C R S.
Definition: AAX_Enums.h:248
AAX_eStemFormat_5_1_4
@ AAX_eStemFormat_5_1_4
L C R Ls Rs LFE Ltf Rtf Ltr Rtr.
Definition: AAX_Enums.h:263
AAX_eStemFormat_7_0_4
@ AAX_eStemFormat_7_0_4
L C R Lss Rss Lsr Rsr Ltf Rtf Ltr Rtr.
Definition: AAX_Enums.h:264
AAX_eStemFormat_Ambi_4_ACN
@ AAX_eStemFormat_Ambi_4_ACN
Ambisonics: fourth-order with ACN channel order and SN3D (AmbiX) normalization.
Definition: AAX_Enums.h:277
AAX_eStemFormat_Ambi_5_ACN
@ AAX_eStemFormat_Ambi_5_ACN
Ambisonics: fifth-order with ACN channel order and SN3D (AmbiX) normalization.
Definition: AAX_Enums.h:278
AAX_eStemFormat_7_0_2
@ AAX_eStemFormat_7_0_2
L C R Lss Rss Lsr Rsr Lts Rts.
Definition: AAX_Enums.h:258
AAX_eStemFormat_6_1
@ AAX_eStemFormat_6_1
L C R Ls Cs Rs LFE.
Definition: AAX_Enums.h:253
AAX_eStemFormat_5_0
@ AAX_eStemFormat_5_0
L C R Ls Rs.
Definition: AAX_Enums.h:250
AAX_eStemFormat_Ambi_6_ACN
@ AAX_eStemFormat_Ambi_6_ACN
Ambisonics: sixth-order with ACN channel order and SN3D (AmbiX) normalization.
Definition: AAX_Enums.h:279
AAX_eStemFormat_6_0
@ AAX_eStemFormat_6_0
L C R Ls Cs Rs.
Definition: AAX_Enums.h:252
AAX_eStemFormat_Ambi_7_ACN
@ AAX_eStemFormat_Ambi_7_ACN
Ambisonics: seventh-order with ACN channel order and SN3D (AmbiX) normalization.
Definition: AAX_Enums.h:280
AAX_eStemFormat_Any
@ AAX_eStemFormat_Any
Definition: AAX_Enums.h:288
AAX_eStemFormat_Ambi_2_ACN
@ AAX_eStemFormat_Ambi_2_ACN
Ambisonics: second-order with ACN channel order and SN3D (AmbiX) normalization.
Definition: AAX_Enums.h:275
AAX_Errors.h
Definitions of error codes used by AAX plug-ins.
AAX_RESULT_NEW_PACKET_POSTED
@ AAX_RESULT_NEW_PACKET_POSTED
Definition: AAX_Errors.h:78
AAX_ERROR_CONTEXT_ALREADY_HAS_METERS
@ AAX_ERROR_CONTEXT_ALREADY_HAS_METERS
Definition: AAX_Errors.h:64
AAX_ERROR_INVALID_PARAMETER_ID
@ AAX_ERROR_INVALID_PARAMETER_ID
Definition: AAX_Errors.h:51
AAX_ERROR_NOTIFICATION_FAILED
@ AAX_ERROR_NOTIFICATION_FAILED
Definition: AAX_Errors.h:81
AAX_ERROR_PORT_ID_OUT_OF_RANGE
@ AAX_ERROR_PORT_ID_OUT_OF_RANGE
Definition: AAX_Errors.h:66
AAX_ERROR_INVALID_CHUNK_ID
@ AAX_ERROR_INVALID_CHUNK_ID
Definition: AAX_Errors.h:57
AAX_ERROR_PLUGIN_END
@ AAX_ERROR_PLUGIN_END
Custom plug-in error codes may be placed in the range ( AAX_ERROR_PLUGIN_END, AAX_ERROR_PLUGIN_BEGIN ...
Definition: AAX_Errors.h:105
AAX_RESULT_ADD_FIELD_UNSUPPORTED_FIELD_TYPE
@ AAX_RESULT_ADD_FIELD_UNSUPPORTED_FIELD_TYPE
Definition: AAX_Errors.h:73
AAX_ERROR_UNIMPLEMENTED
@ AAX_ERROR_UNIMPLEMENTED
Definition: AAX_Errors.h:59
AAX_ERROR_PLUGIN_NULL_PARAMETER
@ AAX_ERROR_PLUGIN_NULL_PARAMETER
Definition: AAX_Errors.h:80
AAX_RESULT_PACKET_STREAM_NOT_EMPTY
@ AAX_RESULT_PACKET_STREAM_NOT_EMPTY
Definition: AAX_Errors.h:72
AAX_ERROR_UNKNOWN_EXCEPTION
@ AAX_ERROR_UNKNOWN_EXCEPTION
An AAX plug-in should return this to the host if an unknown exception is caught. Exceptions should ne...
Definition: AAX_Errors.h:92
AAX_ERROR_MALFORMED_CHUNK
@ AAX_ERROR_MALFORMED_CHUNK
Definition: AAX_Errors.h:76
AAX_ERROR_EMPTY_EFFECT_NAME
@ AAX_ERROR_EMPTY_EFFECT_NAME
Definition: AAX_Errors.h:87
AAX_ERROR_MIXER_THREAD_FALLING_BEHIND
@ AAX_ERROR_MIXER_THREAD_FALLING_BEHIND
Definition: AAX_Errors.h:74
AAX_ERROR_DIRECT_ACCESS_OUT_OF_BOUNDS
@ AAX_ERROR_DIRECT_ACCESS_OUT_OF_BOUNDS
Definition: AAX_Errors.h:68
AAX_ERROR_INVALID_PATH
@ AAX_ERROR_INVALID_PATH
Definition: AAX_Errors.h:90
AAX_ERROR_SIGNED_INT_OVERFLOW
@ AAX_ERROR_SIGNED_INT_OVERFLOW
Definition: AAX_Errors.h:83
AAX_ERROR_FIFO_FULL
@ AAX_ERROR_FIFO_FULL
Definition: AAX_Errors.h:69
AAX_ERROR_NULL_OBJECT
@ AAX_ERROR_NULL_OBJECT
Definition: AAX_Errors.h:54
AAX_ERROR_NULL_COMPONENT
@ AAX_ERROR_NULL_COMPONENT
Definition: AAX_Errors.h:65
AAX_ERROR_PLUGIN_BEGIN
@ AAX_ERROR_PLUGIN_BEGIN
Custom plug-in error codes may be placed in the range ( AAX_ERROR_PLUGIN_END, AAX_ERROR_PLUGIN_BEGIN ...
Definition: AAX_Errors.h:104
AAX_ERROR_INVALID_ARGUMENT
@ AAX_ERROR_INVALID_ARGUMENT
One or more input parameters are invalid; all output parameters are left unchanged.
Definition: AAX_Errors.h:93
AAX_ERROR_INVALID_METER_INDEX
@ AAX_ERROR_INVALID_METER_INDEX
Definition: AAX_Errors.h:53
AAX_ERROR_PLUGIN_NOT_AUTHORIZED
@ AAX_ERROR_PLUGIN_NOT_AUTHORIZED
Definition: AAX_Errors.h:79
AAX_ERROR_UNKNOWN_PLUGIN
@ AAX_ERROR_UNKNOWN_PLUGIN
Definition: AAX_Errors.h:88
AAX_ERROR_INVALID_STRING_CONVERSION
@ AAX_ERROR_INVALID_STRING_CONVERSION
Definition: AAX_Errors.h:52
AAX_ERROR_ACF_ERROR
@ AAX_ERROR_ACF_ERROR
Definition: AAX_Errors.h:62
AAX_ERROR_OLDER_VERSION
@ AAX_ERROR_OLDER_VERSION
Definition: AAX_Errors.h:55
AAX_ERROR_INVALID_FIELD_INDEX
@ AAX_ERROR_INVALID_FIELD_INDEX
Definition: AAX_Errors.h:75
AAX_ERROR_NO_COMPONENTS
@ AAX_ERROR_NO_COMPONENTS
Definition: AAX_Errors.h:84
AAX_ERROR_POST_PACKET_FAILED
@ AAX_ERROR_POST_PACKET_FAILED
Definition: AAX_Errors.h:71
AAX_ERROR_INCORRECT_CHUNK_SIZE
@ AAX_ERROR_INCORRECT_CHUNK_SIZE
Definition: AAX_Errors.h:58
AAX_ERROR_FIELD_TYPE_DOES_NOT_SUPPORT_DIRECT_ACCESS
@ AAX_ERROR_FIELD_TYPE_DOES_NOT_SUPPORT_DIRECT_ACCESS
Definition: AAX_Errors.h:67
AAX_ERROR_NULL_ARGUMENT
@ AAX_ERROR_NULL_ARGUMENT
One or more required pointer arguments are null.
Definition: AAX_Errors.h:94
AAX_ERROR_PROPERTY_UNDEFINED
@ AAX_ERROR_PROPERTY_UNDEFINED
Definition: AAX_Errors.h:89
AAX_ERROR_DUPLICATE_TYPE_ID
@ AAX_ERROR_DUPLICATE_TYPE_ID
Definition: AAX_Errors.h:86
AAX_ERROR_INVALID_VIEW_SIZE
@ AAX_ERROR_INVALID_VIEW_SIZE
Definition: AAX_Errors.h:82
AAX_ERROR_INVALID_PARAMETER_INDEX
@ AAX_ERROR_INVALID_PARAMETER_INDEX
Definition: AAX_Errors.h:60
AAX_ERROR_INITIALIZING_PACKET_STREAM_THREAD
@ AAX_ERROR_INITIALIZING_PACKET_STREAM_THREAD
Definition: AAX_Errors.h:70
AAX_ERROR_INVALID_METER_TYPE
@ AAX_ERROR_INVALID_METER_TYPE
Definition: AAX_Errors.h:63
AAX_ERROR_INVALID_CHUNK_INDEX
@ AAX_ERROR_INVALID_CHUNK_INDEX
Definition: AAX_Errors.h:56
AAX_ERROR_UNKNOWN_ID
@ AAX_ERROR_UNKNOWN_ID
Definition: AAX_Errors.h:91
AAX_SUCCESS
@ AAX_SUCCESS
Definition: AAX_Errors.h:49
AAX_ERROR_INVALID_INTERNAL_DATA
@ AAX_ERROR_INVALID_INTERNAL_DATA
Some part of the internal data required by the method is invalid.
Definition: AAX_Errors.h:95
AAX_ERROR_NOT_INITIALIZED
@ AAX_ERROR_NOT_INITIALIZED
Definition: AAX_Errors.h:61
AAX_ERROR_TOD_BEHIND
@ AAX_ERROR_TOD_BEHIND
Definition: AAX_Errors.h:77
AAX_ERROR_ARGUMENT_BUFFER_OVERFLOW
@ AAX_ERROR_ARGUMENT_BUFFER_OVERFLOW
A buffer argument was not large enough to hold the data which must be placed within it.
Definition: AAX_Errors.h:96
AAX_ERROR_DUPLICATE_EFFECT_ID
@ AAX_ERROR_DUPLICATE_EFFECT_ID
Definition: AAX_Errors.h:85
AAX_Result
int32_t AAX_Result
Definition: AAX.h:347
AAX_CONSTEXPR
#define AAX_CONSTEXPR
constexpr keyword macro
Definition: AAX.h:175
AAX_CPropertyValue
int32_t AAX_CPropertyValue
32-bit property values
Definition: AAX.h:348
AAX_IString.h
An AAX string interface.
DEFINE_AAX_ERROR_STRING
#define DEFINE_AAX_ERROR_STRING(X)
AAX_EProperty
AAX_EProperty
The list of properties that can be added to an AAX_IPropertyMap.
Definition: AAX_Properties.h:82
AAX_eProperty_Constraint_Location
@ AAX_eProperty_Constraint_Location
Constraint on the algorithm's location, as a mask of AAX_EConstraintLocationMask.
Definition: AAX_Properties.h:736
AAX_eProperty_SampleRate
@ AAX_eProperty_SampleRate
Specifies which sample rates the Effect supports. A mask of AAX_ESampleRateMask.
Definition: AAX_Properties.h:385
AAX_Assert.h
Declarations for cross-platform AAX_ASSERT, AAX_TRACE and related facilities.
AAX_ASSERT
#define AAX_ASSERT(condition)
Asserts that a condition is true and logs an error if the condition is false.
Definition: AAX_Assert.h:281
AAX
Definition: AAX_EnvironmentUtilities.h:72
AAX::IsFourCharASCII
bool IsFourCharASCII(uint32_t inFourChar)
Definition: AAX_StringUtilities.hpp:235
AAX::AsStringPropertyValue
std::string AsStringPropertyValue(AAX_EProperty inProperty, AAX_CPropertyValue inPropertyValue)
Definition: AAX_StringUtilities.hpp:307
AAX::AsStringFourChar
std::string AsStringFourChar(uint32_t inFourChar)
Definition: AAX_StringUtilities.hpp:250
AAX::AsStringStemFormat
std::string AsStringStemFormat(AAX_EStemFormat inStemFormat, bool inAbbreviate=false)
Definition: AAX_StringUtilities.hpp:362
AAX::AsStringResult
std::string AsStringResult(AAX_Result inResult)
Definition: AAX_StringUtilities.hpp:786
AAX::Caseless_strcmp
int32_t Caseless_strcmp(const char *cs, const char *ct)
Definition: AAX_StringUtilities.hpp:143
AAX::Binary2String
std::string Binary2String(uint32_t binaryValue, int32_t numBits)
Definition: AAX_StringUtilities.hpp:186
AAX::AsStringSupportLevel
std::string AsStringSupportLevel(AAX_ESupportLevel inSupportLevel)
Definition: AAX_StringUtilities.hpp:847
AAX::String2Binary
uint32_t String2Binary(const AAX_IString &s)
Definition: AAX_StringUtilities.hpp:207
AAX::AsStringIDTriad
std::string AsStringIDTriad(const AAX_SPlugInIdentifierTriad &inIDTriad)
Definition: AAX_StringUtilities.hpp:350
AAX::GetCStringOfLength
void GetCStringOfLength(char *stringOut, const char *stringIn, int32_t aMaxChars)
==============================================================
Definition: AAX_StringUtilities.hpp:103
AAX::IsASCII
bool IsASCII(char inChar)
Definition: AAX_StringUtilities.hpp:230
AAX::AsStringInt32
std::string AsStringInt32(int32_t inInt32)
Definition: AAX_StringUtilities.hpp:340
AAX::AsStringUInt32
std::string AsStringUInt32(uint32_t inUInt32)
Definition: AAX_StringUtilities.hpp:345
AAX::AsStringStemChannel
std::string AsStringStemChannel(AAX_EStemFormat inStemFormat, uint32_t inChannelIndex, bool inAbbreviate)
Definition: AAX_StringUtilities.hpp:411
AAX::internal::ToHexadecimal
std::string ToHexadecimal(T inValue, bool inLeadingZeros=false)
Definition: AAX_StringUtilities.hpp:277
AAX_SPlugInIdentifierTriad
Plug-in Identifier Triad.
Definition: AAX.h:566
AAX_SPlugInIdentifierTriad::mProductID
AAX_CTypeID mProductID
The Plug-In's product (Effect) ID.
Definition: AAX.h:568
AAX_SPlugInIdentifierTriad::mPlugInID
AAX_CTypeID mPlugInID
The ID of a specific type in the product (Effect)
Definition: AAX.h:569
AAX_SPlugInIdentifierTriad::mManufacturerID
AAX_CTypeID mManufacturerID
The Plug-In's manufacturer ID.
Definition: AAX.h:567
AAX_IString
A simple string container that can be passed across a binary boundary. This class,...
Definition: AAX_IString.h:51
AAX_IString::Get
virtual const char * Get() const =0
AAX_IString::Length
virtual uint32_t Length() const =0