summaryrefslogtreecommitdiff
path: root/src/lib/file_group.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-05-01 01:31:35 +0200
committerCarl Hetherington <cth@carlh.net>2021-05-01 01:31:35 +0200
commit8963f0007af1a312017b9627c18b82ec2a577591 (patch)
treebaeb6f2c17da72248408b8c1d695242b44edda9e /src/lib/file_group.cc
parent29f84e2b8785585885e0658bdf9938967547460f (diff)
C++11 tidying.
Diffstat (limited to 'src/lib/file_group.cc')
-rw-r--r--src/lib/file_group.cc31
1 files changed, 17 insertions, 14 deletions
diff --git a/src/lib/file_group.cc b/src/lib/file_group.cc
index aaf94acf4..7dae1da92 100644
--- a/src/lib/file_group.cc
+++ b/src/lib/file_group.cc
@@ -1,5 +1,5 @@
/*
- Copyright (C) 2013-2020 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2013-2021 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
@@ -18,51 +18,49 @@
*/
+
/** @file src/lib/file_group.cc
* @brief FileGroup class.
*/
-#include "file_group.h"
-#include "exceptions.h"
-#include "cross.h"
+
#include "compose.hpp"
+#include "cross.h"
#include "dcpomatic_assert.h"
+#include "exceptions.h"
+#include "file_group.h"
#include <sndfile.h>
#include <cstdio>
+
using std::vector;
+
/** Construct a FileGroup with no files */
FileGroup::FileGroup ()
- : _current_path (0)
- , _current_file (0)
- , _current_size (0)
- , _position (0)
{
}
+
/** Construct a FileGroup with a single file */
FileGroup::FileGroup (boost::filesystem::path p)
- : _current_path (0)
- , _current_file (0)
- , _current_size (0)
{
_paths.push_back (p);
ensure_open_path (0);
seek (0, SEEK_SET);
}
+
/** Construct a FileGroup with multiple files */
FileGroup::FileGroup (vector<boost::filesystem::path> const & p)
: _paths (p)
- , _current_path (0)
- , _current_file (0)
{
ensure_open_path (0);
seek (0, SEEK_SET);
}
+
/** Destroy a FileGroup, closing any open file */
FileGroup::~FileGroup ()
{
@@ -71,6 +69,7 @@ FileGroup::~FileGroup ()
}
}
+
void
FileGroup::set_paths (vector<boost::filesystem::path> const & p)
{
@@ -79,6 +78,7 @@ FileGroup::set_paths (vector<boost::filesystem::path> const & p)
seek (0, SEEK_SET);
}
+
/** Ensure that the given path index in the content is the _current_file */
void
FileGroup::ensure_open_path (size_t p) const
@@ -94,12 +94,13 @@ FileGroup::ensure_open_path (size_t p) const
_current_path = p;
_current_file = fopen_boost (_paths[_current_path], "rb");
- if (_current_file == 0) {
+ if (!_current_file) {
throw OpenFileError (_paths[_current_path], errno, OpenFileError::READ);
}
_current_size = boost::filesystem::file_size (_paths[_current_path]);
}
+
int64_t
FileGroup::seek (int64_t pos, int whence) const
{
@@ -138,6 +139,7 @@ FileGroup::seek (int64_t pos, int whence) const
return _position;
}
+
/** 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.
@@ -195,6 +197,7 @@ FileGroup::read (uint8_t* buffer, int amount) const
return read;
}
+
/** @return Combined length of all the files */
int64_t
FileGroup::length () const