Add comments. Remove unnecessary variables.

This commit is contained in:
Russell Gallop
2011-08-02 17:46:11 +01:00
parent 13835851b3
commit 6801d7a7c2

View File

@@ -17,6 +17,7 @@ static unsigned makeSymbol(unsigned data) {
static unsigned bit_time = XS1_TIMER_MHZ * 1000000 / (unsigned) RATE; static unsigned bit_time = XS1_TIMER_MHZ * 1000000 / (unsigned) RATE;
static unsigned bit_time_2 = (XS1_TIMER_MHZ * 1000000 / (unsigned) RATE) / 2; static unsigned bit_time_2 = (XS1_TIMER_MHZ * 1000000 / (unsigned) RATE) / 2;
// For debugging
int mr_count = 0; int mr_count = 0;
int th_count = 0; int th_count = 0;
@@ -86,7 +87,6 @@ void usb_midi(in port ?p_midi_in, out port ?p_midi_out,
int midi_from_host_overflow = 0; int midi_from_host_overflow = 0;
int space_left; int space_left;
//configure_clock_rate(clk_midi, 100, 1); //configure_clock_rate(clk_midi, 100, 1);
configure_out_port_no_ready(p_midi_out, clk_midi, 1); configure_out_port_no_ready(p_midi_out, clk_midi, 1);
@@ -106,9 +106,6 @@ void usb_midi(in port ?p_midi_in, out port ?p_midi_out,
// printstr("mout0"); // printstr("mout0");
#endif #endif
while (1) { while (1) {
select select
{ {
@@ -131,6 +128,7 @@ void usb_midi(in port ?p_midi_in, out port ?p_midi_out,
case isRX => t2 when timerafter(rxT) :> int _ : case isRX => t2 when timerafter(rxT) :> int _ :
if (rxI++ < 8) if (rxI++ < 8)
{ {
// shift in bits into the high end of a word
unsigned bit; unsigned bit;
p_midi_in :> bit; p_midi_in :> bit;
rxByte = (bit << 31) | (rxByte >> 1); rxByte = (bit << 31) | (rxByte >> 1);
@@ -189,7 +187,8 @@ void usb_midi(in port ?p_midi_in, out port ?p_midi_out,
uout_count++; uout_count++;
outputted_symbol = outputting_symbol; outputted_symbol = outputting_symbol;
// have we got another symbol to send to uart? // have we got another symbol to send to uart?
if (rdptr != wrptr) { if (rdptr != wrptr) { // FIFO not empty
// Take from FIFO
outputting_symbol = symbol_fifo[rdptr]; outputting_symbol = symbol_fifo[rdptr];
symbol = makeSymbol(symbol_fifo[rdptr]); symbol = makeSymbol(symbol_fifo[rdptr]);
rdptr++; rdptr++;
@@ -243,7 +242,6 @@ void usb_midi(in port ?p_midi_in, out port ?p_midi_out,
int event; int event;
unsigned midi[3]; unsigned midi[3];
unsigned size; unsigned size;
int valid;
// received data from host // received data from host
event = byterev(datum); event = byterev(datum);
mr_count++; mr_count++;
@@ -267,18 +265,13 @@ void usb_midi(in port ?p_midi_in, out port ?p_midi_out,
{midi[0], midi[1], midi[2], size} = midi_out_parse(event); {midi[0], midi[1], midi[2], size} = midi_out_parse(event);
for (int i = 0; i != size; i++) { for (int i = 0; i != size; i++) {
// add symbol to fifo // add symbol to fifo
unsigned sym = midi[i]; symbol_fifo[wrptr] = midi[i];
int new_wrptr = wrptr + 1; wrptr++;
if (wrptr > USB_MIDI_DEVICE_OUT_FIFO_SIZE - 1) {
if (new_wrptr > USB_MIDI_DEVICE_OUT_FIFO_SIZE - 1) { wrptr = 0;
new_wrptr = 0;
} }
symbol_fifo[wrptr] = sym;
wrptr = new_wrptr;
} }
space_left = rdptr - wrptr; space_left = rdptr - wrptr;
if (space_left < 0) if (space_left < 0)
space_left += USB_MIDI_DEVICE_OUT_FIFO_SIZE; space_left += USB_MIDI_DEVICE_OUT_FIFO_SIZE;
@@ -290,6 +283,7 @@ void usb_midi(in port ?p_midi_in, out port ?p_midi_out,
midi_from_host_overflow = 1; midi_from_host_overflow = 1;
} }
// Start sending from FIFO
if (wrptr != rdptr && !outputting) { if (wrptr != rdptr && !outputting) {
outputting_symbol = symbol_fifo[rdptr]; outputting_symbol = symbol_fifo[rdptr];
symbol = makeSymbol(symbol_fifo[rdptr]); symbol = makeSymbol(symbol_fifo[rdptr]);
@@ -305,6 +299,7 @@ void usb_midi(in port ?p_midi_in, out port ?p_midi_out,
#ifdef MIDI_LOOPBACK #ifdef MIDI_LOOPBACK
handle_byte_from_uart(c_midi, mips, cable_number, got_next_event, next_event, waiting_for_ack, symbol); handle_byte_from_uart(c_midi, mips, cable_number, got_next_event, next_event, waiting_for_ack, symbol);
#else #else
// Start sending byte (to be continued by outputting case)
p_midi_out <: 1 @ txPT; p_midi_out <: 1 @ txPT;
t :> time; t :> time;
time += bit_time; time += bit_time;