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()