-
Notifications
You must be signed in to change notification settings - Fork 0
/
controller.py
79 lines (68 loc) · 2.37 KB
/
controller.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import player, connection
import threading, time
class Controller(connection.Data):
def __init__(self, conn, player):
# player.Player.__init__(self)
connection.Data.__init__(self, conn)
self.data = connection.Data(conn)
self.p = player
def check(self):
time.sleep(2)
if(self.value != ''):
return
print(' ')
def startRecv(self):
self.threadRecv = threading.Thread(target=self.data.receiveData)
self.threadRecv.start()
def stopRecv(self):
self.threadRecv.join()
self.sendOn = False
def startTakingCommands(self):
self.threadCmd = threading.Thread(target=self.playerCommands)
self.threadCmd.start()
def stopTakingCommands(self):
self.threadCmd.join()
def playerCommands(self):
while (not self.p.status['ended']):
if((self.data.cmd == 'q') or (not self.data.recvOn)):
self.data.sendData('q')
self.p.stop()
self.p.status['ended'] = True
elif(self.data.cmd == 'p'):
if(self.p.status['playing']):
self.p.pause()
self.data.cmd = ' '
elif(self.p.status['paused']):
self.p.resume()
self.data.cmd = ' '
else:
self.p.play()
self.data.cmd = ' '
elif(self.data.cmd == 's'):
self.p.stop()
self.data.cmd = ' '
elif(self.data.cmd == 'i'):
self.p.seekInitialize(self.p.timeElapsed)
self.data.cmd = ' '
elif(self.data.cmd == 'n'):
self.data.cmd = ' '
pass
def startPlayer(self):
self.p = player.Player()
self.p.play()
self.startRecv()
self.startTakingCommands()
# self.data.sendData('i', self.p.timeElapsed)
self.timeout = 1
while self.data.sendOn:
self.value = ''
# threading.Thread(target = self.check).start()
self.value = input()
if(self.p.status['ended']):
break
if(self.value == ''):
continue
self.data.sendData(self.value)
# print(self.p.status)
self.stopTakingCommands()
self.stopRecv()