Commit graph

40 commits

Author SHA1 Message Date
Peter Hutterer
cc053155a5 doc: change the doxygen oeffis group to liboeffis
This way the links are consistent with the libei/libeis groups.
2023-05-31 16:11:57 +10:00
Peter Hutterer
df268d618a libei 1.0.0rc1 2023-05-17 12:28:12 +10:00
Peter Hutterer
8302b1ddac doc/api: add the unicode icons for a splash of color
Sometimes it's good to focus on the important issues in life.
2023-05-10 11:36:51 +10:00
Peter Hutterer
5c64a9d77c doc/api: add liboeffis to the various sections 2023-05-10 11:36:51 +10:00
Peter Hutterer
b37868e904 doc/protocol: fix link to the liboeffis API docs 2023-05-09 09:56:29 +10:00
Peter Hutterer
5a1caca643 doc/protocol: fix the link to the C libraries section 2023-05-09 09:53:51 +10:00
Peter Hutterer
40ba30da82 meson.build: install our headers into a versioned subfolder
This makes it possible to have multiple (incompatible) versions
installed simultaneously.

Any incompatible version requires us bumping the major version, so our
headers are simply installed into the hardcoded libei-1.0 subdir.

This also changes the pkgconfig names to include the API version, so
it's now `pkgconfig --cflags libei-1.0`.
2023-05-08 14:33:50 +10:00
Peter Hutterer
5bb6e80ded doc: some minor doxygen updates 2023-05-05 14:05:30 +10:00
Peter Hutterer
60d94aecda doc: rename the mainpage sections to get @ref ei to work
Otherwise doxygen tries to link to these sections instead to the struct
ei/eis it's supposed to link to.
2023-05-05 14:05:30 +10:00
Peter Hutterer
6ee202569f doc: point to the main branch, not the master branch 2023-05-04 14:11:34 +10:00
Peter Hutterer
5b1b5aec1a proto: replace pointer/keyboard/touchscreen with a generic "interface" event
Since these events are merely notifications of a single object, we can make
this more generic. This allows us to introduce future capabilities without
having to bump the seat.
2023-04-06 13:57:18 +10:00
Peter Hutterer
c5aa2c0b60 doc/proto: address a few documentation issues
A few clarifications as suggested by Benjamin Tissoires.
2023-03-17 14:03:32 +10:00
Peter Hutterer
8954d96227 Remove empty trailing newlines from all files 2023-03-13 08:52:08 +10:00
Peter Hutterer
37f4351a67 doc/proto: add a page for the ei-scanner
In case someone is actually planning to use that one
2023-03-10 14:25:59 +10:00
Peter Hutterer
d44de4e73e doc/proto: add a link to the git repo and issues page 2023-03-09 14:49:03 +10:00
Peter Hutterer
e8765f3042 doc/proto: add a page describing the libraries
Now that the API doc is behind a link, let's make it a bit more
prominent to find.
2023-03-09 14:28:30 +10:00
Peter Hutterer
2665224461 doc/proto: mirror the required directory structure
Might as well make this easier for us locally.
2023-03-09 14:28:30 +10:00
Peter Hutterer
3bcece1923 doc/proto: remove now unused files
Obsolete since 5258a559eb:
    doc/proto: remove the embedded docs from the proto, use static pages instead
2023-03-09 13:43:43 +10:00
Peter Hutterer
6b7424e821 doc/proto: fix a bug with the pages script
Removing the chapter pages means the directory no longer exists, so we
manually have to mkdir it.
2023-03-08 16:07:00 +10:00
Peter Hutterer
5258a559eb doc/proto: remove the embedded docs from the proto, use static pages instead 2023-03-08 11:09:58 +10:00
Peter Hutterer
56004836b9 proto: add the context-type attribute to events and requests
This allows us to mark/filter requests and events that are only
available on a given context type.
2023-03-08 09:01:03 +10:00
Peter Hutterer
fb5b607c13 doc/proto: put a standard blurb in for the destructor-type requests
Should eventually have a separate protocol documentation section for
this and point to it, but this will do for now.
2023-03-07 19:29:27 +10:00
Peter Hutterer
59ab84669f doc/proto: add some basic index pages
Better than the placeholders...
2023-03-07 19:22:00 +10:00
Peter Hutterer
ef430fceb0 doc/proto: add the generator script to the input files
So meson tracks the dependency better
2023-03-07 19:07:46 +10:00
Peter Hutterer
f97aa73c7c doc/proto: sort pages by occurrence in the protocol file 2023-03-07 19:05:52 +10:00
Peter Hutterer
8fad365f37 doc: split protocol and api builds into separate meson options 2023-03-07 15:26:36 +10:00
Peter Hutterer
2cf6df9cd0 meson: hook up the protocol documentation via meson
Since we want the generated documentation to be useful on-disk, drop the
baseURL and switch to relativeURLs = true for hugo.

