3 // _dpl - Debug Print Line
4 // _dplf - Debug Print Line Format
5 // _dpcl - Debug Print Channel Line
6 // _dpclf - Debug Print Channel Line Format
11 // _dpl(int indent, ...);
12 // _dplf(int indent, const char * format, ...);
13 // _dpcl(const char ** channelNames, int channel, int indent, ...);
14 // _dpclf(const char ** channelNames, int channel, int indent, const char * format, ...);
16 // const char * dpln[] = { null, "MISC", null };
17 // enum dplc { none, misc=1 }; // use =0 to disable printing of specific channels
18 // _dpcl(dpln, dplc::misc, 0, "example: ", number, point, etc);
33 sprintf(s[0], "%04d", now.year);
34 sprintf(s[1], "%02d", now.month+1);
35 sprintf(s[2], "%02d", now.day);
36 sprintf(s[3], "%02d", now.hour);
37 sprintf(s[4], "%02d", now.minute);
38 sprintf(s[5], "%02d", now.second);
39 time = PrintString("*", s[0], s[1], s[2], "-", s[3], s[4], s[5], "*");
45 // Debug Print Line (_dpl)
47 #define _dpl(...) __dpl(__FILE__, __LINE__, ##__VA_ARGS__)
51 void __dpl(const char * file, int line, int indent, typed_object object, ...)
54 char * time = _printNow();
55 char string[MAX_F_STRING];
57 printf("%s %s:% 5d: ", time, file, line);
58 for(c = 0; c<indent; c++)
60 va_start(args, object);
61 PrintStdArgsToBuffer(string, sizeof(string), object, args);
68 // Debug Print Line Format (_dplf)
69 void __dplf(const char * file, int line, int indent, const char * format, ...)
72 char * time = _printNow();
73 char string[MAX_F_STRING];
75 va_start(args, format);
76 vsnprintf(string, sizeof(string), format, args);
77 string[sizeof(string)-1] = '\0';
78 printf("%s %s:% 5d: ", time, file, line);
79 for(c = 0; c<indent; c++)
81 printf("%s\n", string);
86 // Debug Print Channel Line (_dpcl)
87 void __dpcl(const char * file, int line, const char ** channels, int channel, int indent, typed_object object, ...)
89 bool chan = channel && channels && channels[channel];
93 char * time = _printNow();
94 char string[MAX_F_STRING];
96 printf("%s %s:% 5d: %s%s", time, file, line, chan ? channels[channel] : "", chan && channels[channel][0] ? ": " : "");
97 for(c = 0; c<indent; c++)
99 va_start(args, object);
100 PrintStdArgsToBuffer(string, sizeof(string), object, args);
108 // Debug Print Channel Line Format (_dpclf)
109 void __dpclf(const char * file, int line, const char ** channels, int channel, int indent, const char * format, ...)
111 bool chan = channel && channels && channels[channel];
112 if(chan || !channels)
115 char * time = _printNow();
116 char string[MAX_F_STRING];
118 va_start(args, format);
119 vsnprintf(string, sizeof(string), format, args);
120 string[sizeof(string)-1] = '\0';
121 printf("%s %s:% 5d: %s%s", time, file, line, chan ? channels[channel] : "", chan && channels[channel][0] ? ": " : "");
122 for(c = 0; c<indent; c++)
124 printf("%s\n", string);