unsafe PortReference MapPort(uint portId) { UnsafeStructs.jack_port_t *portPointer = PortApi.GetPortById(JackClient, portId); if (portPointer == null) { return(null); } return(new PortReference(portPointer)); }
unsafe PortReference MapPort(string portName) { UnsafeStructs.jack_port_t *portPointer = PortApi.GetPortByName(JackClient, portName); if (portPointer == null) { return(null); } return(new PortReference(portPointer)); }
internal unsafe Port(UnsafeStructs.jack_client_t*jackClient, int index, Direction direction, PortType portType, string nameFormat) { if (nameFormat == null) { nameFormat = "{type}{direction}_{index}"; } _jackClient = jackClient; Direction = direction; Name = CreateName (nameFormat, index, direction, portType); PortType = portType; _port = RegisterPort (direction, portType); }
unsafe void Dispose(bool isDisposing) { if (_jackClient == null || _port == null) { return; } if (PortApi.Unregister(_jackClient, _port) == 0) { _jackClient = null; _port = null; } }
internal unsafe PortReference(UnsafeStructs.jack_port_t *portPointer) { PortPointer = portPointer; FullName = PortApi.GetName(portPointer).PtrToString(); bool isPhysicalPort; Direction direction; ReadJackPortFlags(portPointer, out direction, out isPhysicalPort); Direction = direction; IsPhysicalPort = isPhysicalPort; PortType = GetPortType(portPointer); }
internal unsafe Port(UnsafeStructs.jack_client_t *jackClient, int index, Direction direction, PortType portType, string nameFormat) { if (nameFormat == null) { nameFormat = "{type}{direction}_{index}"; } _jackClient = jackClient; Direction = direction; Name = CreateName(nameFormat, index, direction, portType); PortType = portType; _port = RegisterPort(direction, portType); }
static unsafe PortType GetPortType(UnsafeStructs.jack_port_t *portPointer) { string connectionTypeName = PortApi.GetType(portPointer).PtrToString(); switch (connectionTypeName) { case Constants.JACK_DEFAULT_AUDIO_TYPE: return(PortType.Audio); case Constants.JACK_DEFAULT_MIDI_TYPE: return(PortType.Midi); } throw new IndexOutOfRangeException("jack_port_type"); }
static unsafe void ReadJackPortFlags(UnsafeStructs.jack_port_t *portPointer, out Direction direction, out bool isPhysicalPort) { JackPortFlags portFlags = (JackPortFlags)PortApi.GetPortFlags(portPointer); isPhysicalPort = (portFlags & JackPortFlags.JackPortIsPhysical) == JackPortFlags.JackPortIsPhysical; if ((portFlags & JackPortFlags.JackPortIsInput) == JackPortFlags.JackPortIsInput) { direction = Direction.In; return; } if ((portFlags & JackPortFlags.JackPortIsOutput) == JackPortFlags.JackPortIsOutput) { direction = Direction.Out; return; } throw new IndexOutOfRangeException("jack_port_flags"); }
public static extern unsafe ulong GetUuid(UnsafeStructs.jack_port_t *port);
public static extern unsafe int Disconnect(UnsafeStructs.jack_client_t *client, UnsafeStructs.jack_port_t *port);
public static extern unsafe void SetLatencyRange(UnsafeStructs.jack_port_t *port, JackLatencyCallbackMode mode, IntPtr range);
public static extern unsafe int GetPortFlags(UnsafeStructs.jack_port_t *port);
public static extern unsafe int EnsureMonitor(UnsafeStructs.jack_port_t *port, int onoff);
public static extern unsafe int MonitoringInput(UnsafeStructs.jack_port_t *port);
public static extern unsafe float *GetBuffer(UnsafeStructs.jack_port_t *port, uint frames);
public static extern unsafe int RequestMonitor(UnsafeStructs.jack_port_t *port, int onoff);
public static extern unsafe IntPtr GetType(UnsafeStructs.jack_port_t *port);
unsafe void Dispose(bool isDisposing) { if (_jackClient == null || _port == null) { return; } if (PortApi.Unregister (_jackClient, _port) == 0){ _jackClient = null; _port = null; } }
public static extern unsafe IntPtr GetAllConnections(UnsafeStructs.jack_client_t *client, UnsafeStructs.jack_port_t *port);
public static extern unsafe IntPtr GetConnections(UnsafeStructs.jack_port_t *port);
public static extern unsafe int IsConnectedTo(UnsafeStructs.jack_port_t *port, string portName);
public static extern unsafe int IsConnected(UnsafeStructs.jack_port_t *port);
public static extern unsafe int IsMine(UnsafeStructs.jack_client_t *client, UnsafeStructs.jack_port_t *port);
public static extern unsafe int UnsetAlias(UnsafeStructs.jack_port_t *port, string alias);
public static extern unsafe int GetAliases(UnsafeStructs.jack_port_t *port, IntPtr[] aliases);
public static extern unsafe int SetName(UnsafeStructs.jack_port_t *port, string portName);
public static extern unsafe int Unregister(UnsafeStructs.jack_client_t *client, UnsafeStructs.jack_port_t *port);