-libdcp
-======
+# libdcp
Library for reading and writing Digital Cinema Packages (DCPs).
-Acknowledgements
-================
+# Acknowledgements
Wolfgang Woehl's cinemaslides was most informative on the
nasty details of encryption.
Bugfixes were received from Philip Tschiemer.
-Building
-========
+# Building
```
./waf configure
```
-Dependencies
---------
+# Dependencies
- pkg-config (for build system)
- boost (1.45 or above): filesystem, signals2, datetime and unit testing libraries
- (optional) gcov (for tests)
-Build options
----------
+# Build options
+
```
--target-windows set up to do a cross-compile to Windows
--enable-debug build with debugging information and without optimisation
--force-cpp11 force use of C++11
```
-A note on building for macOS
---------
+# A note on building for macOS
+
As goto solution, all dependencies can be installed using [Homebrew](https://brew.sh/).
Make sure to add the respective `PKG_CONFIG_PATH` paths so the packages are indeed found.
```
-Documentation
-=============
+# Documentation
Run doxygen in the top-level directory and then see build/doc/html/index.html.
There are some examples in the examples/ directory.
+
+
+# Coding style
+
+* Use C++11 but nothing higher, as we need the library to be usable on some quite old compilers.
+* Put a Doxygen @file comment under the GPL banner in each source file.
+* Two blank lines between methods, and between 'blocks' in headers.
+* Doxygen comments in header files for public methods, source files for protected / private methods; no full stops after simple doxygen strings.
+* Use `= delete` on copy constructors and assignment operators instead of boost::noncopyable.
+* Initialise POD members in classes in the header.
+* Use std::make_shared to create shared pointers to things.