Supporters update.
[dcpomatic.git] / src / lib / file_group.cc
index 71faacc4c0fa6bd27667c761c873ddce42d4ec88..228faa74ddd6818cf5ae9fe21287335c572117f1 100644 (file)
@@ -29,6 +29,7 @@
 #include "dcpomatic_assert.h"
 #include "exceptions.h"
 #include "file_group.h"
+#include <dcp/filesystem.h>
 #include <sndfile.h>
 #include <cstdio>
 
@@ -88,7 +89,7 @@ FileGroup::ensure_open_path (size_t p) const
        if (!_current_file) {
                throw OpenFileError (_paths[_current_path], errno, OpenFileError::READ);
        }
-       _current_size = boost::filesystem::file_size (_paths[_current_path]);
+       _current_size = dcp::filesystem::file_size(_paths[_current_path]);
 }
 
 
@@ -111,7 +112,7 @@ FileGroup::seek (int64_t pos, int whence) const
        size_t i = 0;
        int64_t sub_pos = _position;
        while (i < _paths.size()) {
-               boost::uintmax_t len = boost::filesystem::file_size (_paths[i]);
+               boost::uintmax_t len = dcp::filesystem::file_size(_paths[i]);
                if (sub_pos < int64_t(len)) {
                        break;
                }
@@ -134,9 +135,8 @@ FileGroup::seek (int64_t pos, int whence) const
 /** Try to read some data from the current position into a buffer.
  *  @param buffer Buffer to write data into.
  *  @param amount Number of bytes to read.
- *  @return Number of bytes read.
  */
-int
+FileGroup::Result
 FileGroup::read (uint8_t* buffer, int amount) const
 {
        DCPOMATIC_ASSERT (_current_file);
@@ -173,13 +173,13 @@ FileGroup::read (uint8_t* buffer, int amount) const
                if (eof) {
                        /* See if there is another file to use */
                        if ((_current_path + 1) >= _paths.size()) {
-                               break;
+                               return { read, true };
                        }
                        ensure_open_path (_current_path + 1);
                }
        }
 
-       return read;
+       return { read, false };
 }
 
 
@@ -189,7 +189,7 @@ FileGroup::length () const
 {
        int64_t len = 0;
        for (size_t i = 0; i < _paths.size(); ++i) {
-               len += boost::filesystem::file_size (_paths[i]);
+               len += dcp::filesystem::file_size(_paths[i]);
        }
 
        return len;