From: Clemens Ladisch <clemens@ladisch.de>
To: Krzysztof Foltman <wdev@foltman.com>
Cc: alsa-devel@alsa-project.org
Subject: Re: [PATCH 1/1] ALSA: usb-audio: add support for Akai MPD16
Date: Thu, 20 May 2010 09:26:56 +0200 [thread overview]
Message-ID: <4BF4E440.9030105@ladisch.de> (raw)
In-Reply-To: <1274299579-12990-1-git-send-email-wdev@foltman.com>
Krzysztof Foltman wrote:
> + int port = (buffer[pos] >> 4) - 1;
> + if (... && (port == 0 || port == 1))
Not that it really matters, but if the port variable were unsigned, you
could just check for "port <= 1".
> +static void snd_usbmidi_akai_output(struct snd_usb_midi_out_endpoint *ep,
> + struct urb *urb)
> ...
> + /* only try adding more data when there's space for at least 1 SysEx */
> + while (urb->transfer_buffer_length + 16 < ep->max_transfer) {
> + count = snd_rawmidi_transmit(ep->ports[0].substream, &tmp, 1);
> + if (count < 1) {
> + ep->ports[0].active = 0;
> + return;
> + }
It is possible that ALSA's buffer does not yet contain the entire SysEx
message; in this case, the driver would send off the partial message
without the 0x10 in the first byte.
I think the only solution for that is to use snd_rawmidi_transmit_peek,
and for a SysEx, waiting until the entire message is available before
copying it to the transfer_buffer and calling transmit_ack.
> + /* Akai MPD16 */
> + CONTROL_PORT(0x09e8, 0x0062, 0, "%s Control"),
> + EXTERNAL_PORT(0x09e8, 0x0062, 1, "%s MIDI"),
This MIDI port isn't an external port (which would imply that any random
device could be connected to it). There is no macro for internal ports;
just use PORT_INFO(... _MIDI_GENERIC | _HARDWARE).
Regards,
Clemens
next prev parent reply other threads:[~2010-05-20 7:26 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-19 20:06 [PATCH 1/1] ALSA: usb-audio: add support for Akai MPD16 Krzysztof Foltman
2010-05-20 7:26 ` Clemens Ladisch [this message]
2010-05-20 7:49 ` Krzysztof Foltman
2010-05-20 9:21 ` Clemens Ladisch
2010-05-25 9:07 ` Krzysztof Foltman
2010-05-25 9:39 ` Daniel Mack
-- strict thread matches above, loose matches on Subject: below --
2010-05-20 19:31 Krzysztof Foltman
2010-05-18 18:37 Krzysztof Foltman
2010-05-19 6:59 ` Clemens Ladisch
2010-05-19 20:31 ` Krzysztof Foltman
2010-05-17 22:48 wdev
2010-05-18 0:38 ` Daniel Mack
2010-05-18 18:36 ` Krzysztof Foltman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4BF4E440.9030105@ladisch.de \
--to=clemens@ladisch.de \
--cc=alsa-devel@alsa-project.org \
--cc=wdev@foltman.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.