aboutsummaryrefslogtreecommitdiffstats
path: root/wirish/Print.cpp
diff options
context:
space:
mode:
authorMarti Bolivar <mbolivar@leaflabs.com>2011-06-08 16:39:04 -0400
committerMarti Bolivar <mbolivar@leaflabs.com>2011-06-08 16:39:04 -0400
commit3f77427ecdcda5bc9dcceb7f79ec278e9cfcb42f (patch)
tree1e3b7fccf188ffc37fb2bd0e150092f90b38e3f7 /wirish/Print.cpp
parent8e4baf428403f4e575fc1d3296299dae69c91f6e (diff)
downloadlibrambutan-3f77427ecdcda5bc9dcceb7f79ec278e9cfcb42f.tar.gz
librambutan-3f77427ecdcda5bc9dcceb7f79ec278e9cfcb42f.zip
Update Print to match Arduino master.
Add base argument to integral Print methods, defaulting to DEC so as not to break backwards compatibility. Add precision argument to floating-point Print methods. These changes increase compatibility with the Arduino Print implementation.
Diffstat (limited to 'wirish/Print.cpp')
-rw-r--r--wirish/Print.cpp77
1 files changed, 35 insertions, 42 deletions
diff --git a/wirish/Print.cpp b/wirish/Print.cpp
index 9130c9c..58c7cc7 100644
--- a/wirish/Print.cpp
+++ b/wirish/Print.cpp
@@ -59,58 +59,56 @@ void Print::write(const void *buffer, uint32 size) {
}
}
-void Print::print(uint8 b) {
- this->write(b);
+void Print::print(uint8 b, int base) {
+ print((uint64)b, base);
}
void Print::print(char c) {
- print((uint8)c);
+ write(c);
}
void Print::print(const char str[]) {
write(str);
}
-void Print::print(int n) {
- print((long long)n);
+void Print::print(int n, int base) {
+ print((long long)n, base);
}
-void Print::print(unsigned int n) {
- print((unsigned long long)n);
+void Print::print(unsigned int n, int base) {
+ print((unsigned long long)n, base);
}
-void Print::print(long n) {
- print((long long)n);
+void Print::print(long n, int base) {
+ print((long long)n, base);
}
-void Print::print(unsigned long n) {
- print((unsigned long long)n);
+void Print::print(unsigned long n, int base) {
+ print((unsigned long long)n, base);
}
-void Print::print(long long n) {
+void Print::print(long long n, int base) {
+ if (base == BYTE) {
+ write((uint8)n);
+ return;
+ }
if (n < 0) {
print('-');
n = -n;
}
- printNumber(n, 10);
-}
-
-void Print::print(unsigned long long n) {
- printNumber(n, 10);
+ printNumber(n, base);
}
void Print::print(unsigned long long n, int base) {
- if (base == 0) {
- print((char)n);
- } else if (base == 10) {
- print(n);
+ if (base == BYTE) {
+ write((uint8)n);
} else {
printNumber(n, base);
}
}
-void Print::print(double n) {
- printFloat(n, 2);
+void Print::print(double n, int digits) {
+ printFloat(n, digits);
}
void Print::println(void) {
@@ -128,38 +126,33 @@ void Print::println(const char c[]) {
println();
}
-void Print::println(uint8 b) {
- print(b);
- println();
-}
-
-void Print::println(int n) {
- print(n);
+void Print::println(uint8 b, int base) {
+ print(b, base);
println();
}
-void Print::println(unsigned int n) {
- print(n);
+void Print::println(int n, int base) {
+ print(n, base);
println();
}
-void Print::println(long n) {
- print((long long)n);
+void Print::println(unsigned int n, int base) {
+ print(n, base);
println();
}
-void Print::println(unsigned long n) {
- print((unsigned long long)n);
+void Print::println(long n, int base) {
+ print((long long)n, base);
println();
}
-void Print::println(long long n) {
- print(n);
+void Print::println(unsigned long n, int base) {
+ print((unsigned long long)n, base);
println();
}
-void Print::println(unsigned long long n) {
- print(n);
+void Print::println(long long n, int base) {
+ print(n, base);
println();
}
@@ -168,8 +161,8 @@ void Print::println(unsigned long long n, int base) {
println();
}
-void Print::println(double n) {
- print(n);
+void Print::println(double n, int digits) {
+ print(n, digits);
println();
}