Skip to content
Permalink
Browse files
Added the support for the FluidLite
Since MixerX has an own MIDI sequencer, it can be used with the FluidLite library which doesn't has any sort of MIDI sequencer at all
  • Loading branch information
Wohlstand committed Mar 29, 2021
1 parent 057254f commit 05ae373188effa0f6bf99c27c5812ad16d2c9bfa
Show file tree
Hide file tree
Showing 6 changed files with 660 additions and 1 deletion.
@@ -239,6 +239,7 @@ if(USE_MIDI)
include(music_midi_adl)
include(music_midi_opn)
include(music_timidity)
include(music_fluidlite)
include(music_fluidsynth)
include(music_nativemidi_alt_win32)
include(music_nativemidi)
@@ -537,5 +538,6 @@ print_sumary("GME" USE_GME GME_FOUND GME_LIBRARIES)
print_sumary("libADLMIDI" USE_MIDI_ADLMIDI ADLMIDI_FOUND ADLMIDI_LIBRARIES)
print_sumary("libOPNMIDI" USE_MIDI_OPNMIDI OPNMIDI_FOUND OPNMIDI_LIBRARIES)
print_sumary("FluidSynth" USE_MIDI_FLUIDSYNTH FluidSynth_FOUND FluidSynth_LIBRARIES)
print_sumary("FluidLite" USE_MIDI_FLUIDLITE FluidLite_FOUND FluidLite_LIBRARIES)
print_sumary("Timidity-SDL" USE_MIDI_TIMIDITY TIMIDITYSDL_FOUND TIMIDITYSDL_LIBRARIES)
printLicense()
@@ -0,0 +1,30 @@
# - Try to find FluidLite
# Once done this will define
# FluidLite_FOUND - System has FluidLite
# FluidLite_INCLUDE_DIRS - The FluidLite include directories
# FluidLite_LIBRARIES - The libraries needed to use FluidLite

find_path(FluidLite_INCLUDE_DIR "fluidlite.h")
find_library(FluidLite_LIBRARY NAMES fluidlite)

if(FluidLite_INCLUDE_DIR AND FluidLite_LIBRARY)
if(APPLE)
find_library(FluidLite_DYNAMIC_LIBRARY NAMES "fluidlite" PATH_SUFFIXES ".dylib")
elseif(WIN32)
find_library(FluidLite_DYNAMIC_LIBRARY NAMES "fluidlite" PATH_SUFFIXES ".dll")
else()
find_library(FluidLite_DYNAMIC_LIBRARY NAMES "fluidlite" PATH_SUFFIXES ".so")
endif()
endif()

include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set FluidLite_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(FluidLite DEFAULT_MSG
FluidLite_LIBRARY FluidLite_INCLUDE_DIR)

mark_as_advanced(FluidLite_INCLUDE_DIR FluidLite_LIBRARY)

set(FluidLite_LIBRARIES ${FluidLite_LIBRARY})
set(FluidLite_INCLUDE_DIRS ${FluidLite_INCLUDE_DIR})

@@ -169,7 +169,12 @@ double midi_seq_tick(void *seq, double s, double granularity)
{
MixerSeqInternal *seqi = reinterpret_cast<MixerSeqInternal*>(seq);
double ret = seqi->seq.Tick(s, granularity);

s *= seqi->seq.getTempoMultiplier();
return ret;
}

int midi_seq_play_buffer(void *seq, uint8_t *stream, int len)
{
MixerSeqInternal *seqi = reinterpret_cast<MixerSeqInternal*>(seq);
return seqi->seq.playStream(stream, len);
}
@@ -54,6 +54,7 @@ extern void midi_seq_set_tempo_multiplier(void *seq, double tempo);
extern void midi_seq_set_loop_enabled(void *seq, int loopEn);

extern double midi_seq_tick(void *seq, double s, double granularity);
extern int midi_seq_play_buffer(void *seq, uint8_t *stream, int len);

#ifdef __cplusplus
}

0 comments on commit 05ae373

Please sign in to comment.