«Image: Homemade applications» Homemade applications

The following code enables controller.py to be used in a homemade application.

#! /usr/bin/env python3

import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk

#import errorsDring
from controller import libjamiCtrl

########################################################################
# Provide callback to Jami daemon D-Bus signals
########################################################################

class MyController(libjamiCtrl):
    #
    # Signal handling
    #     process callbacks in the app
    #
    def onCallIncoming_cb(self, callId):
        onCallIncoming(callId)

    def onCallEnd_cb(self, callId):
        onCallEnd(callId)

    def onCallConnecting_cb(self, callId):
        onCallConnecting(callId)

    def onCallRinging_cb(self, callId):
        onCallRinging(callId)

    def onCallHold_cb(self):
        onCallHold()

    def onCallInactive_cb(self):
        onCallInactive()

    def onCallCurrent_cb(self):
        onCallCurrent()

    def onCallBusy_cb(self):
        onCallBusy()

    def onCallFailure_cb(self):
        onCallFailure()

    def onCallOver_cb(self):
        onCallOver()

    def onIncomingTrustRequest_cb(self, account, conversation, orig, payload, received):
        onIncomingTrustRequest(account, conversation, orig, payload, received)

# Stop the Jami controller thread
def closeCtrl(something):
    print("About to quit…")
    ctrl.stopThread()
    Gtk.main_quit()

########################################################################
# Callbacks
########################################################################

def onCallIncoming(callId):
    pass

def onCallEnd(callId):
    pass

def onCallConnecting(callId):
    pass

def onCallRinging(callId):
    pass

def onCallHold():
    pass

def onCallInactive():
    pass

def onCallCurrent():
    pass

def onCallBusy():
    pass

def onCallFailure():
    pass

def onCallOver():
    pass

def onIncomingTrustRequest(account, conversation, orig, payload, received):
    pass

########################################################################
# Controller in another thread
########################################################################

# jamid MUST be running already!

ctrl = MyController("MyJami", False)
ctrl.daemon = True
ctrl.start()

########################################################################
# Create the main window
########################################################################

window = Gtk.Window()
window.connect("destroy", closeCtrl)
window.show_all()
Gtk.main()