From 294d8cc8e198093e61aa4d75a648d84f35c6c91f Mon Sep 17 00:00:00 2001 From: "Andrzej J.R. Hunt" Date: Fri, 5 Apr 2013 13:15:11 +0100 Subject: Initial Impress Remote protocol documentation. --- sd/README_REMOTE | 90 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 sd/README_REMOTE diff --git a/sd/README_REMOTE b/sd/README_REMOTE new file mode 100644 index 000000000000..918fa146e398 --- /dev/null +++ b/sd/README_REMOTE @@ -0,0 +1,90 @@ +LibreOffice Impress Remote Protocol Specification + +Communication is over a UTF-8 encoded character stream. +(Using RTL_TEXTENCODING_UTF8 in the LibreOffice portion.) + +TCP +--- + +TODO + +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. + +Intialisation +------------- + +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. + + +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. \ No newline at end of file -- cgit