/* 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;
/* 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)
{