diff options
author | JP Cimalando <jpcima@users.noreply.github.com> | 2018-07-07 02:57:45 +0200 |
---|---|---|
committer | JP Cimalando <jpcima@users.noreply.github.com> | 2018-07-07 03:00:29 +0200 |
commit | ba37698fd82cab2513cd9f316189d433af4519df (patch) | |
tree | 0487adc817c4f2f4289d663e73a33f985c1fbf88 /utils/midiplay | |
parent | 7cb0fe9dad9f7ef24d1142d866450305102bf3a9 (diff) | |
download | libADLMIDI-ba37698fd82cab2513cd9f316189d433af4519df.tar.gz libADLMIDI-ba37698fd82cab2513cd9f316189d433af4519df.tar.bz2 libADLMIDI-ba37698fd82cab2513cd9f316189d433af4519df.zip |
add midiplay option for solo track
Diffstat (limited to 'utils/midiplay')
-rw-r--r-- | utils/midiplay/adlmidiplay.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/utils/midiplay/adlmidiplay.cpp b/utils/midiplay/adlmidiplay.cpp index cfc8b94..8cdfef5 100644 --- a/utils/midiplay/adlmidiplay.cpp +++ b/utils/midiplay/adlmidiplay.cpp @@ -342,6 +342,8 @@ int main(int argc, char **argv) int emulator = ADLMIDI_EMU_NUKED; #endif + size_t soloTrack = ~(size_t)0; + #if !defined(HARDWARE_OPL3) && !defined(OUTPUT_WAVE_ONLY) g_audioFormat.type = ADLMIDI_SampleType_S16; g_audioFormat.containerSize = sizeof(Sint16); @@ -404,6 +406,18 @@ int main(int argc, char **argv) multibankFromEnbededTest = true; else if(!std::strcmp("-s", argv[2])) adl_setScaleModulators(myDevice, 1);//Turn on modulators scaling by volume + + else if(!std::strcmp("--solo", argv[2])) + { + if(argc <= 3) + { + printError("The option --solo requires an argument!\n"); + return 1; + } + soloTrack = std::strtoul(argv[3], NULL, 0); + had_option = true; + } + else break; std::copy(argv + (had_option ? 4 : 3), @@ -586,6 +600,14 @@ int main(int argc, char **argv) return 2; } + std::fprintf(stdout, " - Track count: %lu\n", (unsigned long)adl_trackCount(myDevice)); + + if(soloTrack != ~(size_t)0) + { + std::fprintf(stdout, " - Solo track: %lu\n", (unsigned long)soloTrack); + adl_setTrackOptions(myDevice, soloTrack, ADL_TrackOption_Solo); + } + std::fprintf(stdout, " - File [%s] opened!\n", musPath.c_str()); flushout(stdout); |