summaryrefslogtreecommitdiffstats
path: root/sd/README
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-27 16:51:28 +0000
commit940b4d1848e8c70ab7642901a68594e8016caffc (patch)
treeeb72f344ee6c3d9b80a7ecc079ea79e9fba8676d /sd/README
parentInitial commit. (diff)
downloadlibreoffice-940b4d1848e8c70ab7642901a68594e8016caffc.tar.xz
libreoffice-940b4d1848e8c70ab7642901a68594e8016caffc.zip
Adding upstream version 1:7.0.4.upstream/1%7.0.4upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--sd/README43
-rw-r--r--sd/README_REMOTE107
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