summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcus Fritzsch <marcus_fritzsch@mentor.com>2017-08-01 12:22:42 +0200
committerMarcus Fritzsch <marcus_fritzsch@mentor.com>2017-08-08 17:24:00 +0200
commit6429a02868e047992e435d81873c833d6ac91265 (patch)
tree5a72ac2c74261b0a8abeea9dd67b1d0544c759ef
parentc03004341a31971fcc926675a6ba306867721e15 (diff)
add simple README
Signed-off-by: Marcus Fritzsch <marcus_fritzsch@mentor.com>
-rw-r--r--README71
1 files changed, 71 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
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.