diff --git a/INSTALL/MidiLink_INI.zip b/INSTALL/MidiLink_INI.zip index 377f218..bcfd324 100644 Binary files a/INSTALL/MidiLink_INI.zip and b/INSTALL/MidiLink_INI.zip differ diff --git a/Makefile b/Makefile index 4018dd1..08a357e 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ CC=arm-linux-gnueabihf-gcc STRIP=arm-linux-gnueabihf-strip -CCFLAGS=-Ialsa/include -Lalsa/lib -Ofast -mcpu=cortex-a9 -mfpu=neon -mfloat-abi=hard -ftree-vectorize -funsafe-math-optimizations +CCFLAGS=-Ialsa/include -Lalsa/lib -Ofast -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=neon -mfloat-abi=hard -ftree-vectorize -funsafe-math-optimizations LDFLAGS=-lasound -lm -pthread all : $(CC) $(CCFLAGS) $(LDFLAGS) main.c modem.c serial.c serial2.c misc.c udpsock.c tcpsock.c alsa.c ini.c directory.c modem_snd.c -o midilink diff --git a/MidiLink.INI b/MidiLink.INI index 5c4d6dd..02e882b 100644 --- a/MidiLink.INI +++ b/MidiLink.INI @@ -27,8 +27,9 @@ DELAYSYSEX = TRUE #USB_SERIAL_MODULE = /media/fat/pl2303.ko [AO486] -MIDI_BAUD = 38400 -TCP_SOUND_CONNECT = /media/fat/SOUNDS/connect_sav.wav +MIDI_BAUD = 31250 +UDP_BAUD = 38400 +#TCP_SOUND_CONNECT = /media/fat/SOUNDS/connect_sav.wav [ATARIST] TCP_BAUD = 19200 diff --git a/alsa.c b/alsa.c index b15b17e..a3f6a4e 100644 --- a/alsa.c +++ b/alsa.c @@ -68,7 +68,7 @@ int alsa_open_seq(int _portNo, int _devNo) return FALSE; } alsa_reset_seq_event(&ev); - snd_midi_event_new(256, &parser); + snd_midi_event_new(1024, &parser); return TRUE; } diff --git a/config.h b/config.h index 986af5a..ce0edc4 100644 --- a/config.h +++ b/config.h @@ -13,7 +13,7 @@ char * midiLinkINI = "/media/fat/linux/MidiLink.INI"; char * midiLinkDIR = "/media/fat/linux/MidiLink.DIR"; char * serialDevice = "/dev/ttyS1"; -char * helloStr = "MiSTer MidiLink 3.0 BB7"; +char * helloStr = "MiSTer MidiLink 3.1 BB7"; char * PCMDevice = "/dev/snd/pcmC0D0p"; int CPUMASK = 1; static char * MrAudioDevice = "/dev/MrAudio"; diff --git a/main.c b/main.c index 2c8ee57..9115827 100644 --- a/main.c +++ b/main.c @@ -458,6 +458,7 @@ int main(int argc, char *argv[]) { int status; int midiPort; + int midiPortThrough; int altBaud = FALSE; char coreName[30] = ""; MUNTCPUMask = CPUMASK; @@ -469,7 +470,7 @@ int main(int argc, char *argv[]) misc_print(0, helloStr); misc_print(0, "\n"); - + modem_set_defaults(); misc_get_core_name(coreName, sizeof(coreName)); misc_print(0, "CORE --> '%s'\n", coreName); @@ -566,6 +567,19 @@ int main(int argc, char *argv[]) close_fd(); return -3; } + + if(misc_check_args_option(argc, argv, "THROUGH")) + { + midiPortThrough = alsa_get_midi_port("Midi Through"); + if (midiPortThrough != -1) + { + misc_print(0, "Using MIDI-Through port --> %d\n", midiPortThrough); + misc_print(0, "Connecting MIDI port %d:0 --> %d:0\n", midiPortThrough, midiPort); + sprintf(buf, "aconnect %d:0 %d:0", midiPortThrough, midiPort); + system(buf); + midiPort = midiPortThrough; + } + } } //these modes don't need serial port. all others do :) @@ -620,12 +634,15 @@ int main(int argc, char *argv[]) if(MIDIBaudRate != -1) baudRate = MIDIBaudRate; else + baudRate = 31250; + /* { if (strcmp(coreName, "AO486") == 0) baudRate = 38400; else baudRate = 31250; } + */ } serial_set_flow_control(fdSerial, 0); @@ -748,7 +765,6 @@ int main(int argc, char *argv[]) break; case ModeTCP: { - modem_set_defaults(); if(TCPFlow > 0) serial_set_flow_control(fdSerial, TCPFlow); //serial2_set_DCD(sericlDevice, fdSerial, FALSE); diff --git a/midilink b/midilink index 9463b36..2344058 100755 Binary files a/midilink and b/midilink differ diff --git a/misc.c b/misc.c index 9780282..e38e665 100644 --- a/misc.c +++ b/misc.c @@ -173,8 +173,6 @@ void misc_swrite_no_trans(int fdSerial, const char* format, ... ) int misc_check_args_option (int argc, char *argv[], char * option) { int result = FALSE; - char * OPTION = strdup(option); - misc_str_to_upper(OPTION); if(argc > 1) for (int i = 1; i< argc; i++) { @@ -184,7 +182,6 @@ int misc_check_args_option (int argc, char *argv[], char * option) break; } } - free(OPTION); return result; } diff --git a/mlinkutil b/mlinkutil index 4c8fcff..3ad1bd1 100755 Binary files a/mlinkutil and b/mlinkutil differ