Fix types to be warning clean on 64 bit.
[ardour.git] / libs / evoral / src / libsmf / smf.h
index e2a0c3b8a4cf9cb632ea8fc5d97e952c029f960a..8bd0722766d4e565989bb3e1b6d3652c0fa14848 100644 (file)
@@ -218,6 +218,7 @@ extern "C" {
 #endif
 
 #include <stdio.h>
+#include <stdint.h>
 #include <glib.h>
 
 #if defined(__GNUC__) && __GNUC__ >= 4
@@ -231,7 +232,7 @@ struct smf_struct {
        int             format;
 
        /** These fields are extracted from "division" field of MThd header.  Valid is _either_ ppqn or frames_per_second/resolution. */
-       int             ppqn;
+       uint16_t                ppqn;
        int             frames_per_second;
        int             resolution;
        int             number_of_tracks;
@@ -239,8 +240,8 @@ struct smf_struct {
        /** These are private fields using only by loading and saving routines. */
        FILE            *stream;
        void            *file_buffer;
-       int             file_buffer_length;
-       int             next_chunk_offset;
+       size_t          file_buffer_length;
+       size_t          next_chunk_offset;
        int             expected_number_of_tracks;
 
        /** Private, used by smf.c. */
@@ -256,7 +257,7 @@ typedef struct smf_struct smf_t;
 
 /** Describes a single tempo or time signature change. */
 struct smf_tempo_struct {
-       int time_pulses;
+       size_t time_pulses;
        double time_seconds;
        int microseconds_per_quarter_note;
        int numerator;
@@ -272,20 +273,20 @@ struct smf_track_struct {
        smf_t           *smf;
 
        int             track_number;
-       int             number_of_events;
+       size_t          number_of_events;
 
        /** These are private fields using only by loading and saving routines. */
        void            *file_buffer;
-       int             file_buffer_length;
+       size_t          file_buffer_length;
        int             last_status; /* Used for "running status". */
 
        /** Private, used by smf.c. */
        /** Offset into buffer, used in parse_next_event(). */
-       int             next_event_offset;
-       int             next_event_number;
+       size_t          next_event_offset;
+       size_t          next_event_number;
 
        /** Absolute time of next event on events_queue. */
-       int             time_of_next_event;
+       size_t          time_of_next_event;
        GPtrArray       *events_array;
 };
 
@@ -297,14 +298,14 @@ struct smf_event_struct {
        smf_track_t     *track;
 
        /** Number of this event in the track.  Events are numbered consecutively, starting from one. */
-       int             event_number;
+       size_t          event_number;
 
        /** Note that the time fields are invalid, if event is not attached to a track. */
        /** Time, in pulses, since the previous event on this track. */
-       int             delta_time_pulses;
+       int32_t         delta_time_pulses;
 
        /** Time, in pulses, since the start of the song. */
-       int             time_pulses;
+       size_t          time_pulses;
 
        /** Time, in seconds, since the start of the song. */
        double          time_seconds;
@@ -313,10 +314,10 @@ struct smf_event_struct {
        int             track_number;
 
        /** Pointer to the buffer containing MIDI message.  This is freed by smf_event_delete. */
-       unsigned char   *midi_buffer;
+       uint8_t *midi_buffer;
 
        /** Length of the MIDI message in the buffer, in bytes. */
-       int             midi_buffer_length; 
+       size_t          midi_buffer_length; 
 };
 
 typedef struct smf_event_struct smf_event_t;
@@ -326,7 +327,7 @@ smf_t *smf_new(void) WARN_UNUSED_RESULT;
 void smf_delete(smf_t *smf);
 
 int smf_set_format(smf_t *smf, int format) WARN_UNUSED_RESULT;
-int smf_set_ppqn(smf_t *smf, int format) WARN_UNUSED_RESULT;
+int smf_set_ppqn(smf_t *smf, uint16_t ppqn) WARN_UNUSED_RESULT;
 
 char *smf_decode(const smf_t *smf) WARN_UNUSED_RESULT;
 
@@ -338,10 +339,10 @@ void smf_skip_next_event(smf_t *smf);
 
 void smf_rewind(smf_t *smf);
 int smf_seek_to_seconds(smf_t *smf, double seconds) WARN_UNUSED_RESULT;
-int smf_seek_to_pulses(smf_t *smf, int pulses) WARN_UNUSED_RESULT;
+int smf_seek_to_pulses(smf_t *smf, size_t pulses) WARN_UNUSED_RESULT;
 int smf_seek_to_event(smf_t *smf, const smf_event_t *event) WARN_UNUSED_RESULT;
 
-int smf_get_length_pulses(const smf_t *smf) WARN_UNUSED_RESULT;
+size_t smf_get_length_pulses(const smf_t *smf) WARN_UNUSED_RESULT;
 double smf_get_length_seconds(const smf_t *smf) WARN_UNUSED_RESULT;
 int smf_event_is_last(const smf_event_t *event) WARN_UNUSED_RESULT;
 
@@ -353,20 +354,20 @@ smf_track_t *smf_track_new(void) WARN_UNUSED_RESULT;
 void smf_track_delete(smf_track_t *track);
 
 smf_event_t *smf_track_get_next_event(smf_track_t *track) WARN_UNUSED_RESULT;
-smf_event_t *smf_track_get_event_by_number(const smf_track_t *track, int event_number) WARN_UNUSED_RESULT;
+smf_event_t *smf_track_get_event_by_number(const smf_track_t *track, size_t event_number) WARN_UNUSED_RESULT;
 smf_event_t *smf_track_get_last_event(const smf_track_t *track) WARN_UNUSED_RESULT;
 
-void smf_track_add_event_delta_pulses(smf_track_t *track, smf_event_t *event, int pulses);
-void smf_track_add_event_pulses(smf_track_t *track, smf_event_t *event, int pulses);
+void smf_track_add_event_delta_pulses(smf_track_t *track, smf_event_t *event, uint32_t delta);
+void smf_track_add_event_pulses(smf_track_t *track, smf_event_t *event, size_t pulses);
 void smf_track_add_event_seconds(smf_track_t *track, smf_event_t *event, double seconds);
-int smf_track_add_eot_delta_pulses(smf_track_t *track, int delta) WARN_UNUSED_RESULT;
-int smf_track_add_eot_pulses(smf_track_t *track, int pulses) WARN_UNUSED_RESULT;
+int smf_track_add_eot_delta_pulses(smf_track_t *track, uint32_t delta) WARN_UNUSED_RESULT;
+int smf_track_add_eot_pulses(smf_track_t *track, size_t pulses) WARN_UNUSED_RESULT;
 int smf_track_add_eot_seconds(smf_track_t *track, double seconds) WARN_UNUSED_RESULT;
 void smf_event_remove_from_track(smf_event_t *event);
 
 /* Routines for manipulating smf_event_t. */
 smf_event_t *smf_event_new(void) WARN_UNUSED_RESULT;
-smf_event_t *smf_event_new_from_pointer(void *midi_data, int len) WARN_UNUSED_RESULT;
+smf_event_t *smf_event_new_from_pointer(void *midi_data, size_t len) WARN_UNUSED_RESULT;
 smf_event_t *smf_event_new_from_bytes(int first_byte, int second_byte, int third_byte) WARN_UNUSED_RESULT;
 smf_event_t *smf_event_new_textual(int type, const char *text);
 void smf_event_delete(smf_event_t *event);
@@ -383,15 +384,15 @@ char *smf_event_extract_text(const smf_event_t *event) WARN_UNUSED_RESULT;
 
 /* Routines for loading SMF files. */
 smf_t *smf_load(const char *file_name) WARN_UNUSED_RESULT;
-smf_t *smf_load_from_memory(const void *buffer, const int buffer_length) WARN_UNUSED_RESULT;
+smf_t *smf_load_from_memory(const void *buffer, const size_t buffer_length) WARN_UNUSED_RESULT;
 
 /* Routine for writing SMF files. */
 int smf_save(smf_t *smf, const char *file_name) WARN_UNUSED_RESULT;
 
 /* Routines for manipulating smf_tempo_t. */
-smf_tempo_t *smf_get_tempo_by_pulses(const smf_t *smf, int pulses) WARN_UNUSED_RESULT;
+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;
-smf_tempo_t *smf_get_tempo_by_number(const smf_t *smf, int number) 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;
 
 const char *smf_get_version(void) WARN_UNUSED_RESULT;