Sha256: bf2ce80d893f073722a48dcd840418b0bede618bc1faadd75f37db389c2d3f44
Contents?: true
Size: 1.84 KB
Versions: 3
Compression:
Stored size: 1.84 KB
Contents
# -*- coding: utf-8; fill-column: 80 -*- # # Copyright (c) 2012, 2013 Renaud AUBIN # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # module Ligo # This class is a derivative work of `LIBUSB::Context` as included in # [LIBUSB](https://github.com/larskanis/libusb), written by Lars Kanis and # released under the LGPLv3. # @author Renaud AUBIN # @api public class Context < LIBUSB::Context include LIBUSB # @api private # Returns the list of AOAP-compatible devices # @return [Array<Ligo::Device>] the list of AOAP-compatible devices # currently connected on the USB bus. def device_list pppDevs = FFI::MemoryPointer.new :pointer size = Call.libusb_get_device_list(@ctx, pppDevs) ppDevs = pppDevs.read_pointer pDevs = [] size.times do |devi| pDev = ppDevs.get_pointer(devi*FFI.type_size(:pointer)) # Use Ligo::Device instead of LIBUSB::Device device = Ligo::Device.new(self, pDev) if VENDOR_IDS.include?(device.idVendor) begin # Include only AOAP compatible devices pDevs << device if device.aoap? rescue LIBUSB::ERROR_ACCESS # @todo Do something about this exception, log at least! end end end Call.libusb_free_device_list(ppDevs, 1) pDevs end private :device_list end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ligo-0.2.0 | lib/ligo/context.rb |
ligo-0.1.2 | lib/ligo/context.rb |
ligo-0.1.1 | lib/ligo/context.rb |