README.md
1# Presentation API Demo
2
3This directory contains a demo of a Presentation API controller and receiver.
4The demo supports flinging a URL to start a presentation and stopping the
5presentation.
6
7## Command line options
8
9The same executable is run for the controller and receiver; only the command
10line options affect the behavior. The command line options are:
11
12``` bash
13 $ osp_demo [-v] [friendly_name]
14```
15
16 - `-v` enables verbose logging.
17 - Specifying `friendly_name` puts the demo in receiver mode and sets its name
18 to `friendly_name`. Currently, `friendly_name` won't appear in any of the
19 controller-side output related to this screen though. If no friendly name is
20 given, the demo runs as a controller.
21
22## Log output
23
24Because the demo acts like a shell and accepts commands on `stdin`, the logging
25output is redirected to a separate file so it doesn't flood the same display.
26You have to create these files on your machine before running the demo. For the
27controller, this file should be named `_cntl_fifo` and for the receiver, it
28should be named `_recv_fifo`. The simplest way to do this is so you can see the
29output while the demo is running is to make these named pipes like so:
30
31``` bash
32 $ mkfifo _cntl_fifo _recv_fifo
33```
34
35Then `cat` them in separate terminals while the demo is running.
36
37## Listener commands
38
39 - `avail <url>`: Begin listening for receivers that support the presentation of
40 `url`.
41 - `start <url> <service_id>`: Start a presentation of `url` on the receiver
42 specified by the ID `service_id`. `service_id` will be printed in the output
43 log once `avail` has been run. The demo only supports starting one
44 presentation at a time.
45 - `msg <string>`: Sends a string message on the open presentation connection.
46 - `close`: Close the open presentation connection without terminating the
47 presentation.
48 - `reconnect`: Reconnect the previously-connected presentation connection.
49 This allows using the `msg` command again.
50 - `term`: Terminate the previously started presentation.
51
52## Publisher commands
53
54 - `avail`: Toggle whether the receiver is publishing itself as an available
55 screen. The receiver starts in the publishing state.
56 - `close`: Close the open presentation connection without terminating the
57 presentation.
58 - `msg <string>`: Sends a string message on the open presentation connection.
59 - `term`: Terminate the running presentation.
60