-
Notifications
You must be signed in to change notification settings - Fork 31
/
DESIGN
40 lines (29 loc) · 1.69 KB
/
DESIGN
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
TPP design decisions:
1. Visualizers
The visualization of a slide is done by a visualizer. Visualization in the
context of TPP means outputting it to an output device, e.g. a terminal via
ncurses, a LaTeX source file, a Docbook source file, you name it. The generic
TppVisualizer is the base for all visualizers. Look at the source which
methods you need to implement if you want to write your own visualizer. The
visualizer is also responsible for encapsulating the output device, e.g.
interactive visualizers (like the NcursesVisualizer) also return the user's key
presses.
2. Controllers
The controller controls the correct program flow, utilizing the parser and a
visualizer. The generic TppVisualizer is the base for all visualizers. All
controllers must implement a constructor, and the two methods run and close.
So far, three types of controllers have been implemented.
2.1 InteractiveController
The InteractiveController feeds the content of the page to the visualizer until
it is told to stop. It then reads the next key press from the visualizer, and
runs the appropriate action.
2.2 AutoplayController
The AutoplayController works like the InteractiveController, with the only
difference that it ignores any information to stop and wait for a key press. It
can be used for unattended presentations.
2.3 ConversionController
The ConversionController is used for non-interactive, non-visual processing,
like converting TPP source into another file format. The "visualizer" is
responsible for producing the appropriate output format. Currently, it is used
for the TextVisualizer and the LatexVisualizer, which generate
text/LaTeX-beamer representations of the presentations they're fed with.