aboutsummaryrefslogtreecommitdiff
path: root/libdino/src/plugin/interfaces.vala
diff options
context:
space:
mode:
authorfiaxh <git@lightrise.org>2021-03-19 23:07:40 +0100
committerfiaxh <git@lightrise.org>2021-03-21 12:41:39 +0100
commitcdb4d77259e6c361aaca64a483a43d7441f4803d (patch)
tree6db053f9f0875f54261f3f7e7d6830612076e29d /libdino/src/plugin/interfaces.vala
parentef2e3c774cab82a94a5e34399f2013d64c3cf03b (diff)
downloaddino-cdb4d77259e6c361aaca64a483a43d7441f4803d.tar.gz
dino-cdb4d77259e6c361aaca64a483a43d7441f4803d.zip
Add support for unencrypted RTP calls to libdino
Co-authored-by: Marvin W <git@larma.de>
Diffstat (limited to 'libdino/src/plugin/interfaces.vala')
-rw-r--r--libdino/src/plugin/interfaces.vala25
1 files changed, 25 insertions, 0 deletions
diff --git a/libdino/src/plugin/interfaces.vala b/libdino/src/plugin/interfaces.vala
index dab058af..8be77895 100644
--- a/libdino/src/plugin/interfaces.vala
+++ b/libdino/src/plugin/interfaces.vala
@@ -84,6 +84,31 @@ public abstract interface ConversationAdditionPopulator : ConversationItemPopula
public virtual void populate_timespan(Conversation conversation, DateTime from, DateTime to) { }
}
+public abstract interface VideoCallPlugin : Object {
+ // Video widget
+ public abstract VideoCallWidget? create_widget(WidgetType type);
+
+ // Devices
+ public signal void devices_changed(string media, bool incoming);
+ public abstract Gee.List<MediaDevice> get_devices(string media, bool incoming);
+ public abstract MediaDevice? get_device(Xmpp.Xep.JingleRtp.Stream stream, bool incoming);
+ public abstract void set_pause(Xmpp.Xep.JingleRtp.Stream stream, bool pause);
+ public abstract void set_device(Xmpp.Xep.JingleRtp.Stream stream, MediaDevice? device);
+}
+
+public abstract interface VideoCallWidget : Object {
+ public signal void resolution_changed(uint width, uint height);
+ public abstract void display_stream(Xmpp.Xep.JingleRtp.Stream stream); // TODO: Multi participant
+ public abstract void display_device(MediaDevice device);
+ public abstract void detach();
+}
+
+public abstract interface MediaDevice : Object {
+ public abstract string id { get; }
+ public abstract string display_name { get; }
+ public abstract string detail_name { get; }
+}
+
public abstract interface NotificationPopulator : Object {
public abstract string id { get; }
public abstract void init(Conversation conversation, NotificationCollection summary, WidgetType type);