internal LinuxDeviceEndpoint(EndpointDescriptor descriptor, string hidrawPath) { this.descriptor = descriptor; var hidrawMatch = hidrawRegex.Match(hidrawPath); if (hidrawMatch.Success) { this.hidrawPath = $"/dev/{hidrawMatch.Groups[1].Value}"; } else { throw new Exception("Endpoint is not an hidraw endpoint."); } var fd = open(this.hidrawPath, oflag.RDWR); if (fd > 0) { var res = ioctl(fd, HIDIOCGRDESCSIZE, out var len); if (res < 0) { throw CreateNativeException(); } base.InputReportLength = len; } }
public static EndpointHandler Create <TRequest, TResponse>(IPredicateHandler languagePredicateHandler, CompositionHost host, ILogger logger, EndpointDescriptor item, IEnumerable <Lazy <IRequestHandler, OmniSharpLanguage> > handlers, Lazy <EndpointHandler <UpdateBufferRequest, object> > updateBufferHandler, IEnumerable <Plugin> plugins) { return(new EndpointHandler <TRequest, TResponse>(languagePredicateHandler, host, logger, item, handlers.Where(x => x.Metadata.EndpointName == item.EndpointName), updateBufferHandler, plugins)); }
public List <EndpointDescriptor> GetEndpointDescriptorList() { endpointDescriptorList.Clear(); List <EndpointDescriptor> buffer = new List <EndpointDescriptor>(); Connect(); MySqlCommand cmd = connection.CreateCommand(); cmd.CommandText = "SELECT * FROM endpoint_descriptor ORDER BY endpoint_descriptor_id"; HtaMySqlDataReader reader = null; try { reader = new HtaMySqlDataReader(cmd.ExecuteReader()); } catch { MessageBox.Show("Datenbankfehler.", "", MessageBoxButton.OK); return(buffer); } while (reader.Read()) { EndpointDescriptor newEndpointType = ReadEndpointDescriptor(reader); buffer.Add(newEndpointType); } Disconnect(); foreach (EndpointDescriptor ep in buffer) { EndpointDescriptor elementToAdd = null; if (ep.ParentId > 0) { if (buffer.Any(item => item.Id == ep.ParentId)) { EndpointDescriptor parent = buffer.First(item => item.Id == ep.ParentId); parent.ChildList.Add(ep); ep.Parent = parent; elementToAdd = parent; } } else { elementToAdd = ep; } if (!endpointDescriptorList.Any(item => item.Id == elementToAdd.Id)) { endpointDescriptorList.Add(elementToAdd); } } return(endpointDescriptorList); }
public NodeGraphConnector(EndpointDescriptor descriptor, NodeGraphView p_view, ConnectorType type) { this.m_Name = String.Empty; this.m_oParentNode = null; this.m_oView = p_view; this.m_oConnectorType = type; this.m_iConnectorIndex = descriptor.index; }
public int SaveEndpointDescriptor(EndpointDescriptor EndpointDescriptor) { Connect(); string cmdPrefix = ""; string cmdSuffix = ""; string cmdText = ""; if (EndpointDescriptor.Id > 0) { cmdPrefix = "UPDATE endpoint_descriptor SET"; cmdSuffix = $" WHERE endpoint_descriptor_id = {EndpointDescriptor.Id}"; } else { cmdPrefix = "INSERT INTO endpoint_descriptor SET"; } cmdText = cmdPrefix + " endpoint_descriptor_name = ?endpoint_descriptor_name, abbreviation = ?abbreviation, parent_id = ?parent_id, endpoint_descriptor_dimension = ?endpoint_descriptor_dimension" + cmdSuffix; MySqlCommand cmd = connection.CreateCommand(); cmd.CommandText = cmdText; cmd.Parameters.AddWithValue("?endpoint_descriptor_name", EndpointDescriptor.Name); cmd.Parameters.AddWithValue("?abbreviation", EndpointDescriptor.Abbreviation); if (EndpointDescriptor.ParentId > 0) { cmd.Parameters.AddWithValue("?parent_id", EndpointDescriptor.ParentId); } else { cmd.Parameters.AddWithValue("?parent_id", null); } cmd.Parameters.AddWithValue("?endpoint_descriptor_dimension", EndpointDescriptor.Dimension.ToString().ToLower()); int rowCount = cmd.ExecuteNonQuery(); Disconnect(); if (rowCount > 0) { if (cmd.LastInsertedId > 0) { return(Convert.ToInt32(cmd.LastInsertedId)); } else { return(EndpointDescriptor.Id); } } else { return(EndpointDescriptor.Id); } }
public static EndpointHandler Factory(IPredicateHandler languagePredicateHandler, CompositionHost host, ILogger logger, EndpointDescriptor item, IEnumerable <Lazy <IRequestHandler, OmniSharpLanguage> > handlers, Lazy <EndpointHandler <UpdateBufferRequest, object> > updateBufferHandler, IEnumerable <Plugin> plugins) { var createMethod = typeof(EndpointHandler).GetTypeInfo().DeclaredMethods.First(x => x.Name == nameof(EndpointHandler.Create)); return((EndpointHandler)createMethod.MakeGenericMethod(item.RequestType, item.ResponseType).Invoke(null, new object[] { languagePredicateHandler, host, logger, item, handlers, updateBufferHandler, plugins })); }
public override Endpoint GetEndpoint(uint index) { var udev = udev_new(); var udevEnumerator = udev_enumerate_new(udev); if (udevEnumerator == null) { throw new UdevException("Failed to create udev enumerator."); } udev_enumerate_add_match_subsystem(udevEnumerator, "hidraw"); udev_enumerate_scan_devices(udevEnumerator); List <string> endpointPaths = new List <string>(); for (var entry = udev_enumerate_get_list_entry(udevEnumerator); entry != null; entry = udev_list_entry_get_next(entry)) { var sysPath = udev_list_entry_get_name(entry); udev_device *hidEndpoint = udev_device_new_from_syspath(udev, sysPath); udev_device *parentDevice = udev_device_get_parent_with_subsystem_devtype(hidEndpoint, "usb", "usb_device"); var parentDevname = udev_device_get_property_value(parentDevice, "DEVNAME"); if (parentDevname == devname) { endpointPaths.Add(sysPath); } } fixed(byte *endpointDescriptors = otherDescriptors) { var descriptorPtr = (EndpointDescriptor *)endpointDescriptors; int currentIndex = 0; while (currentIndex < otherDescriptors.Length) { EndpointDescriptor descriptor = *descriptorPtr; if (descriptor.bDescriptorType.HasFlag(DescriptorType.Endpoint)) { int endpointNum = descriptor.bEndpointAddress & 0x0f; bool endpointDirection = (descriptor.bEndpointAddress & (1 << 7)) != 0; if (endpointNum == index) { return(new LinuxDeviceEndpoint(descriptor, endpointPaths[(int)index])); } } currentIndex += descriptor.bLength; descriptorPtr = (EndpointDescriptor *)(endpointDescriptors + currentIndex); } } throw new Exception($"Requested endpoint {index} doesn't exist or is not available."); }
public bool DeleteEndpointDescriptor(EndpointDescriptor EndpointDescriptor) { Connect(); MySqlCommand cmd = connection.CreateCommand(); cmd.CommandText = $"DELETE FROM endpoint_descriptor WHERE endpoint_descriptor_id={EndpointDescriptor.Id}"; int rowCount = cmd.ExecuteNonQuery(); Disconnect(); return(rowCount > 0); }
public EndpointDescriptor ReadEndpointDescriptor(HtaMySqlDataReader reader) { EndpointDescriptor result = new EndpointDescriptor(); result.Id = reader.GetInt32("endpoint_descriptor_id"); result.Name = reader.GetString("endpoint_descriptor_name"); result.Abbreviation = reader.GetString("abbreviation"); result.Dimension = (EndpointDimensionType)Enum.Parse(typeof(EndpointDimensionType), reader.GetString("endpoint_descriptor_dimension").ToUpper()); result.ParentId = reader.GetInt32("parent_id"); result.NameEN = reader.GetString("endpoint_descriptor_shorthand"); result.AbbreviationEN = reader.GetString("abbreviation_en"); return(result); }
public NodeGraphConnector(EndpointDescriptor descriptor, NodeGraphNode p_parent, ConnectorType type) { this.m_Name = String.Empty; if (p_parent != null) { this.m_oParentNode = p_parent; } else { this.m_oParentNode = null; } this.m_oView = p_parent.ParentView; this.m_oConnectorType = type; this.m_iConnectorIndex = descriptor.index; }
public static unsafe UsbEndpointInfo FromUsbEndpointDescriptor(EndpointDescriptor descriptor) { Debug.Assert(descriptor.DescriptorType == (int)DescriptorType.Endpoint, "An endpoint descriptor was expected"); var value = new UsbEndpointInfo(); value.Attributes = descriptor.Attributes; value.EndpointAddress = descriptor.EndpointAddress; value.RawDescriptors = new byte[descriptor.ExtraLength]; if (descriptor.ExtraLength > 0) { Span <byte> extra = new Span <byte>(descriptor.Extra, descriptor.ExtraLength); extra.CopyTo(value.RawDescriptors); } value.Interval = descriptor.Interval; value.MaxPacketSize = descriptor.MaxPacketSize; value.Refresh = descriptor.Refresh; value.SyncAddress = descriptor.SynchAddress; return(value); }
internal LinuxDeviceEndpoint(EndpointDescriptor descriptor, string hidrawPath) { this.descriptor = descriptor; this.hidrawPath = hidrawPath; }
public int SaveEndpointDescriptor(EndpointDescriptorViewModel endpointDescriptorViewModel) { return(SaveEndpointDescriptor(EndpointDescriptor.FromViewModel(endpointDescriptorViewModel))); }