diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-04-02 19:19:46 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-04-02 19:19:46 +0100 |
| commit | d5eb7198e71c94f2756331aa2f0452c6b6c9398d (patch) | |
| tree | b44c24718294e410951994798eb7ce5c35c68838 /src/lib | |
| parent | fff7a8232b18ce6191e60ba911c29b64b9063d4d (diff) | |
Missing files.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/types.cc | 31 | ||||
| -rw-r--r-- | src/lib/types.h | 109 |
2 files changed, 140 insertions, 0 deletions
diff --git a/src/lib/types.cc b/src/lib/types.cc new file mode 100644 index 000000000..1e0f48327 --- /dev/null +++ b/src/lib/types.cc @@ -0,0 +1,31 @@ +/* + Copyright (C) 2013 Carl Hetherington <cth@carlh.net> + + This program 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. + + This program 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 this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#include "types.h" + +bool operator== (Crop const & a, Crop const & b) +{ + return (a.left == b.left && a.right == b.right && a.top == b.top && a.bottom == b.bottom); +} + +bool operator!= (Crop const & a, Crop const & b) +{ + return !(a == b); +} + diff --git a/src/lib/types.h b/src/lib/types.h new file mode 100644 index 000000000..f821a74ac --- /dev/null +++ b/src/lib/types.h @@ -0,0 +1,109 @@ +/* + Copyright (C) 2013 Carl Hetherington <cth@carlh.net> + + This program 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. + + This program 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 this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +*/ + +#ifndef DVDOMATIC_TYPES_H +#define DVDOMATIC_TYPES_H + +#include <vector> +#include <boost/shared_ptr.hpp> +#include <libdcp/util.h> + +class Content; + +typedef std::vector<boost::shared_ptr<Content> > ContentList; +typedef int64_t ContentAudioFrame; +typedef int ContentVideoFrame; + +/** @struct Crop + * @brief A description of the crop of an image or video. + */ +struct Crop +{ + Crop () : left (0), right (0), top (0), bottom (0) {} + + /** Number of pixels to remove from the left-hand side */ + int left; + /** Number of pixels to remove from the right-hand side */ + int right; + /** Number of pixels to remove from the top */ + int top; + /** Number of pixels to remove from the bottom */ + int bottom; +}; + +extern bool operator== (Crop const & a, Crop const & b); +extern bool operator!= (Crop const & a, Crop const & b); + +/** @struct Position + * @brief A position. + */ +struct Position +{ + Position () + : x (0) + , y (0) + {} + + Position (int x_, int y_) + : x (x_) + , y (y_) + {} + + /** x coordinate */ + int x; + /** y coordinate */ + int y; +}; + +/** @struct Rect + * @brief A rectangle. + */ +struct Rect +{ + Rect () + : x (0) + , y (0) + , width (0) + , height (0) + {} + + Rect (int x_, int y_, int w_, int h_) + : x (x_) + , y (y_) + , width (w_) + , height (h_) + {} + + int x; + int y; + int width; + int height; + + Position position () const { + return Position (x, y); + } + + libdcp::Size size () const { + return libdcp::Size (width, height); + } + + Rect intersection (Rect const & other) const; +}; + +#endif |
