diff options
| author | Carl Hetherington <cth@carlh.net> | 2020-12-20 23:20:55 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-12-22 02:37:53 +0100 |
| commit | bf4446523dd891049cabf1bcd68d20def57bc731 (patch) | |
| tree | f9adae972b2cee2955b28b63dbd672436212ad8e /src/lib | |
| parent | 191b9aece985643210dc6b2352b390cdfc386f4d (diff) | |
Add FontData class.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/font_data.cc | 56 | ||||
| -rw-r--r-- | src/lib/font_data.h | 53 | ||||
| -rw-r--r-- | src/lib/wscript | 1 |
3 files changed, 110 insertions, 0 deletions
diff --git a/src/lib/font_data.cc b/src/lib/font_data.cc new file mode 100644 index 000000000..83b6562f0 --- /dev/null +++ b/src/lib/font_data.cc @@ -0,0 +1,56 @@ +/* + Copyright (C) 2020 Carl Hetherington <cth@carlh.net> + + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DCP-o-matic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. + +*/ + + +#include "font.h" +#include "font_data.h" +#include "dcpomatic_assert.h" +#include <boost/shared_ptr.hpp> + + +using boost::shared_ptr; + + +dcpomatic::FontData::FontData (shared_ptr<const Font> font) + : id (font->id()) +{ + if (font->file()) { + data = dcp::ArrayData(font->file().get()); + } +} + + +bool +dcpomatic::operator== (FontData const& a, FontData const& b) +{ + if (a.id != b.id) { + return false; + } + + return a.data == b.data; +} + + +bool +dcpomatic::operator!= (FontData const& a, FontData const& b) +{ + return !(a == b); +} + diff --git a/src/lib/font_data.h b/src/lib/font_data.h new file mode 100644 index 000000000..90543bec9 --- /dev/null +++ b/src/lib/font_data.h @@ -0,0 +1,53 @@ +/* + Copyright (C) 2020 Carl Hetherington <cth@carlh.net> + + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + DCP-o-matic is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>. + +*/ + + +#include <dcp/array_data.h> +#include <boost/optional.hpp> +#include <string> + + +namespace dcpomatic { + + +class Font; + + +/** A font (TTF) file held as a block of data */ +class FontData +{ +public: + FontData (boost::shared_ptr<const Font> font); + + FontData (std::string id_, dcp::ArrayData data_) + : id(id_) + , data(data_) + {} + + std::string id; + boost::optional<dcp::ArrayData> data; +}; + + +extern bool operator== (FontData const& a, FontData const& b); +extern bool operator!= (FontData const& a, FontData const& b); + + +} diff --git a/src/lib/wscript b/src/lib/wscript index 5fb266756..6ea823728 100644 --- a/src/lib/wscript +++ b/src/lib/wscript @@ -110,6 +110,7 @@ sources = """ filter.cc ffmpeg_image_proxy.cc font.cc + font_data.cc frame_interval_checker.cc frame_rate_change.cc hints.cc |
