From 4f501bf7dace446d33bc463abbb4233f3d76bbb1 Mon Sep 17 00:00:00 2001 From: Sam Chesney Date: Wed, 15 Jan 2014 18:50:05 +0000 Subject: [PATCH] iAP input and output buffers now separated, also MIDI ports are no longer passed in to iAP functions when no dedicated i2c ports are present as p_midi_in is now buffered. --- module_usb_midi/src/usb_midi.xc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/module_usb_midi/src/usb_midi.xc b/module_usb_midi/src/usb_midi.xc index f0781ba1..78f93c1a 100644 --- a/module_usb_midi/src/usb_midi.xc +++ b/module_usb_midi/src/usb_midi.xc @@ -38,6 +38,8 @@ int uin_count = 0; // UART bytes in // state for iAP #ifdef IAP extern unsigned authenticating; +extern struct iap_buf iap_incoming_buffer; +extern struct iap_buf iap_outgoing_buffer; #else unsigned authenticating = 0; #endif @@ -115,11 +117,11 @@ void usb_midi(buffered in port:1 ?p_midi_in, port ?p_midi_out, /* Check for special case where MIDI and i2c ports are shared... */ if(isnull(c_i2c) && isnull(p_scl) && isnull(p_sda)) { - init_iAP(c_i2c, p_midi_out, p_midi_in); // uses timer for i2c initialisation pause.. + init_iAP(iap_incoming_buffer, iap_outgoing_buffer, null, null, null); // uses timer for i2c initialisation pause.. } else { - init_iAP(c_i2c, p_scl, p_sda); // uses timer for i2c initialisation pause.. + init_iAP(iap_incoming_buffer, iap_outgoing_buffer, c_i2c, p_scl, p_sda); // uses timer for i2c initialisation pause.. } #endif @@ -335,11 +337,11 @@ void usb_midi(buffered in port:1 ?p_midi_in, port ?p_midi_out, /* Check for special case where MIDI ports are shared with i2c ports */ if(isnull(c_i2c) && isnull(p_scl) && isnull(p_sda)) { - iap_handle_ack_or_reset_or_data(is_ack, is_reset, datum, c_iap, c_i2c, p_midi_out, p_midi_in); + iap_handle_ack_or_reset_or_data(iap_incoming_buffer, iap_outgoing_buffer, is_ack, is_reset, datum, c_iap, null, null, null); } else { - iap_handle_ack_or_reset_or_data(is_ack, is_reset, datum, c_iap, c_i2c, p_scl, p_sda); + iap_handle_ack_or_reset_or_data(iap_incoming_buffer, iap_outgoing_buffer, is_ack, is_reset, datum, c_iap, c_i2c, p_scl, p_sda); } if (!authenticating) {