]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/writer.cpp
Remove the loaded flag from PackSource files
[libs/datafile.git] / source / writer.cpp
index cdd78b62e18e5e636994f0bf674da9aba39d3676..ff4f2248bee7e7d3035c3a4174e44a52251d2450 100644 (file)
@@ -1,10 +1,4 @@
-/* $Id$
-
-This file is part of libmspdatafile
-Copyright © 2006  Mikko Rasa, Mikkosoft Productions
-Distributed under the LGPL
-*/
-
+#include <msp/io/zlibcompressed.h>
 #include "binarywriter.h"
 #include "statement.h"
 #include "textwriter.h"
@@ -15,12 +9,17 @@ using namespace std;
 namespace Msp {
 namespace DataFile {
 
-Writer::Writer(ostream &o):
+Writer::Writer(IO::Base &o):
        out(o),
        mode(new TextWriter(out)),
        binary(false)
 { }
 
+Writer::~Writer()
+{
+       delete mode;
+}
+
 void Writer::write(const Statement &st)
 {
        mode->write(st);
@@ -31,21 +30,35 @@ void Writer::set_binary(bool b)
        if(b==binary)
                return;
 
-       binary=b;
+       binary = b;
 
        Statement st;
        if(binary)
-               st.keyword="__bin";
+               st.keyword = "__bin";
        else
-               st.keyword="__text";
+               st.keyword = "__text";
 
        mode->write(st);
 
        delete mode;
        if(binary)
-               mode=new BinaryWriter(out);
+               mode = new BinaryWriter(out);
        else
-               mode=new TextWriter(out);
+               mode = new TextWriter(out);
+}
+
+void Writer::set_compressed()
+{
+       Statement st;
+       st.keyword = "__z";
+       mode->write(st);
+
+       out.set_compressed();
+}
+
+void Writer::set_float_precision(unsigned fp)
+{
+       mode->set_float_precision(fp);
 }
 
 } // namespace DataFile