Mercurial > libervia-backend
annotate libervia/frontends/tools/host_listener.py @ 4205:17a8168966f9
frontends (tools/webrtc): implement screensharing for Wayland + bug fixes:
- Freedesktop Desktop Screenshare port is now used when Wayland is detected (needs
`xdg-desktop-portal` with the implementation corresponding to desktop environment).
- Add a binding feature to feedback state to application (e.g. if desktop sharing is
cancelled from desktop environment, or at portal's permission request level).
- fix misnaming of video source (was wrongly named `camera` instead of `video`).
- fix desktop sharing pad selection in `input-selector` when it has been added once, then
removed, then added again.
rel 434
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 18 Jan 2024 23:29:25 +0100 |
parents | 26b7ed2817da |
children |
rev | line source |
---|---|
3137 | 1 #!/usr/bin/env python3 |
2 | |
1362
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
3 |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
4 # SAT: a jabber client |
3479 | 5 # Copyright (C) 2009-2021 Jérôme Poisson (goffi@goffi.org) |
1362
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
6 |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
7 # This program is free software: you can redistribute it and/or modify |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
8 # it under the terms of the GNU Affero General Public License as published by |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
9 # the Free Software Foundation, either version 3 of the License, or |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
10 # (at your option) any later version. |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
11 |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
12 # This program is distributed in the hope that it will be useful, |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
15 # GNU Affero General Public License for more details. |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
16 |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
17 # You should have received a copy of the GNU Affero General Public License |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
19 |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
20 """This module is only used launch callbacks when host is ready, used for early initialisation stuffs""" |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
21 |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
22 |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
23 listeners = [] |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
24 |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
25 |
1362
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
26 def addListener(cb): |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
27 """Add a listener which will be called when host is ready |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
28 |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
29 @param cb: callback which will be called when host is ready with host as only argument |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
30 """ |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
31 listeners.append(cb) |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
32 |
2624
56f94936df1e
code style reformatting using black
Goffi <goffi@goffi.org>
parents:
2562
diff
changeset
|
33 |
4037
524856bd7b19
massive refactoring to switch from camelCase to snake_case:
Goffi <goffi@goffi.org>
parents:
3479
diff
changeset
|
34 def call_listeners(host): |
1362
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
35 """Must be called by frontend when host is ready. |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
36 |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
37 The call will launch all the callbacks, then remove the listeners list. |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
38 @param host(QuickApp): the instancied QuickApp subclass |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
39 """ |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
40 global listeners |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
41 while True: |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
42 try: |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
43 cb = listeners.pop(0) |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
44 cb(host) |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
45 except IndexError: |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
46 break |
99d596613661
frontends: added a host_listener module which manage a listener launched when host is ready, useful to instantiate things on host in optional modules (e.g. menus).
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
47 del listeners |