summaryrefslogtreecommitdiff
path: root/libs/evoral
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-12-16 10:43:41 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2016-12-16 10:43:41 +0000
commit2378e7b60ce9d2923e9c631299732cb5ef3a6b3c (patch)
tree4eab102b8ef85d0c0572843774a8a293d26772ad /libs/evoral
parentfe0761d404f9d036acb5a825561c733e2e14d8b4 (diff)
add function to get number of tempos found in SMF tempo map
Diffstat (limited to 'libs/evoral')
-rw-r--r--libs/evoral/src/libsmf/smf.h1
-rw-r--r--libs/evoral/src/libsmf/smf_tempo.c10
2 files changed, 11 insertions, 0 deletions
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)
{