Class: USB::Configuration

Inherits:
Data
  • Object
show all
Defined in:
lib/usb.rb,
ext/usb.c

Instance Method Summary collapse

Instance Method Details

#bConfigurationValueObject

USB::Configuration#bConfigurationValue



291
# File 'ext/usb.c', line 291

static VALUE rusb_config_bConfigurationValue(VALUE v) { return INT2FIX(get_usb_config_descriptor(v)->bConfigurationValue); }

#bDescriptorTypeObject

USB::Configuration#bDescriptorType



282
# File 'ext/usb.c', line 282

static VALUE rusb_config_bDescriptorType(VALUE v) { return INT2FIX(get_usb_config_descriptor(v)->bDescriptorType); }

#bLengthObject

USB::Configuration#bLength



279
# File 'ext/usb.c', line 279

static VALUE rusb_config_bLength(VALUE v) { return INT2FIX(get_usb_config_descriptor(v)->bLength); }

#bmAttributesObject

USB::Configuration#bmAttributes



297
# File 'ext/usb.c', line 297

static VALUE rusb_config_bmAttributes(VALUE v) { return INT2FIX(get_usb_config_descriptor(v)->bmAttributes); }

#bMaxPowerObject

USB::Configuration#bMaxPower



300
# File 'ext/usb.c', line 300

static VALUE rusb_config_bMaxPower(VALUE v) { return INT2FIX(get_usb_config_descriptor(v)->MaxPower); }

#bNumInterfacesObject

USB::Configuration#bNumInterfaces



288
# File 'ext/usb.c', line 288

static VALUE rusb_config_bNumInterfaces(VALUE v) { return INT2FIX(get_usb_config_descriptor(v)->bNumInterfaces); }

#busObject



311
# File 'lib/usb.rb', line 311

def bus() self.device.bus end

#descriptionObject



306
307
308
309
# File 'lib/usb.rb', line 306

def description
  return @description if defined? @description
  @description = self.device.open {|h| h.get_string_simple(self.iConfiguration) }
end

#deviceObject

USB::Configuration#device



276
# File 'ext/usb.c', line 276

static VALUE rusb_config_device(VALUE v) { return get_rusb_config_descriptor(v)->parent; }

#endpointsObject



314
# File 'lib/usb.rb', line 314

def endpoints() self.settings.map {|d| d.endpoints }.flatten end

#iConfigurationObject

USB::Configuration#iConfiguration



294
# File 'ext/usb.c', line 294

static VALUE rusb_config_iConfiguration(VALUE v) { return INT2FIX(get_usb_config_descriptor(v)->iConfiguration); }

#inspectObject



291
292
293
294
295
296
297
298
299
300
301
302
303
304
# File 'lib/usb.rb', line 291

def inspect
  if self.revoked?
    "\#<#{self.class} revoked>"
  else
    attrs = []
    attrs << self.bConfigurationValue.to_s
    bits = self.bmAttributes
    attrs << "SelfPowered" if (bits & 0b1000000) != 0
    attrs << "RemoteWakeup" if (bits & 0b100000) != 0
    desc = self.description
    attrs << desc if desc != '?'
    "\#<#{self.class} #{attrs.join(' ')}>"
  end
end

#interfacesObject

USB::Configuration#interfaces



303
304
305
306
307
308
309
310
311
312
# File 'ext/usb.c', line 303

static VALUE
rusb_config_interfaces(VALUE v)
{
  struct usb_config_descriptor *p = get_usb_config_descriptor(v);
  int i;
  VALUE interface = rb_ary_new2(p->bNumInterfaces);
  for (i = 0; i < p->bNumInterfaces; i++)
    rb_ary_store(interface, i, rusb_interface_make(&p->interface[i], v));
  return interface;
}

#revoked?Boolean

USB::Configuration#revoked?

Returns:

  • (Boolean)


269
270
271
272
273
# File 'ext/usb.c', line 269

static VALUE
rusb_config_revoked_p(VALUE v)
{
  return RTEST(!check_usb_config_descriptor(v));
}

#settingsObject



313
# File 'lib/usb.rb', line 313

def settings() self.interfaces.map {|d| d.settings }.flatten end

#wTotalLengthObject

USB::Configuration#wTotalLength



285
# File 'ext/usb.c', line 285

static VALUE rusb_config_wTotalLength(VALUE v) { return INT2FIX(get_usb_config_descriptor(v)->wTotalLength); }