RawDevice(ref DeviceParser parser) { bus = parser.bus.Value; vendor = parser.vendor; product = parser.product; revision = parser.revision; name = parser.name; eventInterface = parser.eventIface; otherHandlers = parser.otherHandlers.ToArray(); eventTypesBits = parser.eventTypes; keysBits = parser.bits.lookup(eEventType.Key); ledBits = parser.getSingleBits(eEventType.LED); relBits = parser.getSingleBits(eEventType.Relative); absBits = parser.bits.lookup(eEventType.Absolute); switchBits = parser.getSingleBits(eEventType.Switch); miscEventsBits = parser.getSingleBits(eEventType.Miscellaneous); }
/// <summary>Enumerate currently attached input devices</summary> public static IEnumerable <RawDevice> list() { DeviceParser parser = new DeviceParser(); parser.reset(); foreach (string line in MiscUtils.readLines(source)) { if (string.IsNullOrWhiteSpace(line)) { if (parser.isGoodEnough()) { yield return(new RawDevice(ref parser)); } parser.reset(); } parser.parse(line); } }