Control Surface  1.2.0
MIDI Control Surface library for Arduino
PrintStream.hpp
Go to the documentation of this file.
1 
5 #ifndef PrintStream_h
6 #define PrintStream_h
7 
10 AH_DIAGNOSTIC_WERROR() // Enable errors on warnings
11 
13 #include <AH/Arduino-Wrapper.h> // Print
15 
17 
20 
21 typedef Print &manipulator(Print &);
22 
23 Print &endl(Print &printer);
24 Print &flush(Print &printer);
25 Print &hex(Print &printer);
26 Print &bin(Print &printer);
27 Print &dec(Print &printer);
28 /* Print &oct(Print &printer); */
29 Print &boolalpha(Print &printer);
30 Print &noboolalpha(Print &printer);
31 Print &leadingzeros(Print &printer);
32 Print &noleadingzeros(Print &printer);
33 Print &uppercase(Print &printer);
34 Print &nouppercase(Print &printer);
35 Print &showbase(Print &printer);
36 Print &noshowbase(Print &printer);
37 
38 Print &operator<<(Print &printer, const __FlashStringHelper *s);
39 #ifdef ARDUINO
40 Print &operator<<(Print &printer, const String &s);
41 #endif
42 Print &operator<<(Print &printer, const char s[]);
43 Print &operator<<(Print &printer, char c);
44 Print &operator<<(Print &printer, unsigned char c);
45 Print &operator<<(Print &printer, int i);
46 Print &operator<<(Print &printer, unsigned int i);
47 Print &operator<<(Print &printer, int8_t i);
48 Print &operator<<(Print &printer, long i);
49 Print &operator<<(Print &printer, unsigned long i);
50 Print &operator<<(Print &printer, double d);
51 Print &operator<<(Print &printer, const Printable &p);
52 Print &operator<<(Print &printer, bool b);
53 
54 Print &operator<<(Print &printer, manipulator pf);
55 
56 struct Setbase {
57  uint8_t M_base;
58 };
59 Setbase setbase(uint8_t base);
60 Print &operator<<(Print &printer, Setbase f);
61 
62 struct Setprecision {
63  int M_n;
64 };
66 Print &operator<<(Print &printer, Setprecision f);
67 
68 struct Setbytesep {
69  char M_bytesep;
70 };
71 Setbytesep setbytesep(char bytesep);
72 Print &operator<<(Print &printer, Setbytesep f);
73 
75 
76 #ifndef ARDUINO
77 
78 #include <iomanip>
79 #include <iostream>
80 
81 // TODO: check conflicts between Arduino version and C++ STL version
82 using std::endl;
83 // using std::setbase;
84 // using std::setprecision;
85 using std::boolalpha;
86 using std::dec;
87 using std::flush;
88 using std::hex;
89 using std::noboolalpha;
90 using std::noshowbase;
91 using std::nouppercase;
92 using std::showbase;
93 using std::uppercase;
94 
95 inline std::ostream &operator<<(std::ostream &os, uint8_t u) {
96  // I'm lazy, I should probably implement one for uint8_t to get the leading
97  // zeros right
98  return os << static_cast<unsigned short>(u);
99 }
100 
101 inline std::ostream &operator<<(std::ostream &os,
102  const __FlashStringHelper *s) {
103  return os << reinterpret_cast<const char *>(s);
104 }
105 
106 #endif
107 
109 
111 
112 #include <Settings/NamespaceSettings.hpp>
113 
115 using AH::operator<<;
116 using AH::manipulator;
117 using AH::endl;
118 using AH::flush;
119 using AH::hex;
120 using AH::bin;
121 using AH::dec;
122 using AH::boolalpha;
123 using AH::noboolalpha;
124 using AH::leadingzeros;
125 using AH::noleadingzeros;
126 using AH::uppercase;
127 using AH::nouppercase;
128 using AH::showbase;
129 using AH::noshowbase;
130 using AH::setbase;
131 using AH::setprecision;
132 using AH::setbytesep;
134 
135 #endif // PrintStream_h
AH::setprecision
Setprecision setprecision(int n)
Definition: PrintStream.cpp:161
AH::boolalpha
Print & boolalpha(Print &printer)
Definition: PrintStream.cpp:82
Warnings.hpp
AH::noshowbase
Print & noshowbase(Print &printer)
Definition: PrintStream.cpp:50
AH::setbase
Setbase setbase(uint8_t base)
Definition: PrintStream.cpp:149
AH::Setbase::M_base
uint8_t M_base
Definition: PrintStream.hpp:57
AH::dec
Print & dec(Print &printer)
Definition: PrintStream.cpp:77
BEGIN_CS_NAMESPACE
#define BEGIN_CS_NAMESPACE
Definition: Settings/NamespaceSettings.hpp:9
AH_DIAGNOSTIC_POP
#define AH_DIAGNOSTIC_POP()
Definition: Warnings.hpp:36
AH::Setbytesep
Definition: PrintStream.hpp:68
AH::uppercase
Print & uppercase(Print &printer)
Definition: PrintStream.cpp:35
AH::Setbase
Definition: PrintStream.hpp:56
END_CS_NAMESPACE
#define END_CS_NAMESPACE
Definition: Settings/NamespaceSettings.hpp:10
AH::setbytesep
Setbytesep setbytesep(char bytesep)
Definition: PrintStream.cpp:155
AH::showbase
Print & showbase(Print &printer)
Definition: PrintStream.cpp:45
AH::manipulator
Print & manipulator(Print &)
Definition: PrintStream.hpp:21
AH::leadingzeros
Print & leadingzeros(Print &printer)
Definition: PrintStream.cpp:91
AH::noleadingzeros
Print & noleadingzeros(Print &printer)
Definition: PrintStream.cpp:95
AH::hex
Print & hex(Print &printer)
Definition: PrintStream.cpp:62
AH_DIAGNOSTIC_EXTERNAL_HEADER
#define AH_DIAGNOSTIC_EXTERNAL_HEADER()
Definition: Warnings.hpp:37
AH::bin
Print & bin(Print &printer)
Definition: PrintStream.cpp:72
AH::Setprecision
Definition: PrintStream.hpp:62
AH::Setbytesep::M_bytesep
char M_bytesep
Definition: PrintStream.hpp:69
AH_DIAGNOSTIC_WERROR
#define AH_DIAGNOSTIC_WERROR()
Definition: Warnings.hpp:35
AH::Setprecision::M_n
int M_n
Definition: PrintStream.hpp:63
AH::noboolalpha
Print & noboolalpha(Print &printer)
Definition: PrintStream.cpp:86
BEGIN_AH_NAMESPACE
#define BEGIN_AH_NAMESPACE
Definition: AH/Settings/NamespaceSettings.hpp:9
END_AH_NAMESPACE
#define END_AH_NAMESPACE
Definition: AH/Settings/NamespaceSettings.hpp:10
NamespaceSettings.hpp
AH::endl
Print & endl(Print &printer)
Definition: PrintStream.cpp:27
AH::Quaternion::operator<<
Print & operator<<(Print &os, Quaternion e)
Printing.
Definition: Quaternion.cpp:28
AH::flush
Print & flush(Print &printer)
Definition: PrintStream.cpp:55
AH::nouppercase
Print & nouppercase(Print &printer)
Definition: PrintStream.cpp:40