Jump to content

KTp/Components/Call UI: Difference between revisions

From KDE Community Wiki
< KTp
Gkiagia (talk | contribs)
No edit summary
Gkiagia (talk | contribs)
Line 17: Line 17:
===GUI Ideas===
===GUI Ideas===


* [http://git.collabora.co.uk/?p=user/asoliver/kde-telepathy-callhandler/.git;a=summary Alvaro's mockup]
* [http://cgit.collabora.com/git/user/asoliver/kde-telepathy-callhandler/ Alvaro's mockup]


* [https://bugzilla.gnome.org/show_bug.cgi?id=629902 empathy's new call UI mockup]
* [https://bugzilla.gnome.org/show_bug.cgi?id=629902 empathy's new call UI mockup]

Revision as of 14:22, 15 December 2011

The plan

  • The current code is wrong by design, needs to be replaced.
  • Build a simple Qt library that exports the whole call application logic with a QML-izable interface, using QtGStreamer/farsight/farsight utils/telepathy-qt4.
  • Build a GUI that possibly consists of a standard KXmlGuiWindow that embeds a QDeclarativeView, which implements the call GUI.

Blockers

  • Needs telepathy-qt4 to export interfaces for the Call spec.
    • tp-qt4-yell exports them now. will soon be merged to tp-qt4.
  • Needs a QML video widget in QtGStreamer.
    • this is work in progress.
    • we need it if and only if we build the interface using QML.

GUI Ideas

Dependency hell


How it all blends together

telepathy-qt-yell provides the Tpy::CallChannel class, which wraps the Channel.Type.Call d-bus object. From this object, we create a TfChannel (provided by tp-farstream) and we wrap it in a QTf::Channel object (provided by libqtf inside the call-ui repository; this is qt-gstreamer based bindings for tp-farstream). This TfChannel object does all the internal communication with the CM and constructs some GStreamer bin (using farsight2/farstream internally) that will do all the streaming. On this bin, we connect our GStreamer sources and sinks using the QtGStreamer API.