#!/usr/bin/python2.7
import italc
import notifier
import PyQt4.Qt as qt
import sys
import sip
from PyQt4.QtCore import pyqtSlot


qApp = qt.QCoreApplication(sys.argv)
notifier.init(notifier.QT)

italc.ItalcCore.init()

italc.ItalcCore.config.setLogLevel(italc.Logger.LogLevelDebug)
italc.ItalcCore.config.setLogToStdErr(True)
italc.ItalcCore.config.setLogFileDirectory('/var/log/univention/')
italc.Logger('ucs-school-umc-computerroom')
italc.ItalcCore.config.setLogonAuthenticationEnabled(False)

italc.ItalcCore.setRole(italc.ItalcCore.RoleTeacher)
italc.ItalcCore.initAuthentication(italc.AuthenticationCredentials.PrivateKey)


class Computer(object):

	def __init__(self, ip='10.200.27.151'):
		vnc = italc.ItalcVncConnection()
		sip.transferto(vnc, None)
		vnc.setPort(11100)
		vnc.setHost('10.200.27.151')
		vnc.setQuality(italc.ItalcVncConnection.ThumbnailQuality)
		vnc.start()
		self.vnc = vnc
		self.vnc.stateChanged.connect(self.state_changed)
		self.core = italc.ItalcCoreConnection(self.vnc)

	@pyqtSlot(int)
	def state_changed(self, state):
		print 'state changed', state


def dispatcher():
	c.vnc.image().save('/tmp/foo.jpg', 'JPG')
	return True


c = Computer()
notifier.dispatcher_add(dispatcher)
notifier.loop()
