3 #include <alsa/asoundlib.h>
11 static snd_rawmidi_t
*midi_in
, *midi_out
;
12 struct ftdi_context ftdi
;
17 snd_rawmidi_open(&midi_in
, &midi_out
, "virtual", SND_RAWMIDI_NONBLOCK
);
18 //snd_rawmidi_open(&midi_in, &midi_out, "virtual", 0);
21 if (ftdi_init( &ftdi
)) {
22 fprintf(stderr
, "usb - init error !\n");
26 if (ftdi_usb_open(&ftdi
, 0x0403, 0x6001)) {
27 fprintf(stderr
, "usb - open error (cannot find?) !\n");
28 fprintf(stderr
, "ftdi_usb_open failed, error (%s)\n", ftdi_get_error_string(&ftdi
));
33 if (ftdi_usb_reset( &ftdi
)) {
34 fprintf(stderr
, "usb - reset error !\n");
35 ftdi_usb_close( &ftdi
);
40 ftdi_disable_bitbang( &ftdi
);
41 ftdi_set_baudrate(&ftdi
, BAUD
);
43 unsigned char buf
[BUFFER_SIZE
];
47 ret
= ftdi_read_data(&ftdi
, buf
, BUFFER_SIZE
);
49 if(ret
> 0) snd_rawmidi_write(midi_out
, buf
, BUFFER_SIZE
);
53 ret = snd_rawmidi_read(midi_in, buf,BUFFER_SIZE);
54 if(ret < 0 && ret != -EAGAIN) break;
55 if(ret > 0) ftdi_write_data(&ftdi, buf,BUFFER_SIZE);
This page took 0.290539 seconds and 4 git commands to generate.