]> git.tdb.fi Git - libs/datafile.git/blob - source/writer.cpp
Cosmetic changes
[libs/datafile.git] / source / writer.cpp
1 #include <msp/io/zlibcompressed.h>
2 #include "binarywriter.h"
3 #include "statement.h"
4 #include "textwriter.h"
5 #include "writer.h"
6
7 using namespace std;
8
9 namespace Msp {
10 namespace DataFile {
11
12 Writer::Writer(IO::Base &o):
13         out(o),
14         mode(new TextWriter(out))
15 { }
16
17 Writer::~Writer()
18 {
19         delete mode;
20 }
21
22 void Writer::write(const Statement &st)
23 {
24         mode->write(st);
25 }
26
27 void Writer::set_binary(bool b)
28 {
29         if(b==binary)
30                 return;
31
32         binary = b;
33
34         Statement st;
35         if(binary)
36                 st.keyword = "__bin";
37         else
38                 st.keyword = "__text";
39
40         mode->write(st);
41
42         delete mode;
43         if(binary)
44                 mode = new BinaryWriter(out);
45         else
46                 mode = new TextWriter(out);
47 }
48
49 void Writer::set_compressed()
50 {
51         Statement st;
52         st.keyword = "__z";
53         mode->write(st);
54
55         out.set_compressed();
56 }
57
58 void Writer::set_float_precision(unsigned fp)
59 {
60         mode->set_float_precision(fp);
61 }
62
63 } // namespace DataFile
64 } // namespace Msp