While we're on the topic, here's a reminder that USB Isochronous
reads/writes work in the Classic Environment as well (10.2.6 or later).
USB 1.1 and os9 API rules apply; IOUSBFamily/IOKit errors are
translated to their os9 equivalents; the frame numbering is
self-consistent within the os9 world but does not necessarily bear a
direct correlation to the IOUSBFamily's.
Ben Koning
Classic Environment / Dashboard Widgets
Apple Computer
On Feb 23, 2005, at 12:12 PM, email@hidden wrote:
From: Mark Cookson
To: Nakkala Sivaram Prasad ; usb
Sent: Tuesday, February 22, 2005 11:02 PM
Subject: Re: How to handle USB Isochronous data Transfer?
For isoc reads, you specify the maximum amount of data you want per
frame, and how many frames you want to read. You give a buffer, and a
memory descriptor for that buffer, along with the list of frames and
bytes per frame to read, and IOUSBFamily does the rest.
If you don't know how many bytes will come each frame (which it
sounds like you don't), then you have to pick some upper maximum
(preferably other than 1023, but that is the maximum isoc frame size
in USB 1.1). Remember that IOUSBFamily puts the data where it would
have gone if the full amount had been transferred in the frame before.
So, if you ask for 1023 bytes, but only get 100, the next block of
data will be put at offset 1024 in your buffer, not 101, so you'll
have to coalesce the data together, if that's important, because there
will be lots of gaps with garbage in your buffer.
--
Mark Cookson
M-Audio, a division of Avid
225 Locust St.
Hudson, WI 54016
On 2/22/05 10:56 AM, "Nakkala Sivaram Prasad"
<email@hidden> wrote:
Dear all,
Could anybody suggest how to handle the USB isochronous data
transfers.
In case of USB bulk data transfers (USB Bulk Read) we specify the
amount of
data to read and the buffer pointer to hold the data. I would like
to know how
to read in case of Isochronous data transfer.
In case of USB DDK 1.5.5f (Mac OS 9) we have an API USBIsocRead
to read
data from an isochronous pipe. Here I want to read data for
certain number of
frames. I am able to supply the starting frame number where actual
read should
start and the number of frames the call must be active. How to
handle the situation
if i don't want to specify the amount data required? Here
intension is to read the
data for certain number of frames without specifying the amount of
data required.
Thanks and Regards,
Sivaram Prasad
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Usb mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/usb/email@hidden