This is arguably a bit nasty in that it git clones the theme into the
build directory. But oh well...
2023-03-07 14:14:58 +10:00
Peter Hutterer
248d08c6a5 doc: drop the doxygen protocol generation
This is better done with a separate system (e.g. hugo) and it's pretty
awful to read anyway.
2023-03-07 13:18:41 +10:00
Peter Hutterer
872e256759 doc: move the API documentation into its own directory 2023-03-07 13:17:12 +10:00
Peter Hutterer
30aab5179e Merge branch 'main' into wip/drop-protobuf 2023-03-07 12:55:18 +10:00
Peter Hutterer
25e36eb24e meson: move the "build this?" checks into the subdirs
Let's decide on what to build in the doc/ and test/ directory rather
than in the main file.
2023-03-07 11:10:06 +10:00
Peter Hutterer
3d3b20f172 doc: add the templates and a script to generate hugo markdown
Intention here is to have the protocol in a readable manner somewhere.
Doxygen doesn't *quite* cut the bill.
2023-03-03 15:24:42 +10:00
Peter Hutterer
164b2c0c00 doc: add generated BREI documentation 2023-03-03 11:27:01 +10:00
Peter Hutterer
eeefb3dc00 liboeffis is a wrapper library for the RemoteDesktop communication
libei used to have direct portal support code (see the git history) but:
- that code was a custom proposed portal that never went anywhere
- libei has slowly changed to be more an input event transport layer since
  it is now also used sending events *to* a libei context
- a number of libei users will never need the DBus code, either because they
  don't want it or because they talk Dbus themselves na ddon't need this
  abstraction.

Luckily, it's quite easy to move this into a separate library with a
simple API that does, effectively, the same trick as the old portal backend.
This API is aiming to be as simple as possible because the tools that
require anything more complex should talk to DBus directly.

An example tool that uses the API to retrieve an EIS fd over the
RemoteDesktop portal is included in this patch.

"Öffis" is a German word meaning public transport. It also sounds like the
French Œuf, the word for egg.

Co-authored-by: Olivier Fourdan <ofourdan@redhat.com>
2022-12-08 11:22:50 +10:00
Peter Hutterer
8fc654bfb0 Purge the portal code
The original idea here was that we would have an EmulatedInput portal
that allows the application to connect directly to the EIS
implementation to exchange input events - instead of ping-ponging DBus
events through the xdg-desktop-portal as the RemoteDesktop portal
requires.

This is no longer accurate, there are suggested PRs open to add
RemoteDesktop.ConnectToEIS to achieve the same through the existing
RemoteDesktop interface [1] and to add a new InputCapture portal
to allow for events to be sent to a libei receiver context [2].

The example EmulatedInput portal is thus superfluous and can be removed
from here.

We could switch the ei_setup_backend_portal() code to use RemoteDesktop
or InputCapture, depending on the context type, the utility of this is
questionable. Interaction with portals is complex, one needs to
implement the Session/Request interfaces correctly and in the case of
InputCapture also handle the complex zones/pointer barrier setup.
libportal does some of this (or it will, anyway) so it's more useful for
an application to use libportal and then just pass the received fd to
libei.

If there is a future need for this to be handled as part of libei, we
can (re)implement this, but for now it's best to just purge all of this.

[1] https://github.com/flatpak/xdg-desktop-portal/pull/762
[2] https://github.com/flatpak/xdg-desktop-portal/pull/714
2022-12-08 10:45:47 +10:00
Peter Hutterer
c88435e51b doc: expand the mainpage with an illustration
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2022-03-01 13:46:32 +10:00
Peter Hutterer
088c328251 doc: change to doxygen-awesome
Much better looking than the previous style, even with no custom
configurations.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2021-07-22 14:20:18 +10:00
Peter Hutterer
261f34eda8 meson.build: fix the doxygen generation
Having an output of '.' means the $builddir/doc directory was removed on ninja
clean, only for ninja to then fail because doc/libei.h wasn't there. Let's use
the reference from meson test cases itself.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-09-29 17:29:40 +10:00
Peter Hutterer
7158cfc242 meson.build: drop unused install command
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-09-29 17:21:38 +10:00
Peter Hutterer
96ba358984 doc: hook up doxygen
Build the doxygen API documentation. This is copied from libinput so it takes
over that style (which is more readable than the default doxygen style).
Some extra documentation is added too and all the immediate errors are fixed
in this commit but doxygen still warns about undocumented parameters.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2020-09-28 12:00:08 +10:00