diff options
Diffstat (limited to '')
-rw-r--r-- | sd/README | 43 | ||||
-rw-r--r-- | sd/README_REMOTE | 107 |
2 files changed, 150 insertions, 0 deletions
diff --git a/sd/README b/sd/README new file mode 100644 index 000000000..c250d81e7 --- /dev/null +++ b/sd/README @@ -0,0 +1,43 @@ +The core directory for the impress/draw applications. + +Think of impress as a hack on top of draw. + + +sd module contains impress/draw specific code, non-shared UI and part +of ppt and pptx filter, few other filters too. + +the slideshow UI lives here as well, the slideshow engine is in +slideshow module though (including the 3D transitions engine +slideshow/source/engine/opengl). + +the most used filters are ODF's odp, binary ppt and OOXML's +pptx. their locations are listed below: + + * odp import and export filters are in xmloff module (mostly xmloff/source/draw) + + * ppt import is in sd/source/filter/ppt (big shared chunks are also in svx) + * ppt export is in sd/source/filter/eppt (big shared chunks are also in svx) + + * pptx import is in oox/source/ppt (and uses a lot of + oox/source/drawingml and oox/source/*) + * pptx export is in sd/source/filter/eppt (mostly in pptx-* source + files) and shared part is in oox/source/export + +== PPTX export/import filters == + +PPTX export filter is split into 2 parts. Impress related part is in +sd/source/filter/eppt/pptx-* and the other part is in +oox/source/export/ because it contains mostly code related to +DrawingML, which is shared with writer and calc ooxml export. + +The export filter was written in 2009 IIRC and was not much extended +feature-wise lately. + +FUTURE work: add custom shapes export (see below). enhance text +output, we don't write text style for indentation levels now, need to +export a:lvl1pPr, a:lvl2pPr, ... elements. + +PPTX import was written by Sun/Oracle and then extended in LibreOffice +a lot during bug fixing. It is located in oox/source/ppt and +oox/source/drawingml. The areas with most bugs (at least until today) +were shape placeholders and text style inheritance. diff --git a/sd/README_REMOTE b/sd/README_REMOTE new file mode 100644 index 000000000..cc53c4d8a --- /dev/null +++ b/sd/README_REMOTE @@ -0,0 +1,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 |