add simple README
authorMarcus Fritzsch <marcus_fritzsch@mentor.com>
Tue, 1 Aug 2017 10:22:42 +0000 (12:22 +0200)
committerMarcus Fritzsch <marcus_fritzsch@mentor.com>
Tue, 8 Aug 2017 15:24:00 +0000 (17:24 +0200)
Signed-off-by: Marcus Fritzsch <marcus_fritzsch@mentor.com>
README [new file with mode: 0644]

diff --git a/README b/README
new file mode 100644 (file)
index 0000000..51cc0c8
--- /dev/null
+++ b/README
@@ -0,0 +1,71 @@
+This is a WindowManager implementation for the AGL Project.
+
+
+
+Limitations
+---------- ----- -- - -
+Currently no configuration of where the ids.json and layouts.json
+files are to be found is implemented, they will be searched in "..".
+See "Building" and "Running" for more details.
+
+
+
+Description
+---------- ----- -- - -
+The application source is located in src/ and is loosely structured c++.
+
+The code base is c++14, and uses nlohmanns json implementation[1]. Also
+the std::experimental::optional is used where sensible.
+
+There is not a single source file for each class. The different
+modules have the following resposibilities:
+
+* wayland: implement the basic wayland proxy wrappers and listeners,
+           this includes the rather large ivi_controller and its
+           dependent objects.
+* app: the actual (or intended as) implementation of the application
+* util: generic utilities
+* main: AFB service entrypoint
+* layout: layout related functionality (as of yet mostly unused/not functional)
+* layers: layer related functionality (mostly just mapping surfaces
+          to layers, parsing configuration)
+* result: a simple wrapper over optional, that allows to signal an error
+          and a description.
+* json_helper: some json helper functions, mainly used for transforming
+               structures to json.
+* controller_hooks: hooks to be used be the genivi::ivi_controller
+                    to call to the App class, without knowing of its
+                    existence.
+
+
+
+Building
+---------- ----- -- - -
+Prerequisites are the AGL app-framework-binder (which "infects" us with
+json-c and libsystemd - i.e. these are needed too). Then proceed as follows:
+
+mkdir build
+cd build
+cmake ..
+make -j
+
+
+
+Running
+---------- ----- -- - -
+Prerequisites: a compositor implementing the ivi_controller interface must
+be running and XDG_RUNTIME_DIR must be set so the wayland socket can be found.
+
+To run from the build directory use:
+
+afb-daemon --ldpaths=$PWD/src
+
+
+
+JSON Configurations
+---------- ----- -- - -
+ids.json: This file configures a mapping of surface id to some layer id. Also
+          In this configuration are information on the actual drawing rectangles
+          that applications need to use on a particular layer.
+layout.json: A layout spcification. It is as of yet mostly unused and if not
+             parsed correctly should not interfere with window manager operation.