Refactorization

This commit is contained in:
Uriziel 2012-06-29 16:19:06 +02:00
parent 4b9f364120
commit 2b7687b449

View File

@ -2,10 +2,11 @@
import time import time
import re import re
import threading
from twisted.internet import reactor from twisted.internet import reactor
from twisted.internet.protocol import ClientFactory from twisted.internet.protocol import ClientFactory
from syncplay import utils
from .network_utils import ( from .network_utils import (
arg_count, arg_count,
CommandProtocol, CommandProtocol,
@ -208,8 +209,9 @@ class Manager(object):
self.make_player = make_player self.make_player = make_player
self.running = False self.running = False
command_handler = threading.Thread(target = utils.stdin_thread, args = (self,), name = "Command handler")
command_handler.setDaemon(True)
command_handler.start()
def start(self): def start(self):
if self.running: if self.running:
return return
@ -261,7 +263,6 @@ class Manager(object):
self.make_player(self) self.make_player(self)
self.make_player = None self.make_player = None
def schedule_ask_player(self, when=0.2): def schedule_ask_player(self, when=0.2):
if self.ask_delayed and self.ask_delayed.active(): if self.ask_delayed and self.ask_delayed.active():
self.ask_delayed.reset(when) self.ask_delayed.reset(when)
@ -276,7 +277,6 @@ class Manager(object):
self.player.ask_for_status() self.player.ask_for_status()
self.schedule_ask_player() self.schedule_ask_player()
def schedule_send_status(self, when=1): def schedule_send_status(self, when=1):
if self.send_delayed and self.send_delayed.active(): if self.send_delayed and self.send_delayed.active():
self.send_delayed.reset(when) self.send_delayed.reset(when)
@ -306,31 +306,19 @@ class Manager(object):
print message print message
self.player.display_message(message) self.player.display_message(message)
def send_filename(self): def send_filename(self):
if self.protocol and self.player_filename: if self.protocol and self.player_filename:
self.protocol.send_playing(self.player_filename) self.protocol.send_playing(self.player_filename)
def __exectue_seek_cmd(self, seek_type, minutes, seconds): def __exectue_seek_cmd(self, seek_type, minutes, seconds):
self.player_position_before_last_seek = self.player_position self.player_position_before_last_seek = self.player_position
if seek_type == 's': if seek_type == 's':
if seconds <> None: seconds = int(seconds) if seconds <> None else 0
seconds = int(seconds) seconds += int(minutes) * 60 if minutes <> None else 0
else:
seconds = 0
if minutes <> None:
seconds += int(minutes) * 60
self.player.set_position(seconds) self.player.set_position(seconds)
else: #seek_type s+ else: #seek_type s+
if seconds <> None: seconds = int(seconds) if seconds <> None else 20
seconds = int(seconds) seconds += int(minutes) * 60 if minutes <> None else 60
else:
seconds = 20
if minutes <> None:
seconds += int(minutes) * 60
else:
seconds += 60
self.player.set_position(self.player_position+seconds) self.player.set_position(self.player_position+seconds)
def execute_command(self, data): def execute_command(self, data):
@ -359,11 +347,11 @@ class Manager(object):
print "\tr - revert last seek" print "\tr - revert last seek"
print "\tp - toggle pause" print "\tp - toggle pause"
print "\troom [room] - change room, if no supplied go to default" print "\troom [room] - change room, if no supplied go to default"
def update_player_status(self, paused, position): def update_player_status(self, paused, position):
self.status_ask_received += 1 self.status_ask_received += 1
if self.status_ask_received < self.status_ask_sent: if self.status_ask_received < self.status_ask_sent:
return return
old_paused = self.player_paused old_paused = self.player_paused
self.player_paused = paused self.player_paused = paused
self.player_position = position self.player_position = position
@ -384,8 +372,6 @@ class Manager(object):
message = '%s unpaused' % self.name message = '%s unpaused' % self.name
print message print message
self.player.display_message(message) self.player.display_message(message)
if not (self.global_paused or self.seek_sent_wait): if not (self.global_paused or self.seek_sent_wait):
if (0.4 if self.player_speed_fix else 1.2) <= diff <= 4: if (0.4 if self.player_speed_fix else 1.2) <= diff <= 4:
#print 'client is %0.2fs ahead of server, slowing down' % diff #print 'client is %0.2fs ahead of server, slowing down' % diff
@ -400,7 +386,6 @@ class Manager(object):
if abs(diff) > 8:# and not self.seek_sent_wait: if abs(diff) > 8:# and not self.seek_sent_wait:
self.send_seek() self.send_seek()
self.seek_sent_wait = True self.seek_sent_wait = True
if not paused and self.player_paused_at is not None and position >= self.player_paused_at: if not paused and self.player_paused_at is not None and position >= self.player_paused_at:
#print 'Pausing %0.2fs after pause point' % (position - self.player_paused_at) #print 'Pausing %0.2fs after pause point' % (position - self.player_paused_at)
self.player.set_paused(True) self.player.set_paused(True)
@ -409,7 +394,6 @@ class Manager(object):
def update_filename(self, filename): def update_filename(self, filename):
filename = unicode(filename, errors='replace') filename = unicode(filename, errors='replace')
self.player_filename = filename.encode('ascii','replace') self.player_filename = filename.encode('ascii','replace')
self.send_filename() self.send_filename()
def update_global_state(self, counter, ctime, paused, position, name): def update_global_state(self, counter, ctime, paused, position, name):