diff options
author | Takashi Iwai <tiwai@suse.de> | 2001-12-10 16:45:05 +0000 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2001-12-10 16:45:05 +0000 |
commit | bcf50519e4a248c5361541f7c56890bcd5392fe5 (patch) | |
tree | 2438a25aa66425bf4f40609ccc34373cb80a5b67 /include | |
parent | e457d1f0c0557c592ff08acfaa9b763d56a2fdff (diff) |
Added time skew on queue.
The timer speed can be controlled via skew value, smaller = slower
centered on the skew-base value.
Diffstat (limited to 'include')
-rw-r--r-- | include/seq.h | 4 | ||||
-rw-r--r-- | include/seq_event.h | 10 |
2 files changed, 12 insertions, 2 deletions
diff --git a/include/seq.h b/include/seq.h index c0980c5a..02f9a55e 100644 --- a/include/seq.h +++ b/include/seq.h @@ -438,8 +438,12 @@ void snd_seq_queue_tempo_copy(snd_seq_queue_tempo_t *dst, const snd_seq_queue_te int snd_seq_queue_tempo_get_queue(const snd_seq_queue_tempo_t *info); unsigned int snd_seq_queue_tempo_get_tempo(const snd_seq_queue_tempo_t *info); int snd_seq_queue_tempo_get_ppq(const snd_seq_queue_tempo_t *info); +unsigned int snd_seq_queue_tempo_get_skew(const snd_seq_queue_tempo_t *info); +unsigned int snd_seq_queue_tempo_get_skew_base(const snd_seq_queue_tempo_t *info); void snd_seq_queue_tempo_set_tempo(snd_seq_queue_tempo_t *info, unsigned int tempo); void snd_seq_queue_tempo_set_ppq(snd_seq_queue_tempo_t *info, int ppq); +void snd_seq_queue_tempo_set_skew(snd_seq_queue_tempo_t *info, unsigned int skew); +void snd_seq_queue_tempo_set_skew_base(snd_seq_queue_tempo_t *info, unsigned int base); int snd_seq_get_queue_tempo(snd_seq_t *handle, int q, snd_seq_queue_tempo_t *tempo); int snd_seq_set_queue_tempo(snd_seq_t *handle, int q, snd_seq_queue_tempo_t *tempo); diff --git a/include/seq_event.h b/include/seq_event.h index abb21263..9c774a81 100644 --- a/include/seq_event.h +++ b/include/seq_event.h @@ -98,8 +98,8 @@ enum snd_seq_event_type { SND_SEQ_EVENT_CLOCK, /** MIDI Real Time Tick message; event data type = #snd_seq_ev_queue_control_t */ SND_SEQ_EVENT_TICK, - /** Sync signal; event data type = #snd_seq_ev_queue_control_t */ - SND_SEQ_EVENT_SYNC, + /** Queue timer skew; event data type = #snd_seq_ev_queue_control_t */ + SND_SEQ_EVENT_QUEUE_SKEW, /** Sync position changed; event data type = #snd_seq_ev_queue_control_t */ SND_SEQ_EVENT_SYNC_POS, @@ -403,6 +403,11 @@ typedef struct snd_seq_result { int result; /**< status */ } snd_seq_result_t; +/** Queue skew values */ +typedef struct snd_seq_queue_skew { + unsigned int value; + unsigned int base; +} snd_seq_queue_skew_t; /** queue timer control */ typedef struct snd_seq_ev_queue_control { @@ -412,6 +417,7 @@ typedef struct snd_seq_ev_queue_control { signed int value; /**< affected value (e.g. tempo) */ snd_seq_timestamp_t time; /**< time */ unsigned int position; /**< sync position */ + snd_seq_queue_skew_t skew; /**< queue skew */ unsigned int d32[2]; /**< any data */ unsigned char d8[8]; /**< any data */ } param; /**< data value union */ |