summaryrefslogtreecommitdiff
path: root/doc/design
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2018-08-19 01:27:48 +0100
committerCarl Hetherington <cth@carlh.net>2018-08-19 01:29:04 +0100
commit67c604d3fa2391b98ea436e2c6412f1c83a98f77 (patch)
treef95b3c57422dc516e7e70071d12a94bf16de5514 /doc/design
parent6c7489e5d778d3e71065d88a094a7383ba2c117d (diff)
Basic docs.
Diffstat (limited to 'doc/design')
-rw-r--r--doc/design/change_during_play.tex23
1 files changed, 23 insertions, 0 deletions
diff --git a/doc/design/change_during_play.tex b/doc/design/change_during_play.tex
new file mode 100644
index 000000000..28451e961
--- /dev/null
+++ b/doc/design/change_during_play.tex
@@ -0,0 +1,23 @@
+\documentclass{article}
+\begin{document}
+
+If the data which the player relies on changes, the player must \texttt{setup\_pieces()} before it \texttt{pass()}es otherwise it may crash.
+
+I think there are two approaches to this:
+
+\begin{enumerate}
+
+\item Playlist signals that it is going to change; player and
+butler respond by suspending themselves (so they don't touch the `bad'
+playlist), playlist signals when the change has been made and
+\texttt{setup\_pieces()} has happened. Player and butler resume.
+
+\item There is some RCU system so that changes to the playlist happen in a copy
+which is made into the `current' version at a convenient time to the
+player/butler. This seems a bit tricky because the player's output also
+depends on the state of \texttt{Film}, so it seems that the copy would need to
+include the film's state (and possibly other bits).
+
+\end{enumerate}
+
+\end{document}