Example #1
0
	def __init__(self, surface, start_page, tox_opts):
		MenuUi.__init__(self, surface, start_page)
		if tox_opts is not None:
			Tox.__init__(self, tox_opts)
		
		self.self_set_name("Toxphone")
		print('ID: %s' % self.self_get_address())
        
		self.av = ToxPhoneAV(self)
		
		self.ring_enabled = False
		self.ringtone = wave.open('res/audio/ringtone.wav', 'rb')
		self.ring_stream = None
		self.ring_thread = None
		
		self.aostream = None
		self.aistream = None
		
		self.av.on_call = self.on_call
		self.av.on_call_state = self.on_call_state
		self.av.on_bit_rate_status = self.on_bit_rate_status
		self.av.on_audio_receive_frame = self.on_audio_receive_frame
		
		self.iterate_lock = Lock()

		'''
		self.core_iterate_thread_stop = False
		self.core_iterate_thread = Thread(target=self.core_iterate)
		self.core_iterate_thread.daemon = True
		self.core_iterate_thread.start()
		
		self.av_iterate_thread_stop = False
		self.av_iterate_thread = Thread(target=self.av_iterate)
		self.av_iterate_thread.daemon = True
		self.av_iterate_thread.start()
		'''
		
		self.call_status = {'status': False, 'friend_number': None}
		self.device_index = 0
		self.audio_buffer = b''
		
		print('========== AUDIO DEVICES ==========')
		for i in range(audio.get_device_count()):
			if audio.get_device_info_by_index(i)['name'] == 'pulse':
				self.device_index = i
				print(audio.is_format_supported(RATE, input_device=self.device_index, input_channels=CHANNELS, input_format=pyaudio.paInt16))
			print(audio.get_device_info_by_index(i))
			
		self.connect()