Supporters update.
[dcpomatic.git] / DEVELOP.md
index 6896900dd35950464b680d3576b29c92d6554537..51b63ff5c3382ff56b0a75edabf09b8b6c5e8648 100644 (file)
@@ -4,6 +4,49 @@ This file collects a few notes relevant to DCP-o-matic developers.  There is als
 [on the web site](https://dcpomatic.com/development).
 
 
+## Building on macOS/arm64
+
+Build `osx-environment` in `$HOME`
+```
+bash platform/osx/copy_resources.sh
+source platform/osx/set_paths.sh
+./waf configure --target-macos-arm64
+```
+
+
+## Disk writer logging
+
+As we have no `film' folder to log to during disk writes, the logs end up:
+
+### macOS
+
+* Disk writer backend: `/var/log/dcpomatic_disk_writer_{out,err}.log`
+* Disk writer frontend: `/Users/$USER/Library/Preferences/com.dcpomatic/2/2.16/disk.log`
+
+### Windows
+
+* Disk writer backend: `c:\Users\$USER\AppData\Local\dcpomatic\2.16.0\disk_writer.log`
+* Disk writer frontend: `c:\Users\$USER\AppData\Local\dcpomatic\2.16.0\disk.log`
+
+### Linux
+
+* Disk writer backend: `/home/$USER/.config/dcpomatic/2.16.0/disk_writer.log`
+* Disk writer frontend: `/home/$USER/.config/dcpomatic/2.16.0/disk.log`
+
+
+## Branches
+
+The main dcpomatic repo has the following branches:
+
+* `main` - the main development branch; contains 2.16.x versions
+* `v2.17.x` - development branch for v2.17.x versions; `main` is merged into this branch.
+
+The `test/data` submodule has the following branches:
+
+* `v2.16.x` - branch for use with v2.16.x versions
+* `v2.18.x` - branch for use with v2.17.x versions (as will become v2.18.x)
+
+
 ## Player stress testing
 
 If you configure DCP-o-matic with `--enable-player-stress-test` you can make a script which
@@ -36,10 +79,14 @@ Stop any current playback.
 
 Seek to some point in the current DCP, where 0 is the start and 4095 is the end; for example
 
-```S 2048```
+```K 2048```
 
 seeks half-way through the DCP.
 
+* `E`
+
+Stops playback and closes the player.
+
 The script can be run using something like
 
 ```dcpomatic2_player -s stress```
@@ -47,10 +94,27 @@ The script can be run using something like
 to load a script file called `stress` and start executing it.
 
 
-Adding a new language
+## Adding a new language
+
+- Edit `src/wx/config_dialog.cc` to add the language to languages.
+- Add to `platform/windows/wscript`, `platform/osx/make_dmg.sh`, `cscript`.
+- ./waf pot
+- cp build/src/lib/libdcpomatic.pot src/lib/po/$LANG.po
+- cp build/src/wx/libdcpomatic-wx.pot src/wx/po/$LANG.po
+- cp build/src/tools/dcpomatic.pot src/tools/po/$LANG.po
+- sed -i "s/CHARSET/UTF-8/" src/{lib,wx,tools}/po/$LANG.po
+- Commit / push
+- Add credit to `src/wx/about_dialog.cc` and database.
+- Add to `i18n.php` on website and `update-i18n-stats` script, then run `update-i18n-stats` script.
+
+
+## Taking screenshots for the manual
 
-- Edit src/wx/config_dialog.cc to add the language to languages.
-- Add to platform/windows/wscript, platform/osx/make_dmg.sh, cscript.
-- Add credit to src/wx/about_dialog.cc and database.
-- Add to i18n.php on website and update-i18n-stats script.
+The manual PDF looks nice if vector screenshots are used.  These can be taken as follows:
 
+- Build `gtk-vector-screenshot.git` (using meson/ninja)
+- Copy `libgtk-vector-screenshot.so` to `/usr/local/lib/gtk-3.0/modules/`
+- Run DCP-o-matic using `run/dcpomatic --screenshot`
+- Start `take-vector-screenshot`, click "Take screenshot" then click on the DCP-o-matic window.
+- Find a PDF in `/tmp/dcpomatic2.pdf`
+- Copy this to `doc/manual/raw-screenshots`