diff --git a/src/avwidgets.py b/src/avwidgets.py index f464e1f..9e95a96 100644 --- a/src/avwidgets.py +++ b/src/avwidgets.py @@ -70,20 +70,22 @@ class IncomingCallWidget(widgets.CenteredWidget): def __init__(self, fl): self.stop = False - self.wf = wave.open(fl, 'rb') + self.fl = fl + self.wf = wave.open(self.fl, 'rb') self.p = pyaudio.PyAudio() self.stream = self.p.open( format=self.p.get_format_from_width(self.wf.getsampwidth()), channels=self.wf.getnchannels(), rate=self.wf.getframerate(), - output=True - ) + output=True) def play(self): - data = self.wf.readframes(self.chunk) - while data and not self.stop: - self.stream.write(data) + while not self.stop: data = self.wf.readframes(self.chunk) + while data and not self.stop: + self.stream.write(data) + data = self.wf.readframes(self.chunk) + self.wf = wave.open(self.fl, 'rb') def close(self): self.stream.close() diff --git a/src/list_items.py b/src/list_items.py index 868d4ab..36fd80b 100644 --- a/src/list_items.py +++ b/src/list_items.py @@ -355,7 +355,7 @@ class FileTransferItem(QtGui.QListWidget): self.pb.setValue(int(progress * 100)) if time + 1: m, s = divmod(time, 60) - self.time_left.setText('{0:02d}:{0:02d}'.format(m, s)) + self.time_left.setText('{0:02d}:{1:02d}'.format(m, s)) if self.state != state: if state == TOX_FILE_TRANSFER_STATE['CANCELLED']: self.setStyleSheet('QListWidget { border: 1px solid #B40404; }') diff --git a/src/profile.py b/src/profile.py index ddf94f8..77e5849 100644 --- a/src/profile.py +++ b/src/profile.py @@ -251,8 +251,6 @@ class Profile(contact.Contact, Singleton): # ----------------------------------------------------------------------------------------------------------------- def send_files(self, friend_number): - # for key in filter(lambda x: x[0] == friend_number, self._file_transfers.keys()): - # self.resume_transfer(key[0], key[1], True) friend = self.get_friend_by_number(friend_number) files = friend.get_unsent_files() try: @@ -277,11 +275,6 @@ class Profile(contact.Contact, Singleton): self.friend_typing(friend_number, False) if friend_number in self._call: self._call.finish_call(friend_number, True) - # for key in filter(lambda x: x[0] == friend_number, self._file_transfers.keys()): - # if type(self._file_transfers[key]) in (ReceiveAvatar, SendAvatar): - # self._file_transfers[key].cancelled() - # else: - # self._file_transfers[key].pause(False) # ----------------------------------------------------------------------------------------------------------------- # Typing notifications @@ -454,8 +447,12 @@ class Profile(contact.Contact, Singleton): continue item = self.create_file_transfer_item(message, False) if message.get_status() in ACTIVE_FILE_TRANSFERS: # active file transfer - ft = self._file_transfers[(message.get_friend_number(), message.get_file_number())] - ft.set_state_changed_handler(item.update) + try: + ft = self._file_transfers[(message.get_friend_number(), message.get_file_number())] + ft.set_state_changed_handler(item.update) + ft.signal() + except: + print 'Incoming not started transfer - no info found' elif message.get_type() == MESSAGE_TYPE['INLINE']: # inline self.create_inline_item(message.get_data()) else: # info message diff --git a/src/sounds/call.wav b/src/sounds/call.wav index 6a7a8b2..c5aad0e 100755 Binary files a/src/sounds/call.wav and b/src/sounds/call.wav differ