aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2001-12-10 16:45:05 +0000
committerTakashi Iwai <tiwai@suse.de>2001-12-10 16:45:05 +0000
commitbcf50519e4a248c5361541f7c56890bcd5392fe5 (patch)
tree2438a25aa66425bf4f40609ccc34373cb80a5b67 /include
parente457d1f0c0557c592ff08acfaa9b763d56a2fdff (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.h4
-rw-r--r--include/seq_event.h10
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 */