Version

menu_open
Wwise SDK 2024.1.1
AkErrorMessageTranslator.h
Go to the documentation of this file.
1 /*******************************************************************************
2 The content of this file includes portions of the AUDIOKINETIC Wwise Technology
3 released in source code form as part of the SDK installer package.
4 
5 Commercial License Usage
6 
7 Licensees holding valid commercial licenses to the AUDIOKINETIC Wwise Technology
8 may use this file in accordance with the end user license agreement provided
9 with the software or, alternatively, in accordance with the terms contained in a
10 written agreement between you and Audiokinetic Inc.
11 
12  Copyright (c) 2024 Audiokinetic Inc.
13 *******************************************************************************/
14 #include <AK/SoundEngine/Common/AkSoundEngine.h> // Sound engine
15 #define AK_TRANSLATOR_MAX_NAME_SIZE 150
16 #define AK_MAX_ERROR_LENGTH 1000
17 
18 // AkErrorMessageTranslator.h
19 /// \file
20 /// Contains the interface for a message translator
21 #pragma once
22 
24 {
25 public:
27  m_isReadyForTranslation{ false },
28  m_fallBackTranslator{ nullptr }
29  {}
30 
31  /// ErrorMessageTranslator class destructor.
33 
34  /**
35  Terminate the translator
36  */
37  virtual void Term() = 0;
38 
39  /**
40  Sets the fallBackTranslator to the given fallback translator.
41  The class that created the previously affected fallBackTranslator has
42  the responsibilty to delete it.
43  */
44  void SetFallBackTranslator(AkErrorMessageTranslator* in_fallBackTranslator) { m_fallBackTranslator = in_fallBackTranslator; }
45 
46  /**
47  Resolve names associated to the wwise tag(s) in the error message if possible
48  @param[in] in_pszError The error message to translate
49  @param[out] out_translatedPszError The final result of the translation
50  @param[in] in_maxPszErrorSize The maximum size of the translatedPszError and also the maximum size of the m_translationBuffer
51  @param[in] in_args The variable arguments used in the tranlsation
52  @param[in] in_uArgSize The total size of variable arguments, in bytes
53  @return bool Whether or not the translation was successful
54  */
55  virtual bool Translate(const AkOSChar* in_pszError, AkOSChar* out_translatedPszError, AkInt32 in_maxPszErrorSize, char* in_args, AkUInt32 in_uArgSize);
56 
57 protected:
59  {
60  const AkOSChar* m_pTag = nullptr;
61  const AkOSChar* m_pStartBlock = nullptr;
62  const char* m_args = nullptr;
66  bool m_infoIsParsed = false;
67  };
68 
71 
72  /**
73  Copy the given string to the parsingInformation.
74  @param[out] out_parsedInfo The modified translatedPszError
75  @param[in] in_maxSize The maximum space in the parsedInfo buffer
76  @param[in] in_stringSize The size of the string to print in the translatedPszError
77  @param[in] in_string The string to print in the translatedPszError
78  */
79  void CharPrintResult(AkOSChar* out_parsedInfo, AkInt32 in_maxSize, AkInt32 in_stringSize, const char* in_string);
80 
81  /**
82  A translator specific function to get some informations based on the given tag.
83  If the information is found, modify the translatedPszError and position
84  @param[in] in_pTagList The list of tag to parse
85  @param[in] in_uCount The number of tags to parse.
86  @param[out] out_uTranslated The number of tags already translated.
87  @return bool Whether or not all the tag were parsed
88  */
89  virtual bool GetInfo(TagInformation *in_pTagList, AkUInt32 in_uCount, AkUInt32& out_uTranslated) = 0;
90 private:
91  /**
92  Extract all the tags from the pszError
93  @param[in] in_pszError The error message to extract the tag from
94  @param[in] in_args The variable arguments used in the parsing
95  @param[in] in_uArgSize The size of the arguments used in the parsing
96  @param[out] out_tagList The list of TagInformation with a standard tag
97  @param[out] out_uCount The number of tags in out_TagsList
98  @param[out] out_uTranslated The number of tags already translated in out_TagsList.
99  @return bool True if we need extra translation of the tags.
100  */
101  bool ExtractTags(const AkOSChar* in_pszError, char* in_args, AkUInt32 in_uArgSize, TagInformation* out_tagList, AkUInt32& out_uCount, AkUInt32& out_uTranslated);
102 };
virtual bool Translate(const AkOSChar *in_pszError, AkOSChar *out_translatedPszError, AkInt32 in_maxPszErrorSize, char *in_args, AkUInt32 in_uArgSize)
virtual bool GetInfo(TagInformation *in_pTagList, AkUInt32 in_uCount, AkUInt32 &out_uTranslated)=0
uint16_t AkUInt16
Unsigned 16-bit integer.
#define AK_TRANSLATOR_MAX_NAME_SIZE
char AkOSChar
Generic character string.
Definition: AkTypes.h:60
int32_t AkInt32
Signed 32-bit integer.
void SetFallBackTranslator(AkErrorMessageTranslator *in_fallBackTranslator)
virtual ~AkErrorMessageTranslator()
ErrorMessageTranslator class destructor.
AkOSChar m_parsedInfo[AK_TRANSLATOR_MAX_NAME_SIZE]
virtual void Term()=0
uint32_t AkUInt32
Unsigned 32-bit integer.
AkErrorMessageTranslator * m_fallBackTranslator
void CharPrintResult(AkOSChar *out_parsedInfo, AkInt32 in_maxSize, AkInt32 in_stringSize, const char *in_string)

Cette page a-t-elle été utile ?

Besoin d'aide ?

Des questions ? Des problèmes ? Besoin de plus d'informations ? Contactez-nous, nous pouvons vous aider !

Visitez notre page d'Aide

Décrivez-nous de votre projet. Nous sommes là pour vous aider.

Enregistrez votre projet et nous vous aiderons à démarrer sans aucune obligation !

Partir du bon pied avec Wwise