36#define SMF_VERSION PACKAGE_VERSION
46#define ATTRIBUTE_PACKED __attribute__((__packed__))
48#define ATTRIBUTE_PACKED
66#if (!defined __GNUC__)
struct smf_event_struct smf_event_t
struct smf_track_struct smf_track_t
int smf_event_is_tempo_change_or_time_signature(const smf_event_t *event) WARN_UNUSED_RESULT
void maybe_add_to_tempo_map(smf_event_t *event)
void smf_init_tempo(smf_t *smf)
int is_status_byte(const unsigned char status) WARN_UNUSED_RESULT
Returns 1 if the given byte is a valid status byte, 0 otherwise.
void smf_track_add_event(smf_track_t *track, smf_event_t *event)
Adds the event to the track and computes ->delta_pulses.
void smf_create_tempo_map_and_compute_seconds(smf_t *smf)
struct chunk_header_struct ATTRIBUTE_PACKED
void remove_last_tempo_with_pulses(smf_t *smf, int pulses)
int smf_event_length_is_valid(const smf_event_t *event) WARN_UNUSED_RESULT
void smf_fini_tempo(smf_t *smf)
SMF chunk, used only by smf_load.c and smf_save.c.
uint16_t number_of_tracks
struct chunk_header_struct mthd_header