mirror of
https://github.com/ZDoom/fluidsynth.git
synced 2024-11-27 22:43:36 +00:00
make fluid_midi_parser_parse() public
to enable realtime byte to fluid_midi_event_t parsing fixes #108 addresses #150
This commit is contained in:
parent
07a167c737
commit
4568e551b9
5 changed files with 32 additions and 14 deletions
|
@ -121,6 +121,7 @@ Changes in FluidSynth 2.0.0 concerning developers:
|
|||
Changes in FluidSynth 1.1.9 concerning developers:
|
||||
|
||||
- add a function for registering audio drivers based on acutal needs: fluid_audio_driver_register()
|
||||
- make fluid_midi_parser_parse() public to enable realtime byte to #fluid_midi_event_t parsing
|
||||
- implement handling of #FLUID_SEQ_ALLSOUNDSOFF events in fluid_seq_fluidsynth_callback()
|
||||
- fix return value of fluid_file_set_encoding_quality()
|
||||
|
||||
|
|
|
@ -146,7 +146,11 @@ FLUIDSYNTH_API int fluid_player_get_bpm(fluid_player_t * player);
|
|||
FLUIDSYNTH_API int fluid_player_get_midi_tempo(fluid_player_t * player);
|
||||
FLUIDSYNTH_API int fluid_player_seek(fluid_player_t *player, int ticks);
|
||||
|
||||
///
|
||||
|
||||
|
||||
FLUIDSYNTH_API fluid_midi_parser_t* new_fluid_midi_parser(void);
|
||||
FLUIDSYNTH_API void delete_fluid_midi_parser(fluid_midi_parser_t* parser);
|
||||
FLUIDSYNTH_API fluid_midi_event_t* fluid_midi_parser_parse(fluid_midi_parser_t* parser, unsigned char c);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -58,6 +58,7 @@ typedef struct _fluid_rampreset_t fluid_rampreset_t; /**< RAM SoundFo
|
|||
typedef struct _fluid_cmd_handler_t fluid_cmd_handler_t; /**< Shell Command Handler */
|
||||
typedef struct _fluid_ladspa_fx_t fluid_ladspa_fx_t; /**< LADSPA effects instance */
|
||||
typedef struct _fluid_file_callbacks_t fluid_file_callbacks_t; /**< Callback struct to perform custom file loading of soundfonts */
|
||||
typedef struct _fluid_midi_parser_t fluid_midi_parser_t;
|
||||
|
||||
typedef int fluid_istream_t; /**< Input stream descriptor */
|
||||
typedef int fluid_ostream_t; /**< Output stream descriptor */
|
||||
|
|
|
@ -1891,8 +1891,10 @@ int fluid_player_get_midi_tempo(fluid_player_t * player)
|
|||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* new_fluid_midi_parser
|
||||
/**
|
||||
* Create a MIDI parser.
|
||||
* @return New MIDI parser or NULL when out of memory.
|
||||
* @since 1.1.9
|
||||
*/
|
||||
fluid_midi_parser_t *
|
||||
new_fluid_midi_parser ()
|
||||
|
@ -1907,8 +1909,10 @@ new_fluid_midi_parser ()
|
|||
return parser;
|
||||
}
|
||||
|
||||
/*
|
||||
* delete_fluid_midi_parser
|
||||
/**
|
||||
* Delete a MIDI parser.
|
||||
* @param parser The MIDI parser to delete
|
||||
* @since 1.1.9
|
||||
*/
|
||||
void
|
||||
delete_fluid_midi_parser(fluid_midi_parser_t *parser)
|
||||
|
@ -1919,11 +1923,25 @@ delete_fluid_midi_parser(fluid_midi_parser_t *parser)
|
|||
}
|
||||
|
||||
/**
|
||||
* Parse a MIDI stream one character at a time.
|
||||
* Parse one character of a MIDI byte stream at a time.
|
||||
* @param parser Parser instance
|
||||
* @param c Next character in MIDI stream
|
||||
* @return A parsed MIDI event or NULL if none. Event is internal and should
|
||||
* @return A parsed MIDI event or NULL if more data required. Event is owned internally, should
|
||||
* not be modified or freed and is only valid until next call to this function.
|
||||
* @since 1.1.9
|
||||
*
|
||||
* Usage example:
|
||||
* @code
|
||||
* int ret=FLUID_OK;
|
||||
* for (i = 0; i < length_of_byte_stream && ret == FLUID_OK; i++)
|
||||
* {
|
||||
* fluid_midi_event_t* event = fluid_midi_parser_parse(parser, my_byte_stream[i]);
|
||||
* if (event != NULL)
|
||||
* {
|
||||
* ret = fluid_sequencer_add_midi_event_to_buffer(seq, event);
|
||||
* }
|
||||
* }
|
||||
* @endcode
|
||||
*/
|
||||
fluid_midi_event_t *
|
||||
fluid_midi_parser_parse(fluid_midi_parser_t *parser, unsigned char c)
|
||||
|
|
|
@ -25,12 +25,6 @@
|
|||
#include "fluid_sys.h"
|
||||
#include "fluid_list.h"
|
||||
|
||||
typedef struct _fluid_midi_parser_t fluid_midi_parser_t;
|
||||
|
||||
fluid_midi_parser_t* new_fluid_midi_parser(void);
|
||||
void delete_fluid_midi_parser(fluid_midi_parser_t* parser);
|
||||
fluid_midi_event_t* fluid_midi_parser_parse(fluid_midi_parser_t* parser, unsigned char c);
|
||||
|
||||
|
||||
/***************************************************************
|
||||
*
|
||||
|
|
Loading…
Reference in a new issue