@@ -44,194 +44,81 @@ void printNL(void);
4444
4545// Public Methods //////////////////////////////////////////////////////////////
4646
47- size_t printBuf (const uint8_t * buffer , size_t size )
47+ size_t printBuf (writefunc_p writefunc , const uint8_t * buffer , size_t size )
4848{
4949 size_t n = 0 ;
5050 while (size -- ) {
51- if (printChr (* buffer ++ )) n ++ ;
51+ if (writefunc (* buffer ++ )) n ++ ;
5252 else break ;
5353 }
5454 return n ;
5555}
5656
57- size_t printStr (const char * str )
57+ size_t printStr (writefunc_p writefunc , const char * str )
5858{
5959 size_t n = 0 ;
6060 char c ;
6161
6262 if (!str ) return 0 ;
6363
6464 while ( c = * str ++ ) { // assignment intented
65- if (printChr (c )) n ++ ;
65+ if (writefunc (c )) n ++ ;
6666 else break ;
6767 }
6868 return n ;
6969}
7070
7171
72- size_t Print_print_u (unsigned long n )
72+ size_t Print_print_u (writefunc_p writefunc , unsigned long n )
7373{
74- return printNumber (n ,10 );
74+ return printNumber (writefunc , n ,10 );
7575}
7676
77- size_t Print_print_i (long n )
77+ size_t Print_print_i (writefunc_p writefunc , long n )
7878{
79- return printInt (n ,10 );
79+ return printInt (writefunc , n ,10 );
8080}
8181
82- size_t Print_println_s (char * str )
82+ size_t Print_println_s (writefunc_p writefunc , char * str )
8383{
8484 size_t r ;
8585
86- r = printStr (str );
87- return r + println ();
86+ r = printStr (writefunc , str );
87+ return r + println (writefunc );
8888}
8989
9090
9191
92- size_t Print_println_u (unsigned long n )
92+ size_t Print_println_u (writefunc_p writefunc , unsigned long n )
9393{
9494 size_t r ;
9595
96- r = printNumber (n ,10 );
97- return r + println ();
96+ r = printNumber (writefunc , n ,10 );
97+ return r + println (writefunc );
9898}
9999
100- size_t Print_println_i (long n )
100+ size_t Print_println_i (writefunc_p writefunc , long n )
101101{
102102 size_t r ;
103103
104- r = printInt (n ,10 );
105- return r + println ();
104+ r = printInt (writefunc , n ,10 );
105+ return r + println (writefunc );
106106}
107107
108108
109- /*
110- size_t Print::print(long n, int base)
111- {
112- if (base == 0) {
113- return write(n);
114- } else if (base == 10) {
115- if (n < 0) {
116- int t = print('-');
117- n = -n;
118- return printNumber(n, 10) + t;
119- }
120- return printNumber(n, 10);
121- } else {
122- return printNumber(n, base);
123- }
124- }
125-
126- size_t Print::print(unsigned long n, int base)
127- {
128- if (base == 0) return write(n);
129- else return printNumber(n, base);
130- }
131-
132- size_t Print::print(double n, int digits)
133- {
134- return printFloat(n, digits);
135- }
136-
137- size_t Print::println(const __FlashStringHelper *ifsh)
138- {
139- size_t n = print(ifsh);
140- n += println();
141- return n;
142- }
143-
144- size_t Print::print(const Printable& x)
145- {
146- return x.printTo(*this);
147- }
148-
149- size_t Print::println(void)
150- {
151- return write("\r\n");
152- }
153-
154- size_t Print::println(const String &s)
155- {
156- size_t n = print(s);
157- n += println();
158- return n;
159- }
160-
161- size_t Print::println(const char c[])
162- {
163- size_t n = print(c);
164- n += println();
165- return n;
166- }
167-
168- size_t Print::println(char c)
169- {
170- size_t n = print(c);
171- n += println();
172- return n;
173- }
174-
175- size_t Print::println(unsigned char b, int base)
176- {
177- size_t n = print(b, base);
178- n += println();
179- return n;
180- }
181-
182- size_t Print::println(int num, int base)
183- {
184- size_t n = print(num, base);
185- n += println();
186- return n;
187- }
188-
189- size_t Print::println(unsigned int num, int base)
190- {
191- size_t n = print(num, base);
192- n += println();
193- return n;
194- }
195-
196- size_t Print::println(long num, int base)
197- {
198- size_t n = print(num, base);
199- n += println();
200- return n;
201- }
202-
203- size_t Print::println(unsigned long num, int base)
204- {
205- size_t n = print(num, base);
206- n += println();
207- return n;
208- }
209-
210- size_t Print::println(double num, int digits)
211- {
212- size_t n = print(num, digits);
213- n += println();
214- return n;
215- }
216-
217- size_t Print::println(const Printable& x)
218- {
219- size_t n = print(x);
220- n += println();
221- return n;
222- }
223- */
224109// Private Methods /////////////////////////////////////////////////////////////
225110
226- size_t println (void )
111+ size_t println (writefunc_p writefunc )
227112{
228- printChr (13 );
229- printChr (10 );
230- return 2 ;
113+ size_t n ;
114+
115+ n = writefunc (13 );
116+ n += writefunc (10 );
117+ return n ;
231118}
232119
233120
234- size_t printNumber (unsigned long n , uint8_t base )
121+ size_t printNumber (writefunc_p writefunc , unsigned long n , uint8_t base )
235122{
236123 char buf [8 * sizeof (long ) + 1 ]; // Assumes 8-bit chars plus zero byte.
237124 char * str = & buf [sizeof (buf ) - 1 ];
@@ -248,27 +135,27 @@ size_t printNumber(unsigned long n, uint8_t base)
248135 * -- str = c < 10 ? c + '0' : c + 'A' - 10 ;
249136 } while (n );
250137
251- return printStr (str );
138+ return printStr (writefunc , str );
252139}
253140
254- size_t printInt (long n , uint8_t base )
141+ size_t printInt (writefunc_p writefunc , long n , uint8_t base )
255142{
256143 if (base == 0 ) {
257- return printChr ((unsigned char ) n );
144+ return writefunc ((unsigned char ) n );
258145 } else if (base == 10 ) {
259146 if (n < 0 ) {
260- int t = printChr ('-' );
147+ int t = writefunc ('-' );
261148 n = - n ;
262- return printNumber (n , 10 ) + t ;
149+ return printNumber (writefunc , n , 10 ) + t ;
263150 }
264- return printNumber (n , 10 );
151+ return printNumber (writefunc , n , 10 );
265152 } else {
266- return printNumber (n , base );
153+ return printNumber (writefunc , n , base );
267154 }
268155}
269156
270157/*
271- size_t Print_printFloat(double number, uint8_t digits)
158+ size_t Print_printFloat(writefunc_p writefunc, double number, uint8_t digits)
272159{
273160 size_t n = 0;
274161 uint8_t i;
0 commit comments