File tree 2 files changed +44
-0
lines changed
hardware/esp8266com/esp8266/cores/esp8266
2 files changed +44
-0
lines changed Original file line number Diff line number Diff line change @@ -54,6 +54,28 @@ class FSFile : public Stream {
54
54
operator bool (){ return _file > 0 ; }
55
55
char * name ();
56
56
boolean isDirectory (void );
57
+
58
+ template <typename T> size_t write (T &src){
59
+ uint8_t obuf[64 ];
60
+ size_t doneLen = 0 ;
61
+ size_t sentLen;
62
+ int i;
63
+
64
+ while (src.available () > 64 ){
65
+ src.read (obuf, 64 );
66
+ sentLen = write (obuf, 64 );
67
+ doneLen = doneLen + sentLen;
68
+ if (sentLen != 64 ){
69
+ return doneLen;
70
+ }
71
+ }
72
+
73
+ size_t leftLen = src.available ();
74
+ src.read (obuf, leftLen);
75
+ sentLen = write (obuf, leftLen);
76
+ doneLen = doneLen + sentLen;
77
+ return doneLen;
78
+ }
57
79
58
80
using Print::write;
59
81
};
Original file line number Diff line number Diff line change @@ -48,6 +48,28 @@ class File : public Stream {
48
48
boolean isDirectory (void );
49
49
File openNextFile (uint8_t mode = O_RDONLY);
50
50
void rewindDirectory (void );
51
+
52
+ template <typename T> size_t write (T &src){
53
+ uint8_t obuf[512 ];
54
+ size_t doneLen = 0 ;
55
+ size_t sentLen;
56
+ int i;
57
+
58
+ while (src.available () > 512 ){
59
+ src.read (obuf, 512 );
60
+ sentLen = write (obuf, 512 );
61
+ doneLen = doneLen + sentLen;
62
+ if (sentLen != 512 ){
63
+ return doneLen;
64
+ }
65
+ }
66
+
67
+ size_t leftLen = src.available ();
68
+ src.read (obuf, leftLen);
69
+ sentLen = write (obuf, leftLen);
70
+ doneLen = doneLen + sentLen;
71
+ return doneLen;
72
+ }
51
73
52
74
using Print::write;
53
75
};
You can’t perform that action at this time.
0 commit comments