From b75cd9f672eecda3fdf0c9b76bd7687523b76d45 Mon Sep 17 00:00:00 2001 From: bbond007 Date: Wed, 6 May 2020 01:45:40 -0400 Subject: [PATCH] add SFFONT optin to mkinkutil --- Makefile | 2 +- mlinkutil | Bin 14016 -> 18168 bytes mlinkutil.c | 92 ++++++++++++++++++++++++++++++++++++++++++---------- 3 files changed, 75 insertions(+), 19 deletions(-) diff --git a/Makefile b/Makefile index 53ccf80..206d0da 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ LDFLAGS=-lasound -lm -pthread all : $(CC) $(CCFLAGS) $(LDFLAGS) main.c serial.c serial2.c misc.c udpsock.c tcpsock.c alsa.c ini.c directory.c modem_snd.c -o midilink $(STRIP) midilink - $(CC) $(CCFLAGS) mlinkutil.c misc.c serial2.c -o mlinkutil + $(CC) $(CCFLAGS) mlinkutil.c misc.c serial2.c tcpsock.c -o mlinkutil $(STRIP) mlinkutil clean: rm -f midilink *~ *.orig DEADJOE diff --git a/mlinkutil b/mlinkutil index 992b87165c3384c3dfb10160c1af2b0c30bdf452..090ccffefe3fe3d1fb0af65a27d7ff2b4ea04c04 100755 GIT binary patch literal 18168 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

^7dON$u~hgv}`imnL#xXAR8N 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 %s\n", argv[result + 1]); - return -1; - } - //printf("SET BAUD --> %d\n", baud); - fdSerial = open(serialDevice, O_RDWR | O_NOCTTY | O_SYNC); - if (fdSerial < 0) - { - misc_print(0, "ERROR: opening %s: %s\n", serialDevice, strerror(errno)); - return -2; - } - serial2_set_baud(serialDevice, fdSerial, baud); - close(fdSerial); + char * ptr; + int baud = strtol(argv[result + 1], &ptr, 10); + if (!serial2_is_valid_rate (baud)) + { + printf("ERROR : BAUD not valid --> %s\n", argv[result + 1]); + return -1; + } + //printf("SET BAUD --> %d\n", baud); + fdSerial = open(serialDevice, O_RDWR | O_NOCTTY | O_SYNC); + if (fdSerial < 0) + { + misc_print(0, "ERROR: opening %s: %s\n", serialDevice, strerror(errno)); + return -2; + } + serial2_set_baud(serialDevice, fdSerial, baud); + close(fdSerial); } + + result = misc_check_args_option(argc, argv, "FSSFONT"); + if(result && (result + 1 < argc)) + { + if(misc_check_file(argv[result + 1])) + { + socket_out = tcpsock_client_connect("127.0.0.1", 9800, fdSerial); + if (socket_out > 0) + { + char sListSF[] = "fonts\n"; + tcpsock_write(socket_out, sListSF, strlen(sListSF)); + sleep(1); + + char buf[1024]; + int TCPresult = tcpsock_read(socket_out, buf, sizeof(buf)); + if(TCPresult > 15) + { + buf[TCPresult] = 0x00; + if (strncmp("ID Name", buf, 7)) + { + char * sfNo = &buf[9]; + if (sfNo[0] == ' ') sfNo++; + char * tm = strchr(sfNo, ' '); + if (tm) *tm = 0x00; + if (strchr("1234567890", sfNo[0])) + { + printf("Unload Sounfont #%s --> '%s'\n", sfNo, tm + 1); + char sUnloadSF[30]; + sprintf(sUnloadSF, "unload %s\n", sfNo); + tcpsock_write(socket_out, sUnloadSF, strlen(sUnloadSF)); + sleep(1); + } + } + } + char sLoadSF[250]; + sprintf(sLoadSF, "load %s\n", argv[result + 1]); + printf("Loading SoundFont --> '%s'\n", argv[result + 1]); + tcpsock_write(socket_out, sLoadSF, strlen(sLoadSF)); + sleep(1); + close(socket_out); + } + else + { + printf("ERROR --> unable to connect to FluidSynth:9800\n"); + return -4; + } + } + else + { + printf("ERROR --> unable to open file '%s'\n", argv[result+1]); + return -3; + } + } + return 0; }