X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fio%2Funix%2Fasset.cpp;fp=source%2Fio%2Funix%2Fasset.cpp;h=7971f1b0346eeff7d848ca1a2c7f67183e4a3d03;hb=bda95f684da98079f4b1fe705d969bacb6d86e12;hp=0000000000000000000000000000000000000000;hpb=cc7c798b275b8ea9992eb82d68177ecfd50e0974;p=libs%2Fcore.git diff --git a/source/io/unix/asset.cpp b/source/io/unix/asset.cpp new file mode 100644 index 0000000..7971f1b --- /dev/null +++ b/source/io/unix/asset.cpp @@ -0,0 +1,47 @@ +#include +#include "asset.h" +#include "file.h" + +using namespace std; + +namespace Msp { +namespace IO { + +struct Asset::Private +{ + Seekable *file; +}; + +Asset::Asset(const string &name) +{ + Seekable *file = new BufferedFile((FS::get_sys_data_dir()/name).str()); + + priv = new Private; + priv->file = file; + + priv->file->signal_flush_required.connect(signal_flush_required); +} + +Asset::~Asset() +{ + delete priv->file; + delete priv; +} + +unsigned Asset::do_read(char *buf, unsigned size) +{ + return priv->file->read(buf, size); +} + +SeekOffset Asset::seek(SeekOffset off, SeekType type) +{ + return priv->file->seek(off, type); +} + +SeekOffset Asset::tell() const +{ + return priv->file->tell(); +} + +} // namespace IO +} // namespace Msp