def _recv(self, parent): def receiver_thread(): try: with self._audio_interface() as interface: src = interface.recorder() dst = BytesIO() amodem.main.recv(config=self.modem_config, src=src, dst=dst) return dst.getvalue() except Exception: traceback.print_exc() def on_success(blob): if blob: blob = zlib.decompress(blob) print_msg('Received:', repr(blob)) parent.setText(blob) kbps = self.modem_config.modem_bps / 1e3 msg = 'Receiving from Audio MODEM ({0:.1f} kbps)...'.format(kbps) return WaitingDialog(parent=parent, message=msg, run_task=receiver_thread, on_success=on_success)
def before_send(self): # request billing info before forming the transaction self.billing_info = None self.waiting_dialog = WaitingDialog(self.window, 'please wait...', self.request_billing_info) self.waiting_dialog.start() self.waiting_dialog.wait() if self.billing_info is None: self.window.show_message('Could not contact server') return True return False
def _send(self, parent, blob): def sender_thread(): with self._audio_interface() as interface: src = BytesIO(blob) dst = interface.player() amodem.main.send(config=self.modem_config, src=src, dst=dst) print_msg('Sending:', repr(blob)) blob = zlib.compress(blob) kbps = self.modem_config.modem_bps / 1e3 msg = 'Sending to Audio MODEM ({0:.1f} kbps)...'.format(kbps) WaitingDialog(parent, msg, sender_thread)
def _send(self, parent, blob): def sender_thread(): try: with self._audio_interface() as interface: src = BytesIO(blob) dst = interface.player() amodem.send.main(config=self.modem_config, src=src, dst=dst) except Exception: traceback.print_exc() print_msg('Sending:', repr(blob)) blob = zlib.compress(blob) kbps = self.modem_config.modem_bps / 1e3 msg = 'Sending to Audio MODEM ({0:.1f} kbps)...'.format(kbps) return WaitingDialog(parent=parent, message=msg, run_task=sender_thread)
def _recv(self, parent): def receiver_thread(): with self._audio_interface() as interface: src = interface.recorder() dst = BytesIO() amodem.main.recv(config=self.modem_config, src=src, dst=dst) return dst.getvalue() def on_finished(blob): if blob: blob = zlib.decompress(blob) print_msg('Received:', repr(blob)) parent.setText(blob) kbps = self.modem_config.modem_bps / 1e3 msg = 'Receiving from Audio MODEM ({0:.1f} kbps)...'.format(kbps) WaitingDialog(parent, msg, receiver_thread, on_finished)
def settings_dialog(self): self.waiting_dialog = WaitingDialog(self.window, 'please wait...', self.request_billing_info, self.show_settings_dialog) self.waiting_dialog.start()