1 #ifndef _SD_WRITER_H
2 #define _SD_WRITER_H
3 
4 #include <stdint.h>
5 
6 typedef struct sd_writer_t sd_writer;
7 
8 /**
9   * Open file for writing. If file exists, it will be overwritten.
10   */
11 sd_writer* sd_writer_open(const char *file);
12 
13 /**
14  * Check for errors
15  */
16 int sd_writer_errno(const sd_writer *writer);
17 
18 /**
19   * Close file.
20   */
21 void sd_writer_close(sd_writer *writer);
22 
23 /**
24   * Returns the position of the file pointer
25   */
26 long sd_writer_pos(sd_writer *writer);
27 
28 int sd_writer_seek_start(const sd_writer *writer, long offset);
29 int sd_writer_seek_cur(const sd_writer *writer, long offset);
30 int sd_writer_seek_end(const sd_writer *writer, long offset);
31 
32 /**
33   * Write a buffer to file.
34   */
35 int sd_write_buf(sd_writer *writer, const char *buf, int len);
36 
37 int sd_write_fprintf(const sd_writer *writer, const char *format, ...);
38 
39 void sd_write_ubyte(sd_writer *writer, uint8_t data);
40 void sd_write_uword(sd_writer *writer, uint16_t data);
41 void sd_write_udword(sd_writer *writer, uint32_t data);
42 void sd_write_byte(sd_writer *writer, int8_t data);
43 void sd_write_word(sd_writer *writer, int16_t data);
44 void sd_write_dword(sd_writer *writer, int32_t data);
45 void sd_write_float(sd_writer *writer, float data);
46 
47 /**
48  * Writes len bytes of filler content
49  */
50 void sd_write_fill(sd_writer *writer, char content, int len);
51 
52 void sd_write_variable_str(sd_writer *w, const char *str);
53 
54 #endif // _SD_WRITER_H
55