| 
														
															@@ -131,24 +131,29 @@ int32_t output_bt_data(uint8_t *data, int32_t len) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	// This is how the BTC layer calculates the number of bytes to 
														 | 
														
														 | 
														
															 	// This is how the BTC layer calculates the number of bytes to 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	// for us to send. (BTC_SBC_DEC_PCM_DATA_LEN * sizeof(OI_INT16) - availPcmBytes 
														 | 
														
														 | 
														
															 	// for us to send. (BTC_SBC_DEC_PCM_DATA_LEN * sizeof(OI_INT16) - availPcmBytes 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	wanted_len=len; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	SET_MIN_MAX(len,req); 
														 | 
														
														 | 
														
															 	SET_MIN_MAX(len,req); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	TIME_MEASUREMENT_START(start_timer); 
														 | 
														
														 | 
														
															 	TIME_MEASUREMENT_START(start_timer); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	LOCK; 
														 | 
														
														 | 
														
															 	LOCK; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	output.device_frames = 0; // todo: check if this is the right way do to this. 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	len /= BYTES_PER_FRAME; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	wanted_len = len; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	output.device_frames = 0;  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	output.updated = gettime_ms(); 
														 | 
														
														 | 
														
															 	output.updated = gettime_ms(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	output.frames_played_dmp = output.frames_played; 
														 | 
														
														 | 
														
															 	output.frames_played_dmp = output.frames_played; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	SET_MIN_MAX_SIZED(_buf_used(outputbuf),bt,outputbuf->size); 
														 | 
														
														 | 
														
															 	SET_MIN_MAX_SIZED(_buf_used(outputbuf),bt,outputbuf->size); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	do { 
														 | 
														
														 | 
														
															 	do { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		avail_data = _output_frames( wanted_len/BYTES_PER_FRAME )*BYTES_PER_FRAME; // Keep the transfer buffer full 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		wanted_len-=avail_data; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		avail_data = _output_frames(wanted_len);  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		wanted_len -= avail_data; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} while (wanted_len > 0 && avail_data != 0); 
														 | 
														
														 | 
														
															 	} while (wanted_len > 0 && avail_data != 0); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	 
														 | 
														
														 | 
														
															 	 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	if (wanted_len > 0) { 
														 | 
														
														 | 
														
															 	if (wanted_len > 0) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		SET_MIN_MAX(wanted_len, under); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		SET_MIN_MAX(wanted_len * BYTES_PER_FRAME, under); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	} 
														 | 
														
														 | 
														
															 	} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	output.frames_in_process = len-wanted_len; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	 
														 | 
														
														 | 
														
															 	 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	output.frames_in_process = len - wanted_len; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	equalizer_process(data, (len - wanted_len) * BYTES_PER_FRAME, output.current_sample_rate); 
														 | 
														
														 | 
														
															 	equalizer_process(data, (len - wanted_len) * BYTES_PER_FRAME, output.current_sample_rate); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	UNLOCK; 
														 | 
														
														 | 
														
															 	UNLOCK; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -156,7 +161,7 @@ int32_t output_bt_data(uint8_t *data, int32_t len) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	SET_MIN_MAX((len-wanted_len), rec); 
														 | 
														
														 | 
														
															 	SET_MIN_MAX((len-wanted_len), rec); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	TIME_MEASUREMENT_START(start_timer); 
														 | 
														
														 | 
														
															 	TIME_MEASUREMENT_START(start_timer); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	return len-wanted_len; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	return (len - wanted_len) * BYTES_PER_FRAME; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 void output_bt_tick(void) { 
														 | 
														
														 | 
														
															 void output_bt_tick(void) { 
														 |