Class: LIBUSB::IsochronousTransfer
- Defined in:
- lib/libusb/transfer.rb
Constant Summary
Constants inherited from Transfer
Transfer::TransferStatusToError
Instance Attribute Summary
Attributes inherited from Transfer
#allow_device_memory, #dev_handle
Class Method Summary collapse
Instance Method Summary collapse
- #[](nr) ⇒ Object
-
#initialize(num_packets, args = {}) ⇒ IsochronousTransfer
constructor
A new instance of IsochronousTransfer.
- #num_packets ⇒ Object
- #num_packets=(number) ⇒ Object
-
#packet_lengths=(len) ⇒ Object
Convenience function to set the length of all packets in an isochronous transfer, based on #num_packets.
Methods inherited from Transfer
#actual_buffer, #actual_length, #alloc_buffer, #buffer, #buffer=, #callback=, #cancel!, #endpoint=, #free_buffer, #memory_type, #status, #submit!, #submit_and_wait, #submit_and_wait!, #timeout, #timeout=
Constructor Details
#initialize(num_packets, args = {}) ⇒ IsochronousTransfer
Returns a new instance of IsochronousTransfer.
379 380 381 382 383 384 385 386 |
# File 'lib/libusb/transfer.rb', line 379 def initialize(num_packets, args={}) @ptr = Call.libusb_alloc_transfer(num_packets) @transfer = Call::Transfer.new @ptr @transfer[:type] = TRANSFER_TYPE_ISOCHRONOUS @transfer[:timeout] = 1000 @transfer[:num_iso_packets] = num_packets super(args) end |
Class Method Details
.new ⇒ Object
375 376 377 |
# File 'lib/libusb/transfer.rb', line 375 def self.new(*) super end |
Instance Method Details
#[](nr) ⇒ Object
395 396 397 |
# File 'lib/libusb/transfer.rb', line 395 def [](nr) IsoPacket.new( @ptr + Call::Transfer.size + nr*Call::IsoPacketDescriptor.size, nr) end |
#num_packets ⇒ Object
388 389 390 |
# File 'lib/libusb/transfer.rb', line 388 def num_packets @transfer[:num_iso_packets] end |
#num_packets=(number) ⇒ Object
391 392 393 |
# File 'lib/libusb/transfer.rb', line 391 def num_packets=(number) @transfer[:num_iso_packets] = number end |
#packet_lengths=(len) ⇒ Object
Convenience function to set the length of all packets in an isochronous transfer, based on #num_packets.
401 402 403 404 405 406 407 |
# File 'lib/libusb/transfer.rb', line 401 def packet_lengths=(len) ptr = @ptr + Call::Transfer.size num_packets.times do ptr.write_uint(len) ptr += Call::IsoPacketDescriptor.size end end |