summaryrefslogtreecommitdiffstats
path: root/thesis
diff options
context:
space:
mode:
authorDavid Runge <dave@sleepmap.de>2017-07-07 17:09:36 +0200
committerDavid Runge <dave@sleepmap.de>2017-07-07 17:09:36 +0200
commit2deed87a42868310059505edd028fb9560a70b7e (patch)
treeaaeeb35b85d121e662ec1ae594ec91546825c83c /thesis
parent24adba2522834dfe79e548964eca60dc2a4934c1 (diff)
downloadmaster-thesis-2deed87a42868310059505edd028fb9560a70b7e.tar.gz
master-thesis-2deed87a42868310059505edd028fb9560a70b7e.tar.bz2
master-thesis-2deed87a42868310059505edd028fb9560a70b7e.tar.xz
master-thesis-2deed87a42868310059505edd028fb9560a70b7e.zip
thesis/thesis.tex: Elaborating on scene transfer.
Diffstat (limited to 'thesis')
-rw-r--r--thesis/thesis.tex34
1 files changed, 34 insertions, 0 deletions
diff --git a/thesis/thesis.tex b/thesis/thesis.tex
index d049da9..eec798a 100644
--- a/thesis/thesis.tex
+++ b/thesis/thesis.tex
@@ -2000,6 +2000,40 @@ ssr-aap -N “server” -C “127.0.0.1:50002”
\subsubsection{Scene transfer}
\label{subsubsec:scene_transfer}
+ The \gls{ip} interface of the \gls{ssr} implements a functionality to
+ transfer all information related to a scene as a \gls{xml} formatted
+ string. This is useful, if the scene information should be stored on
+ the machine requesting the information, instead of on the rendering
+ machine.\\
+ Due to shortage of time to implement it and the original functionality
+ heavily relying on the \gls{xml} associated code, the \gls{osc}
+ interface still lacks this feature, which in its context could
+ additionally also be used to transfer all scene information to another
+ client, subscribed to a server.\\
+ It could be particularly useful, if clients could for example request
+ the scene currently held be their server instance, in the case where
+ they are started after the server has been started, but its scene
+ already being setup. The server would then send a set of instructions
+ as \gls{osc} messages, needed for setting up the scene in question.\\
+ For this feature to work reliably, some edge cases have to be
+ considered, such as gaps in the list of source \glspl{id}: Every source
+ gets a unique non-zero, non-negative \gls{id} assigned on creation.
+ When a source is deleted, its \gls{id} is not assigned to a source
+ anymore and will not be reused, unless the whole scene is deleted and a
+ new cycle of source creation reaches a number that high.\\
+ This means, if a scene with source \gls{id} gaps has to be transferred,
+ the \gls{osc} messages have to be designed in such a way, that they can
+ account for them, as every source message (apart from
+ \textit{/source/new}) requires a valid source \gls{id} and subsequent
+ calls to the server would otherwise trigger uncorrectly mapped
+ operations on its clients sources.\\
+ Additionally, it would be useful to be able to transfer a scene to
+ another client, by request, if the caller's
+ \mintinline{c++}{MessageLevel} is \mintinline{c++}{SERVER} or higher.\\
+ The scene is a piece of redundant information, in a networked setup
+ (whereas the reproduction setup is individual). Being able to transfer
+ scenes, using \gls{osc}, would further improve usability, as the
+ description files only have to be in one place.
\subsubsection{Assigning in- and outputs on the fly}
\label{subsubsec:assigning_in_and_outputs_on_the_fly}