aboutsummaryrefslogtreecommitdiff
path: root/xmpp-vala/src/module/xep/0167_jingle_rtp/stream.vala
diff options
context:
space:
mode:
Diffstat (limited to 'xmpp-vala/src/module/xep/0167_jingle_rtp/stream.vala')
-rw-r--r--xmpp-vala/src/module/xep/0167_jingle_rtp/stream.vala46
1 files changed, 46 insertions, 0 deletions
diff --git a/xmpp-vala/src/module/xep/0167_jingle_rtp/stream.vala b/xmpp-vala/src/module/xep/0167_jingle_rtp/stream.vala
new file mode 100644
index 00000000..62d85dec
--- /dev/null
+++ b/xmpp-vala/src/module/xep/0167_jingle_rtp/stream.vala
@@ -0,0 +1,46 @@
+public abstract class Xmpp.Xep.JingleRtp.Stream : Object {
+ public Jingle.Content content { get; protected set; }
+ public string name { get {
+ return content.content_name;
+ }}
+ public string? media { get {
+ var content_params = content.content_params;
+ if (content_params is Parameters) {
+ return ((Parameters)content_params).media;
+ }
+ return null;
+ }}
+ public JingleRtp.PayloadType? payload_type { get {
+ var content_params = content.content_params;
+ if (content_params is Parameters) {
+ return ((Parameters)content_params).agreed_payload_type;
+ }
+ return null;
+ }}
+ public bool sending { get {
+ return content.session.senders_include_us(content.senders);
+ }}
+ public bool receiving { get {
+ return content.session.senders_include_counterpart(content.senders);
+ }}
+
+ protected Stream(Jingle.Content content) {
+ this.content = content;
+ }
+
+ public signal void on_send_rtp_data(Bytes bytes);
+ public signal void on_send_rtcp_data(Bytes bytes);
+
+ public abstract void on_recv_rtp_data(Bytes bytes);
+ public abstract void on_recv_rtcp_data(Bytes bytes);
+
+ public abstract void on_rtp_ready();
+ public abstract void on_rtcp_ready();
+
+ public abstract void create();
+ public abstract void destroy();
+
+ public string to_string() {
+ return @"$name/$media stream in $(content.session.sid)";
+ }
+} \ No newline at end of file