diff --git a/libs/evoral/src/libsmf/smf.h b/libs/evoral/src/libsmf/smf.h index 2be80a571c..82647779e8 100644 --- a/libs/evoral/src/libsmf/smf.h +++ b/libs/evoral/src/libsmf/smf.h @@ -404,6 +404,7 @@ int smf_save(smf_t *smf, FILE *file) WARN_UNUSED_RESULT; /* Routines for manipulating smf_tempo_t. */ smf_tempo_t *smf_get_tempo_by_pulses(const smf_t *smf, size_t pulses) WARN_UNUSED_RESULT; smf_tempo_t *smf_get_tempo_by_seconds(const smf_t *smf, double seconds) WARN_UNUSED_RESULT; +int smf_get_tempo_count (const smf_t *smf) WARN_UNUSED_RESULT; smf_tempo_t *smf_get_tempo_by_number(const smf_t *smf, size_t number) WARN_UNUSED_RESULT; smf_tempo_t *smf_get_last_tempo(const smf_t *smf) WARN_UNUSED_RESULT; diff --git a/libs/evoral/src/libsmf/smf_tempo.c b/libs/evoral/src/libsmf/smf_tempo.c index c172314815..b2549d5511 100644 --- a/libs/evoral/src/libsmf/smf_tempo.c +++ b/libs/evoral/src/libsmf/smf_tempo.c @@ -253,6 +253,16 @@ smf_create_tempo_map_and_compute_seconds(smf_t *smf) /* Not reached. */ } +int +smf_get_tempo_count (const smf_t *smf) +{ + if (!smf->tempo_array) { + return 0; + } + + return smf->tempo_array->len; +} + smf_tempo_t * smf_get_tempo_by_number(const smf_t *smf, size_t number) {