15f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)# Copyright 2014 The Chromium Authors. All rights reserved.
25f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be
35f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)# found in the LICENSE file.
45f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
55f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)"""Default gadget configuration."""
65f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
75f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)import gadget
85f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)import usb_constants
95f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)import usb_descriptors
105f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
115f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
125f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)class DefaultGadget(gadget.Gadget):
135f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
145f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  def __init__(self):
155f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    device_desc = usb_descriptors.DeviceDescriptor(
165f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        idVendor=usb_constants.VendorID.GOOGLE,
175f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        idProduct=usb_constants.ProductID.GOOGLE_TEST_GADGET,
185f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        bcdUSB=0x0200,
195f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        iManufacturer=1,
205f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        iProduct=2,
215f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        iSerialNumber=3,
225f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        bcdDevice=0x0100)
235f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
245f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    fs_config_desc = usb_descriptors.ConfigurationDescriptor(
255f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        bmAttributes=0x80,
265f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        MaxPower=50)
275f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
285f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    hs_config_desc = usb_descriptors.ConfigurationDescriptor(
295f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        bmAttributes=0x80,
305f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        MaxPower=50)
315f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
325f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    interface_desc = usb_descriptors.InterfaceDescriptor(
335f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        bInterfaceNumber=0)
345f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    fs_config_desc.AddInterface(interface_desc)
355f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    hs_config_desc.AddInterface(interface_desc)
365f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
375f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    super(DefaultGadget, self).__init__(
385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)        device_desc, fs_config_desc, hs_config_desc)
395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)
405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.AddStringDescriptor(1, "Google Inc.")
415f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)    self.AddStringDescriptor(2, "Test Gadget (default state)")
42