summaryrefslogtreecommitdiff
path: root/sd/README_REMOTE
blob: cc53c4d8a6734d668679ef059e8664052d6ee8e3 (plain)
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
LibreOffice Impress Remote Protocol Specification

Communication is over a UTF-8 encoded character stream.
(Using RTL_TEXTENCODING_UTF8 in the LibreOffice portion.)

TCP
---

More TCP-specific details on setup and initial handshake to be
written, but the actual message protocol is the same as for Bluetooth.


Bluetooth
---------

Bluetooth communication is over RFCOMM.

For discovery use the "standard UUID for the Serial Port Profile"
I.e. the 16-bit SerialPort UUID 0x1101,
or if necessary inserted into the Bluetooth BASE_UUID:
00001101-0000-1000-8000-00805F9B34FB
See https://www.bluetooth.org/Technical/AssignedNumbers/service_discovery.htm

Message Format
--------------

A message consists of one or more lines. The first line is the message description,
further lines can add any necessary data. An empty line concludes the message.

I.e. "MESSAGE\n\n" or "MESSAGE\nDATA\nDATA2...\n\n"

You must keep reading a message until an empty line (i.e. double
new-line) is reached to allow for future protocol extension.

Initialisation
-------------

Once connected the server sends "LO_SERVER_SERVER_PAIRED".
(I.e. "LO_SERVER_SERVER_PAIRED\n\n" is sent over the stream.)

Subsequently the server will send either slideshow_started if a slideshow is running,
or slideshow_finished if no slideshow is running. (See below for details of.)

The current server implementation then proceeds to send all slide notes and previews
to the client. (This should be changed to prevent memory issues, and a preview
request mechanism implemented.)


Commands (Client to Server)
---------------------------

The client should not assume that the state of the server has changed when a
command has been sent. All changes will be signalled back to the client.
(This is to allow for cases such as multiple clients requesting different changes, etc.)

Any lines in [square brackets] are optional, and should be omitted if not needed.

* transition_next
* transition_previous

* goto_slide
  slide_number

* presentation_start
* presentation_stop

* presentation_resume       // Resumes after a presentation_blank_screen.
* presentation_blank_screen
  [Colour String]           // Colour the screen will show (default: black). Not
                            // implemented, and format hasn't yet been defined.

# As of gsoc2013, these commands are extended to the existing protocol, since server-end are tolerant with unknown commands, these extensions doesn't break backward compatibility
* pointer_started           // create a red dot on screen at initial position (x,y)
  initial_x                 // This should be called when user first touch the screen
  initial_y                 // note that x, y are in percentage (from 0.0 to 1.0) with respect to the slideshow size
* pointer_dismissed         // This dismiss the pointer red dot on screen, should be called when user stop touching screen
* pointer_coordination      // This update pointer's position to current (x,y)
  current_x                 // note that x, y are in percentage (from 0.0 to 1.0) with respect to the slideshow size
  current_y                 // unless screenupdater's performance is significantly improved, we should consider limit the update frequency on the
                            // remote-end



Status/Data (Server to Client)
------------------------------

* slideshow_finished    // (Also transmitted if no slideshow running when started.)

* slideshow_started     // (Also transmitted if a slideshow is running on startup.)
  numberOfSlides
  currentSlideNumber

* slide_notes
  slideNumber
  [Notes]               // The notes are an html document, and may also include \n newlines,
                        // i.e. the client should keep reading until a blank line is reached.

* slide_updated         // Slide on server has changed
  currentSlideNumber

* slide_preview         // Supplies a preview image for a slide.
  slideNumber
  image                 // A Base 64 Encoded png image.

# As of gsoc2013, these commands are extended to the existing protocol, since remote-end also ignore all unknown commands (which is the case of gsoc2012 android implementation), backward compatibility is kept.
* slideshow_info        // once paired, the server-end will send back the title of the current presentation
  Title
ore/commit/basegfx/source/point?id=3ab082b8088502def8e8aa531c8aaf23791188ad'>INTEGRATION: CWS ooo19126 (1.5.62); FILE MERGEDRüdiger Timm 2005-09-07INTEGRATION: CWS ooo19126 (1.3.62); FILE MERGEDRüdiger Timm 2005-09-07INTEGRATION: CWS ooo19126 (1.7.62); FILE MERGEDRüdiger Timm 2004-01-16Added == and != operators to ranges, some other goodies, too. Also changed re...Armin Weiss 2004-01-16Initial revisionThorsten Behrens 2004-01-16#110496# Added integer point, size and rectangle classes, needed for the new ...Thorsten Behrens 2003-12-03remaned min, max, abs to their longer names due to preprocessor expansionsArmin Weiss 2003-11-28Removed in-between namespaces (curve, matrix, numeric, point, polygon, range,...Armin Weiss 2003-11-26Added support for B3DPolyPOlygon, moved BDRange from source/inc to range name...Armin Weiss 2003-11-10Some error corrections, some additions to polygon stuff, making PolyPolygonCu...Armin Weiss 2003-11-06Added tooling for PolyPolygon cutting and some more tooling at B2DPolygon and...Armin Weiss 2003-11-05Added PolyPolygonTools, Added PolygonTool functionality, changed bool to sal_...Armin Weiss 2003-10-31includes were one inc too deep, correctingArmin Weiss 2003-10-28basegfx reorganizationArmin Weiss