버전

menu_open
Wwise SDK 2024.1.1
AkErrorMessageTranslator.h
이 파일의 문서화 페이지로 가기
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)

이 페이지가 도움이 되었나요?

지원이 필요하신가요?

질문이 있으신가요? 문제를 겪고 계신가요? 더 많은 정보가 필요하신가요? 저희에게 문의해주시면 도와드리겠습니다!

지원 페이지를 방문해 주세요

작업하는 프로젝트에 대해 알려주세요. 언제든지 도와드릴 준비가 되어 있습니다.

프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.

Wwise를 시작해 보세요