[linux-audio-dev] alsa sequencer filter client

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: [linux-audio-dev] alsa sequencer filter client
From: Garett Shulman (shulmang_AT_colorado.edu)
Date: Sun Jan 25 2004 - 19:31:56 EET


Hello, I am trying to create a very simple midi filter client for the
alsa sequencer based on aseqview-0.1.4. I have alsa 0.9.8. This code
shows the input and the output port in aconnect when executed. And, when
the raw_midi client is connected The callback does get called when I
play keys on my piano. However, Its as though the message is getting
sent back to this client and not on to the next client. The
process_event function keeps getting called over and over again with the
same message when I hit one piano key. It's as though it is sending
itself the message. Any Ideas are greatly appreciated. -Garett

#include "portlib.h"

int process_event(port_t *p, int type, snd_seq_event_t *ev, int
*priate_data)
{
  port_write_event(p, ev, 0);
}

int main()
{
      unsigned int caps = SND_SEQ_PORT_CAP_WRITE |
SND_SEQ_PORT_CAP_SUBS_WRITE | SND_SEQ_PORT_CAP_READ |
SND_SEQ_PORT_CAP_SUBS_READ;

      port_client_t *client = port_client_new("MIDI filter",
SND_SEQ_OPEN_DUPLEX);
      port_t *port = port_attach(client, "FILTER port", caps,
SND_SEQ_PORT_TYPE_MIDI_GENERIC);
      int *priv_data;

      /* add callback */
      port_add_callback(port, PORT_MIDI_EVENT_CB,
(port_callback_t)process_event, priv_data);

      port_client_do_loop(client);

      return port_detach(port);
}


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Sun Jan 25 2004 - 19:40:00 EET