From 58cacd924aaa27db24280142379628aedd27774f Mon Sep 17 00:00:00 2001 From: pschatzmann Date: Wed, 26 Jun 2024 07:16:34 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20doxygen=20from=20@=20pschatzma?= =?UTF-8?q?nn/arduino-audio-tools@f81756181b7d7c75c77a6c37608e98eba2429c67?= =?UTF-8?q?=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _audio_tools_2_audio_logger_8h_source.html | 407 +++++++++++---------- 1 file changed, 206 insertions(+), 201 deletions(-) diff --git a/_audio_tools_2_audio_logger_8h_source.html b/_audio_tools_2_audio_logger_8h_source.html index efa860daf0..d703df26c9 100644 --- a/_audio_tools_2_audio_logger_8h_source.html +++ b/_audio_tools_2_audio_logger_8h_source.html @@ -101,211 +101,216 @@
42  this->log_level = level;
43  }
44 
-
46  bool isLogging(LogLevel level = Info){
-
47  return log_print_ptr!=nullptr && level >= log_level;
+
45  // defines the log level
+
46  void setLogLevel(LogLevel level){
+
47  this->log_level = level;
48  }
49 
-
50  AudioLogger &prefix(const char* file, int line, LogLevel current_level){
-
51  lock();
-
52  printPrefix(file,line,current_level);
-
53  return *this;
-
54  }
-
55 
-
56  void println(){
-
57 #if defined(IS_DESKTOP) || defined(IS_DESKTOP_WITH_TIME_ONLY)
-
58  fprintf( stderr, "%s\n", print_buffer);
-
59 #else
-
60  log_print_ptr->println(print_buffer);
-
61 #endif
-
62  print_buffer[0]=0;
-
63  unlock();
-
64  }
-
65 
-
66  char* str() {
-
67  return print_buffer;
-
68  }
-
69 
-
71  static AudioLogger &instance(){
-
72  static AudioLogger *ptr;
-
73  if (ptr==nullptr){
-
74  ptr = new AudioLogger;
-
75  }
-
76  return *ptr;
-
77  }
-
78 
-
79  LogLevel level() {
-
80  return log_level;
-
81  }
-
82 
-
83  void print(const char *c){
-
84  log_print_ptr->print(c);
-
85  }
-
86 
-
87  void printChar(char c){
-
88  log_print_ptr->print(c);
-
89  }
-
90 
-
91  void printCharHex(char c){
-
92  char tmp[5];
-
93  unsigned char val = c;
-
94  snprintf(tmp, 5, "%02X ", val);
-
95  log_print_ptr->print(tmp);
-
96  }
-
97 
-
98  protected:
-
99  Print *log_print_ptr = &LOG_STREAM;
-
100  const char* TAG = "AudioTools";
-
101  LogLevel log_level = LOG_LEVEL;
-
102  char print_buffer[LOG_PRINTF_BUFFER_SIZE];
-
103 
-
104  AudioLogger() {}
-
105 
-
106  const char* levelName(LogLevel level) const {
-
107  switch(level){
-
108  case Debug:
-
109  return "D";
-
110  case Info:
-
111  return "I";
-
112  case Warning:
-
113  return "W";
-
114  case Error:
-
115  return "E";
-
116  }
-
117  return "";
-
118  }
-
119 
-
120  int printPrefix(const char* file, int line, LogLevel current_level) const {
-
121  const char* file_name = strrchr(file, '/') ? strrchr(file, '/') + 1 : file;
-
122  const char* level_code = levelName(current_level);
-
123  int len = log_print_ptr->print("[");
-
124  len += log_print_ptr->print(level_code);
-
125  len += log_print_ptr->print("] ");
-
126  len += log_print_ptr->print(file_name);
-
127  len += log_print_ptr->print(" : ");
-
128  len += log_print_ptr->print(line);
-
129  len += log_print_ptr->print(" - ");
-
130  return len;
-
131  }
-
132 
-
133  void lock(){
-
134  #if defined(ESP32) && defined(SYNCHRONIZED_LOGGING)
-
135  portENTER_CRITICAL(&mutex_logger);
-
136  #endif
-
137  }
-
138 
-
139  void unlock(){
-
140  #if defined(ESP32) && defined(SYNCHRONIZED_LOGGING)
-
141  portEXIT_CRITICAL(&mutex_logger);
-
142  #endif
-
143  }
-
144 };
-
145 
-
147 class CustomLogLevel {
-
148 public:
-
149  AudioLogger::LogLevel getActual(){
-
150  return actual;
-
151  }
-
152 
-
154  void set(AudioLogger::LogLevel level){
-
155  active = true;
-
156  original = AudioLogger::instance().level();
-
157  actual = level;
-
158  }
-
159 
-
161  void set(){
-
162  if (active){
-
163  AudioLogger::instance().begin(Serial, actual);
-
164  }
-
165  }
-
167  void reset(){
-
168  if (active){
-
169  AudioLogger::instance().begin(Serial, original);
-
170  }
-
171  }
-
172 protected:
-
173  bool active=false;
-
174  AudioLogger::LogLevel original;
-
175  AudioLogger::LogLevel actual;
-
176 
-
177 };
-
178 
-
179 
-
180 
-
181 }
-
182 
+
51  bool isLogging(LogLevel level = Info){
+
52  return log_print_ptr!=nullptr && level >= log_level;
+
53  }
+
54 
+
55  AudioLogger &prefix(const char* file, int line, LogLevel current_level){
+
56  lock();
+
57  printPrefix(file,line,current_level);
+
58  return *this;
+
59  }
+
60 
+
61  void println(){
+
62 #if defined(IS_DESKTOP) || defined(IS_DESKTOP_WITH_TIME_ONLY)
+
63  fprintf( stderr, "%s\n", print_buffer);
+
64 #else
+
65  log_print_ptr->println(print_buffer);
+
66 #endif
+
67  print_buffer[0]=0;
+
68  unlock();
+
69  }
+
70 
+
71  char* str() {
+
72  return print_buffer;
+
73  }
+
74 
+
76  static AudioLogger &instance(){
+
77  static AudioLogger *ptr;
+
78  if (ptr==nullptr){
+
79  ptr = new AudioLogger;
+
80  }
+
81  return *ptr;
+
82  }
+
83 
+
84  LogLevel level() {
+
85  return log_level;
+
86  }
+
87 
+
88  void print(const char *c){
+
89  log_print_ptr->print(c);
+
90  }
+
91 
+
92  void printChar(char c){
+
93  log_print_ptr->print(c);
+
94  }
+
95 
+
96  void printCharHex(char c){
+
97  char tmp[5];
+
98  unsigned char val = c;
+
99  snprintf(tmp, 5, "%02X ", val);
+
100  log_print_ptr->print(tmp);
+
101  }
+
102 
+
103  protected:
+
104  Print *log_print_ptr = &LOG_STREAM;
+
105  const char* TAG = "AudioTools";
+
106  LogLevel log_level = LOG_LEVEL;
+
107  char print_buffer[LOG_PRINTF_BUFFER_SIZE];
+
108 
+
109  AudioLogger() {}
+
110 
+
111  const char* levelName(LogLevel level) const {
+
112  switch(level){
+
113  case Debug:
+
114  return "D";
+
115  case Info:
+
116  return "I";
+
117  case Warning:
+
118  return "W";
+
119  case Error:
+
120  return "E";
+
121  }
+
122  return "";
+
123  }
+
124 
+
125  int printPrefix(const char* file, int line, LogLevel current_level) const {
+
126  const char* file_name = strrchr(file, '/') ? strrchr(file, '/') + 1 : file;
+
127  const char* level_code = levelName(current_level);
+
128  int len = log_print_ptr->print("[");
+
129  len += log_print_ptr->print(level_code);
+
130  len += log_print_ptr->print("] ");
+
131  len += log_print_ptr->print(file_name);
+
132  len += log_print_ptr->print(" : ");
+
133  len += log_print_ptr->print(line);
+
134  len += log_print_ptr->print(" - ");
+
135  return len;
+
136  }
+
137 
+
138  void lock(){
+
139  #if defined(ESP32) && defined(SYNCHRONIZED_LOGGING)
+
140  portENTER_CRITICAL(&mutex_logger);
+
141  #endif
+
142  }
+
143 
+
144  void unlock(){
+
145  #if defined(ESP32) && defined(SYNCHRONIZED_LOGGING)
+
146  portEXIT_CRITICAL(&mutex_logger);
+
147  #endif
+
148  }
+
149 };
+
150 
+
152 class CustomLogLevel {
+
153 public:
+
154  AudioLogger::LogLevel getActual(){
+
155  return actual;
+
156  }
+
157 
+
159  void set(AudioLogger::LogLevel level){
+
160  active = true;
+
161  original = AudioLogger::instance().level();
+
162  actual = level;
+
163  }
+
164 
+
166  void set(){
+
167  if (active){
+
168  AudioLogger::instance().begin(Serial, actual);
+
169  }
+
170  }
+
172  void reset(){
+
173  if (active){
+
174  AudioLogger::instance().begin(Serial, original);
+
175  }
+
176  }
+
177 protected:
+
178  bool active=false;
+
179  AudioLogger::LogLevel original;
+
180  AudioLogger::LogLevel actual;
+
181 
+
182 };
183 
-
184 //#define LOG_OUT(level, fmt, ...) {AudioLogger::instance().prefix(__FILE__,__LINE__, level);cont char PROGMEM *fmt_P=F(fmt); snprintf_P(AudioLogger::instance().str(), LOG_PRINTF_BUFFER_SIZE, fmt, ##__VA_ARGS__); AudioLogger::instance().println();}
-
185 #define LOG_OUT_PGMEM(level, fmt, ...) { \
-
186  AudioLogger::instance().prefix(__FILE__,__LINE__, level); \
-
187  snprintf(AudioLogger::instance().str(), LOG_PRINTF_BUFFER_SIZE, PSTR(fmt), ##__VA_ARGS__); \
-
188  AudioLogger::instance().println();\
-
189 }
-
190 
-
191 #define LOG_OUT(level, fmt, ...) { \
-
192  AudioLogger::instance().prefix(__FILE__,__LINE__, level); \
-
193  snprintf(AudioLogger::instance().str(), LOG_PRINTF_BUFFER_SIZE, fmt, ##__VA_ARGS__); \
-
194  AudioLogger::instance().println();\
-
195 }
-
196 #define LOG_MIN(level) { \
+
184 
+
185 
+
186 }
+
187 
+
188 
+
189 //#define LOG_OUT(level, fmt, ...) {AudioLogger::instance().prefix(__FILE__,__LINE__, level);cont char PROGMEM *fmt_P=F(fmt); snprintf_P(AudioLogger::instance().str(), LOG_PRINTF_BUFFER_SIZE, fmt, ##__VA_ARGS__); AudioLogger::instance().println();}
+
190 #define LOG_OUT_PGMEM(level, fmt, ...) { \
+
191  AudioLogger::instance().prefix(__FILE__,__LINE__, level); \
+
192  snprintf(AudioLogger::instance().str(), LOG_PRINTF_BUFFER_SIZE, PSTR(fmt), ##__VA_ARGS__); \
+
193  AudioLogger::instance().println();\
+
194 }
+
195 
+
196 #define LOG_OUT(level, fmt, ...) { \
197  AudioLogger::instance().prefix(__FILE__,__LINE__, level); \
-
198  AudioLogger::instance().println();\
-
199 }
-
200 
-
201 #ifdef LOG_NO_MSG
-
202 #define LOGD(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Debug) { LOG_MIN(AudioLogger::Debug);}
-
203 #define LOGI(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Info) { LOG_MIN(AudioLogger::Info);}
-
204 #define LOGW(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Warning) { LOG_MIN(AudioLogger::Warning);}
-
205 #define LOGE(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Error) { LOG_MIN(AudioLogger::Error);}
-
206 #else
-
207 // Log statments which store the fmt string in Progmem
-
208 #define LOGD(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Debug) { LOG_OUT_PGMEM(AudioLogger::Debug, fmt, ##__VA_ARGS__);}
-
209 #define LOGI(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Info) { LOG_OUT_PGMEM(AudioLogger::Info, fmt, ##__VA_ARGS__);}
-
210 #define LOGW(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Warning) { LOG_OUT_PGMEM(AudioLogger::Warning, fmt, ##__VA_ARGS__);}
-
211 #define LOGE(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Error) { LOG_OUT_PGMEM(AudioLogger::Error, fmt, ##__VA_ARGS__);}
-
212 #endif
-
213 
-
214 // Just log file and line
-
215 #if defined(NO_TRACED) || defined(NO_TRACE)
-
216 # define TRACED()
-
217 #else
-
218 # define TRACED() if (AudioLogger::instance().level()<=AudioLogger::Debug) { LOG_OUT(AudioLogger::Debug, LOG_METHOD);}
-
219 #endif
-
220 
-
221 #if defined(NO_TRACEI) || defined(NO_TRACE)
-
222 # define TRACEI()
-
223 #else
-
224 # define TRACEI() if (AudioLogger::instance().level()<=AudioLogger::Info) { LOG_OUT(AudioLogger::Info, LOG_METHOD);}
-
225 #endif
-
226 
-
227 #if defined(NO_TRACEW) || defined(NO_TRACE)
-
228 # define TRACEW()
-
229 #else
-
230 # define TRACEW() if (AudioLogger::instance().level()<=AudioLogger::Warning) { LOG_OUT(AudioLogger::Warning, LOG_METHOD);}
-
231 #endif
-
232 
-
233 #if defined(NO_TRACEE) || defined(NO_TRACE)
-
234 # define TRACEE()
-
235 #else
-
236 #define TRACEE() if (AudioLogger::instance().level()<=AudioLogger::Error) { LOG_OUT(AudioLogger::Error, LOG_METHOD);}
-
237 #endif
-
238 
-
239 
-
240 
-
241 #else
-
242 
-
243 // Switch off logging
-
244 #define LOGD(...)
-
245 #define LOGI(...)
-
246 #define LOGW(...)
-
247 #define LOGE(...)
-
248 #define TRACED()
-
249 #define TRACEI()
-
250 #define TRACEW()
-
251 #define TRACEE()
-
252 
-
253 #endif
-
254 
-
255 
+
198  snprintf(AudioLogger::instance().str(), LOG_PRINTF_BUFFER_SIZE, fmt, ##__VA_ARGS__); \
+
199  AudioLogger::instance().println();\
+
200 }
+
201 #define LOG_MIN(level) { \
+
202  AudioLogger::instance().prefix(__FILE__,__LINE__, level); \
+
203  AudioLogger::instance().println();\
+
204 }
+
205 
+
206 #ifdef LOG_NO_MSG
+
207 #define LOGD(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Debug) { LOG_MIN(AudioLogger::Debug);}
+
208 #define LOGI(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Info) { LOG_MIN(AudioLogger::Info);}
+
209 #define LOGW(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Warning) { LOG_MIN(AudioLogger::Warning);}
+
210 #define LOGE(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Error) { LOG_MIN(AudioLogger::Error);}
+
211 #else
+
212 // Log statments which store the fmt string in Progmem
+
213 #define LOGD(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Debug) { LOG_OUT_PGMEM(AudioLogger::Debug, fmt, ##__VA_ARGS__);}
+
214 #define LOGI(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Info) { LOG_OUT_PGMEM(AudioLogger::Info, fmt, ##__VA_ARGS__);}
+
215 #define LOGW(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Warning) { LOG_OUT_PGMEM(AudioLogger::Warning, fmt, ##__VA_ARGS__);}
+
216 #define LOGE(fmt, ...) if (AudioLogger::instance().level()<=AudioLogger::Error) { LOG_OUT_PGMEM(AudioLogger::Error, fmt, ##__VA_ARGS__);}
+
217 #endif
+
218 
+
219 // Just log file and line
+
220 #if defined(NO_TRACED) || defined(NO_TRACE)
+
221 # define TRACED()
+
222 #else
+
223 # define TRACED() if (AudioLogger::instance().level()<=AudioLogger::Debug) { LOG_OUT(AudioLogger::Debug, LOG_METHOD);}
+
224 #endif
+
225 
+
226 #if defined(NO_TRACEI) || defined(NO_TRACE)
+
227 # define TRACEI()
+
228 #else
+
229 # define TRACEI() if (AudioLogger::instance().level()<=AudioLogger::Info) { LOG_OUT(AudioLogger::Info, LOG_METHOD);}
+
230 #endif
+
231 
+
232 #if defined(NO_TRACEW) || defined(NO_TRACE)
+
233 # define TRACEW()
+
234 #else
+
235 # define TRACEW() if (AudioLogger::instance().level()<=AudioLogger::Warning) { LOG_OUT(AudioLogger::Warning, LOG_METHOD);}
+
236 #endif
+
237 
+
238 #if defined(NO_TRACEE) || defined(NO_TRACE)
+
239 # define TRACEE()
+
240 #else
+
241 #define TRACEE() if (AudioLogger::instance().level()<=AudioLogger::Error) { LOG_OUT(AudioLogger::Error, LOG_METHOD);}
+
242 #endif
+
243 
+
244 
+
245 
+
246 #else
+
247 
+
248 // Switch off logging
+
249 #define LOGD(...)
+
250 #define LOGI(...)
+
251 #define LOGW(...)
+
252 #define LOGE(...)
+
253 #define TRACED()
+
254 #define TRACEI()
+
255 #define TRACEW()
+
256 #define TRACEE()
+
257 
+
258 #endif
+
259 
+
260 
Generic Implementation of sound input and output for desktop environments using portaudio.
Definition: AnalogAudioArduino.h:12