main.py 1.23 KB
Newer Older
Antoine Lima's avatar
Base UI  
Antoine Lima committed
1
2
3
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Antoine Lima's avatar
UI v0.3    
Antoine Lima committed
4
@author: Antoine Lima, Leo Reynaert, Domitille Jehenne
Antoine Lima's avatar
Base UI  
Antoine Lima committed
5
6
"""

7
8
9
import os
OnRasp = os.uname()[1] == 'raspberrypi'

Antoine Lima's avatar
UI v0.3    
Antoine Lima committed
10
11
import sys
import logging
Antoine Lima's avatar
Antoine Lima committed
12
from os.path import dirname, abspath, join
Antoine Lima's avatar
Base UI  
Antoine Lima committed
13
14
15

from PyQt5 import QtWidgets

Antoine Lima's avatar
Cleanup    
Antoine Lima committed
16
17
18
def getContent(path):
	contentFolder = join(dirname(dirname(abspath(__file__))), 'content')
	return join(contentFolder, path)
19
	
Antoine Lima's avatar
Base UI  
Antoine Lima committed
20
if __name__=='__main__':
Antoine Lima's avatar
Cleanup    
Antoine Lima committed
21
22
23
24
	from ui.mainwin import MainWin
	from modules import GameModule
	from player import Side
	
25
26
	from input import GPIOThread
	from database import Database
27
	from replay import Replay as ReplayThread
Antoine Lima's avatar
Antoine Lima committed
28
	
29
30
31
32
33
34
35
	try:
		#logging.basicConfig(filename='babyfoot.log', level=logging.DEBUG)
		logging.basicConfig(level=logging.DEBUG)
		
		app = QtWidgets.QApplication(sys.argv)
		myapp = MainWin()
		
36
37
38
39
		if ReplayThread.isCamAvailable():
			threadReplay = ReplayThread(Side.Left)
			threadReplay.start()
			myapp.dispatchMessage({'replayThread': threadReplay}, toType=GameModule)
40
41
42
43
44
45
46
47
48
		
		threadGPIO = GPIOThread(myapp)
		threadGPIO.start()
		
		myapp.show()
		app.exec_()
		
		threadGPIO.stop()
		
49
50
51
		if ReplayThread.isCamAvailable():
			threadReplay.stop()
			threadReplay.join()
52
53
54
55
56
		
		threadGPIO.join()
		
	finally:
		GPIOThread.clean()
Antoine Lima's avatar
Antoine Lima committed
57
		Database.instance().close()