forked from PAWPAW-Mirror/lib_xua
Merge commit '82e07458911e4115981508e0538f682c146544ca' into 6V3_DEV
This commit is contained in:
@@ -56,7 +56,7 @@ static inline void swap(xc_ptr &a, xc_ptr &b)
|
|||||||
#ifdef MIDI
|
#ifdef MIDI
|
||||||
unsigned int g_midi_to_host_buffer_A[MAX_USB_MIDI_PACKET_SIZE/4+4];
|
unsigned int g_midi_to_host_buffer_A[MAX_USB_MIDI_PACKET_SIZE/4+4];
|
||||||
unsigned int g_midi_to_host_buffer_B[MAX_USB_MIDI_PACKET_SIZE/4+4];
|
unsigned int g_midi_to_host_buffer_B[MAX_USB_MIDI_PACKET_SIZE/4+4];
|
||||||
int g_midi_from_host_buffer[MAX_USB_MIDI_PACKET_SIZE/4+4];
|
unsigned int g_midi_from_host_buffer[MAX_USB_MIDI_PACKET_SIZE/4+4];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef IAP
|
#ifdef IAP
|
||||||
@@ -145,15 +145,12 @@ void buffer(register chanend c_aud_out, register chanend c_aud_in, chanend c_aud
|
|||||||
xc_ptr aud_from_host_buffer = 0;
|
xc_ptr aud_from_host_buffer = 0;
|
||||||
|
|
||||||
#ifdef MIDI
|
#ifdef MIDI
|
||||||
xc_ptr midi_from_host_buffer = 0;
|
xc_ptr midi_from_host_buffer = array_to_xc_ptr(g_midi_from_host_buffer);
|
||||||
xc_ptr midi_to_host_buffer = 0;
|
|
||||||
xc_ptr midi_to_host_waiting_buffer = 0;
|
|
||||||
|
|
||||||
xc_ptr midi_from_host_rdptr;
|
xc_ptr midi_from_host_rdptr;
|
||||||
xc_ptr midi_to_host_buffer_being_sent = array_to_xc_ptr(g_midi_to_host_buffer_A);
|
xc_ptr midi_to_host_buffer_being_sent = array_to_xc_ptr(g_midi_to_host_buffer_A);
|
||||||
xc_ptr midi_to_host_buffer_being_collected = array_to_xc_ptr(g_midi_to_host_buffer_B);
|
xc_ptr midi_to_host_buffer_being_collected = array_to_xc_ptr(g_midi_to_host_buffer_B);
|
||||||
|
|
||||||
|
|
||||||
int is_ack;
|
int is_ack;
|
||||||
unsigned int datum;
|
unsigned int datum;
|
||||||
int midi_data_remaining_to_device = 0;
|
int midi_data_remaining_to_device = 0;
|
||||||
@@ -214,16 +211,7 @@ void buffer(register chanend c_aud_out, register chanend c_aud_in, chanend c_aud
|
|||||||
expected_fb = ((DEFAULT_FREQ * 0x2000) / 1000);
|
expected_fb = ((DEFAULT_FREQ * 0x2000) / 1000);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef MIDI
|
|
||||||
// get the two buffers to use for midi device->host
|
|
||||||
asm("ldaw %0, dp[g_midi_to_host_buffer_A]":"=r"(midi_to_host_buffer));
|
|
||||||
asm("ldaw %0, dp[g_midi_to_host_buffer_B]":"=r"(midi_to_host_waiting_buffer));
|
|
||||||
asm("ldaw %0, dp[g_midi_from_host_buffer]":"=r"(midi_from_host_buffer));
|
|
||||||
|
|
||||||
swap(midi_to_host_buffer, midi_to_host_waiting_buffer);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef OUTPUT
|
#ifdef OUTPUT
|
||||||
SET_SHARED_GLOBAL(g_aud_from_host_flag, 1);
|
SET_SHARED_GLOBAL(g_aud_from_host_flag, 1);
|
||||||
@@ -519,8 +507,6 @@ void buffer(register chanend c_aud_out, register chanend c_aud_in, chanend c_aud
|
|||||||
/* MIDI IN to host */
|
/* MIDI IN to host */
|
||||||
case XUD_SetData_Select(c_midi_to_host, ep_midi_to_host, tmp):
|
case XUD_SetData_Select(c_midi_to_host, ep_midi_to_host, tmp):
|
||||||
asm("#midi d->h");
|
asm("#midi d->h");
|
||||||
|
|
||||||
swap(midi_to_host_buffer, midi_to_host_waiting_buffer);
|
|
||||||
|
|
||||||
/* The buffer has been sent to the host, so we can ack the midi thread */
|
/* The buffer has been sent to the host, so we can ack the midi thread */
|
||||||
if (midi_data_collected_from_device != 0)
|
if (midi_data_collected_from_device != 0)
|
||||||
|
|||||||
Reference in New Issue
Block a user