|
|
/* * File: seqlib.h * * Copyright (C) 1999 Steve Ratcliffe * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * * --------- * This file is a set of interfaces to provide a little * higher level view of the sequencer. It is mainly experimental * to investigate new approaches. If successful they will be proposed * as additions/replacements to the existing seq lib. * * * */ #ifdef HAVE_ALSA #include <sys/asoundlib.h> #ifndef SND_SEQ_PORT_CAP_OUT /* Forward compatibility defines */ #define SND_SEQ_PORT_CAP_OUT SND_SEQ_PORT_CAP_WRITE #define SND_SEQ_PORT_CAP_IN SND_SEQ_PORT_CAP_READ #define SND_SEQ_PORT_CAP_SUBSCRIPTION SND_SEQ_PORT_CAP_SUBS_WRITE #define in_use read_use #define out_use write_use #endif typedef struct seq_context seq_context_t; seq_context_t *seq_create_context(); seq_context_t *seq_new_client(seq_context_t *ctxp); void seq_free_context(seq_context_t *cxtp); int seq_new_port(seq_context_t *ctxp); void seq_destroy_port(seq_context_t *cxtp, int port); int seq_connect_add(seq_context_t *ctxp, int client, int port); int seq_init_tempo(seq_context_t *ctxp, int resolution, int tempo, int realtime); void seq_set_queue(seq_context_t *ctxp, int q); int seq_sendto(seq_context_t *ctxp, snd_seq_event_t *ev, int client, int port); void seq_start_timer(seq_context_t *ctxp); void seq_stop_timer(seq_context_t *ctxp); void seq_control_timer(seq_context_t *ctxp, int onoff); int seq_write(seq_context_t *ctxp, snd_seq_event_t *ep); void *seq_handle(seq_context_t *ctxp); void seq_midi_event_init(seq_context_t *ctxp, snd_seq_event_t *ep, unsigned long time, int devchan); void seq_midi_note(seq_context_t *ctxp, snd_seq_event_t *ep, int devchan, int note, int vel, int length); void seq_midi_note_on(seq_context_t *ctxp, snd_seq_event_t *ep, int devchan, int note, int vel, int length); void seq_midi_note_off(seq_context_t *ctxp, snd_seq_event_t *ep, int devchan, int note, int vel, int length); void seq_midi_keypress(seq_context_t *ctxp, snd_seq_event_t *ep, int devchan, int note, int value); void seq_midi_control(seq_context_t *ctxp, snd_seq_event_t *ep, int devchan, int control, int value); void seq_midi_program(seq_context_t *ctxp, snd_seq_event_t *ep, int devchan, int program); void seq_midi_chanpress(seq_context_t *ctxp, snd_seq_event_t *ep, int devchan, int pressure); void seq_midi_pitchbend(seq_context_t *ctxp, snd_seq_event_t *ep, int devchan, int bend); void seq_midi_tempo(seq_context_t *ctxp, snd_seq_event_t *ep, int tempo); void seq_midi_sysex(seq_context_t *ctxp, snd_seq_event_t *ep, int status, unsigned char *data, int length); void seq_midi_echo(seq_context_t *ctxp, unsigned long time); #endif
Generated by: wuerthne on clouseau on Fri Sep 21 19:20:46 2001, using kdoc 2.0a53. |