Ejemplo n.º 1
0
        /// <summary>
        /// Creates a new transfer queue instance.
        /// </summary>
        /// <param name="endpointBase">The endpoint to transfer data to/from.</param>
        /// <param name="maxOutstandingIO">The number of transfers to <see cref="UsbTransfer.Submit"/> before waiting for a completion.</param>
        /// <param name="bufferSize">The size of each data buffer.</param>
        /// <param name="timeout">The maximum time to wait for each transfer.</param>
        /// <param name="isoPacketSize">For isochronous use only.  The iso packet size.  If 0, the endpoints max packet size is used.</param>
        public UsbTransferQueue(UsbEndpointBase endpointBase, int maxOutstandingIO, int bufferSize, int timeout, int isoPacketSize)
        {
            EndpointBase     = endpointBase;
            IsoPacketSize    = isoPacketSize;
            Timeout          = timeout;
            BufferSize       = bufferSize;
            MaxOutstandingIO = maxOutstandingIO;

            mTransferHandles = new Handle[maxOutstandingIO];

            mBuffer = new byte[maxOutstandingIO][];
            for (int i = 0; i < maxOutstandingIO; i++)
            {
                mBuffer[i] = new byte[bufferSize];
            }

            IsoPacketSize = isoPacketSize > 0 ? isoPacketSize : endpointBase.EndpointInfo.Descriptor.MaxPacketSize;
        }
Ejemplo n.º 2
0
 /// <summary></summary>
 protected UsbTransfer(UsbEndpointBase endpointBase)
 {
     mEndpointBase = endpointBase;
 }