From 7b9d6bd84e5829a33abf5b9eb14142ef9cffad5f Mon Sep 17 00:00:00 2001 From: Kakxem <80788785+kakxem@users.noreply.github.com> Date: Sat, 15 Aug 2026 17:02:18 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=A4=96=20Merge=20PR=20#75391=20[node-pipe?= =?UTF-8?q?wire]=20Update=20types=20for=201.1=20by=20@kakxem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- types/node-pipewire/index.d.ts | 22 +++++++-- types/node-pipewire/node-pipewire-tests.ts | 54 ++++++++++++++++++---- types/node-pipewire/package.json | 4 +- 3 files changed, 65 insertions(+), 15 deletions(-) diff --git a/types/node-pipewire/index.d.ts b/types/node-pipewire/index.d.ts index f5d9ee3dc7cc2e..2a69d1d184d681 100644 --- a/types/node-pipewire/index.d.ts +++ b/types/node-pipewire/index.d.ts @@ -1,7 +1,7 @@ export interface PipewirePort { id: number; permissions: number; - props: string; + props: Record; node_id: number; name: string; direction: string; @@ -9,7 +9,7 @@ export interface PipewirePort { export interface PipewireNode { id: number; permissions: number; - props: string; + props: Record; name: string; node_direction: string; node_type: string; @@ -18,23 +18,35 @@ export interface PipewireNode { export interface PipewireLink { id: number; permissions: number; - props: string; + props: Record; input_node_id: number; input_port_id: number; output_node_id: number; output_port_id: number; } +export interface PipewireClient { + id: number; + permissions: number; + pid: number; + application_name: string; + props: Record; +} export type NodeDirection = "Input" | "Output" | "Both"; +export type AudioPosition = "FL" | "FR"; export function createPwThread(enableDebug?: boolean): void; export function getLinks(): PipewireLink[]; export function getPorts(): PipewirePort[]; export function getNodes(): PipewireNode[]; +export function getClients(): PipewireClient[]; export function getOutputNodes(): PipewireNode[]; export function getInputNodes(): PipewireNode[]; -export function linkNodesNameToId(nodeName: string, nodeId: number): void; +export function linkNodesNameToId(nodeName: string, nodeId: number, permanent?: boolean): void; export function unlinkNodesNameToId(nodeName: string, nodeId: number): void; -export function linkPorts(inputPortId: number, outputPortId: number): void; +export function linkPorts(inputPortId: number, outputPortId: number, permanent?: boolean): void; export function unlinkPorts(inputPortId: number, outputPortId: number): void; export function getInputNodesName(): string[]; export function getOutputNodesName(): string[]; export function waitForNewNode(nodeName: string, direction?: NodeDirection, timeout?: number): Promise; +export function createSource(newSourceName: string, audioPositions: AudioPosition[], permanent?: boolean): void; +export function createSink(newSinkName: string, audioPositions: AudioPosition[], permanent?: boolean): void; +export function destroyObject(id: number): void; diff --git a/types/node-pipewire/node-pipewire-tests.ts b/types/node-pipewire/node-pipewire-tests.ts index f26081ccf7bd25..c56850be99d307 100644 --- a/types/node-pipewire/node-pipewire-tests.ts +++ b/types/node-pipewire/node-pipewire-tests.ts @@ -1,5 +1,10 @@ import { + AudioPosition, createPwThread, + createSink, + createSource, + destroyObject, + getClients, getInputNodes, getInputNodesName, getLinks, @@ -9,23 +14,56 @@ import { getPorts, linkNodesNameToId, linkPorts, + NodeDirection, + PipewireClient, + PipewireLink, + PipewireNode, + PipewirePort, unlinkNodesNameToId, unlinkPorts, waitForNewNode, } from "node-pipewire"; createPwThread(); +createPwThread(true); -const links = getLinks(); -const ports = getPorts(); -const nodes = getNodes(); -const outputNodes = getOutputNodes(); -const inputNodes = getInputNodes(); -const outputNodeNames = getOutputNodesName(); -const inputNodeNames = getInputNodesName(); +const links: PipewireLink[] = getLinks(); +const ports: PipewirePort[] = getPorts(); +const nodes: PipewireNode[] = getNodes(); +const clients: PipewireClient[] = getClients(); +const outputNodes: PipewireNode[] = getOutputNodes(); +const inputNodes: PipewireNode[] = getInputNodes(); +const outputNodeNames: string[] = getOutputNodesName(); +const inputNodeNames: string[] = getInputNodesName(); + +const portProps: Record = ports[0].props; +const nodeProps: Record = nodes[0].props; +const linkProps: Record = links[0].props; +const clientProps: Record = clients[0].props; +const clientPid: number = clients[0].pid; +const clientApplicationName: string = clients[0].application_name; linkPorts(outputNodes[0].id, inputNodes[0].id); +linkPorts(outputNodes[0].id, inputNodes[0].id, false); unlinkPorts(outputNodes[1].id, inputNodes[1].id); linkNodesNameToId(outputNodeNames[0], outputNodes[0].id); +linkNodesNameToId(outputNodeNames[0], outputNodes[0].id, false); unlinkNodesNameToId(inputNodeNames[0], inputNodes[0].id); -waitForNewNode(outputNodeNames[0]); + +const direction: NodeDirection = "Output"; +const newNode: Promise = waitForNewNode(outputNodeNames[0], direction, 1_000); + +const positions: AudioPosition[] = ["FL", "FR"]; +createSource("node-pipewire-test-source", positions); +createSource("node-pipewire-test-source", positions, true); +createSink("node-pipewire-test-sink", positions); +createSink("node-pipewire-test-sink", positions, true); +destroyObject(nodes[0].id); + +void portProps; +void nodeProps; +void linkProps; +void clientProps; +void clientPid; +void clientApplicationName; +void newNode; diff --git a/types/node-pipewire/package.json b/types/node-pipewire/package.json index ba9390076cf440..129a764ca07839 100644 --- a/types/node-pipewire/package.json +++ b/types/node-pipewire/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@types/node-pipewire", - "version": "1.0.9999", + "version": "1.1.9999", "projects": [ "https://github.com/kakxem/node-pipewire#readme" ], @@ -10,7 +10,7 @@ }, "owners": [ { - "name": "Paul Antonio Almasi", + "name": "kakxem", "githubUsername": "kakxem" } ]