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