pipewire 1.4.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -9
- package/dist/bindings/context.d.ts +20 -0
- package/dist/bindings/context.d.ts.map +1 -0
- package/dist/bindings/context.js +12 -0
- package/dist/bindings/context.js.map +1 -0
- package/dist/bindings/core.d.ts +34 -0
- package/dist/bindings/core.d.ts.map +1 -0
- package/dist/bindings/core.js +36 -0
- package/dist/bindings/core.js.map +1 -0
- package/dist/bindings/dict.d.ts +3 -0
- package/dist/bindings/dict.d.ts.map +1 -0
- package/dist/bindings/dict.js +11 -0
- package/dist/bindings/dict.js.map +1 -0
- package/dist/bindings/hook.d.ts +3 -0
- package/dist/bindings/hook.d.ts.map +1 -0
- package/dist/bindings/hook.js +14 -0
- package/dist/bindings/hook.js.map +1 -0
- package/dist/bindings/index.d.ts +32 -0
- package/dist/bindings/index.d.ts.map +1 -0
- package/dist/bindings/index.js +16 -0
- package/dist/bindings/index.js.map +1 -0
- package/dist/bindings/list.d.ts +2 -0
- package/dist/bindings/list.d.ts.map +1 -0
- package/dist/bindings/list.js +7 -0
- package/dist/bindings/list.js.map +1 -0
- package/dist/bindings/loop.d.ts +33 -0
- package/dist/bindings/loop.d.ts.map +1 -0
- package/dist/bindings/loop.js +17 -0
- package/dist/bindings/loop.js.map +1 -0
- package/dist/bindings/main-loop.d.ts +47 -0
- package/dist/bindings/main-loop.d.ts.map +1 -0
- package/dist/bindings/main-loop.js +15 -0
- package/dist/bindings/main-loop.js.map +1 -0
- package/dist/bindings/node.d.ts +50 -0
- package/dist/bindings/node.d.ts.map +1 -0
- package/dist/bindings/node.js +81 -0
- package/dist/bindings/node.js.map +1 -0
- package/dist/bindings/param.d.ts +25 -0
- package/dist/bindings/param.d.ts.map +1 -0
- package/dist/bindings/param.js +33 -0
- package/dist/bindings/param.js.map +1 -0
- package/dist/bindings/pipewire.d.ts +19 -0
- package/dist/bindings/pipewire.d.ts.map +1 -0
- package/dist/bindings/pipewire.js +5 -0
- package/dist/bindings/pipewire.js.map +1 -0
- package/dist/bindings/pod.d.ts +2 -0
- package/dist/bindings/pod.d.ts.map +1 -0
- package/dist/bindings/pod.js +6 -0
- package/dist/bindings/pod.js.map +1 -0
- package/dist/bindings/properties.d.ts +2 -0
- package/dist/bindings/properties.d.ts.map +1 -0
- package/dist/bindings/properties.js +3 -0
- package/dist/bindings/properties.js.map +1 -0
- package/dist/bindings/props.d.ts +59 -0
- package/dist/bindings/props.d.ts.map +1 -0
- package/dist/bindings/props.js +59 -0
- package/dist/bindings/props.js.map +1 -0
- package/dist/bindings/proxy.d.ts +11 -0
- package/dist/bindings/proxy.d.ts.map +1 -0
- package/dist/bindings/proxy.js +5 -0
- package/dist/bindings/proxy.js.map +1 -0
- package/dist/bindings/registry.d.ts +20 -0
- package/dist/bindings/registry.d.ts.map +1 -0
- package/dist/bindings/registry.js +19 -0
- package/dist/bindings/registry.js.map +1 -0
- package/dist/bindings/thread-loop.d.ts +65 -0
- package/dist/bindings/thread-loop.d.ts.map +1 -0
- package/dist/bindings/thread-loop.js +18 -0
- package/dist/bindings/thread-loop.js.map +1 -0
- package/dist/index.d.ts +5 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -15
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +53 -39
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +104 -69
- package/dist/node.js.map +1 -1
- package/dist/object.d.ts +18 -0
- package/dist/object.d.ts.map +1 -0
- package/dist/object.js +22 -0
- package/dist/object.js.map +1 -0
- package/dist/pipewire.d.ts +50 -15
- package/dist/pipewire.d.ts.map +1 -1
- package/dist/pipewire.js +94 -3
- package/dist/pipewire.js.map +1 -1
- package/examples/basic.ts +20 -0
- package/examples/event-registry-async.ts +1 -1
- package/examples/event-registry-sync.ts +3 -2
- package/examples/node-events.ts +34 -0
- package/package.json +1 -1
- package/src/{core.ts → bindings/core.ts} +8 -6
- package/src/bindings/index.ts +16 -0
- package/src/bindings/node.ts +92 -0
- package/src/bindings/param.ts +33 -0
- package/src/bindings/pipewire.ts +6 -0
- package/src/{registry.ts → bindings/registry.ts} +2 -0
- package/src/index.ts +5 -15
- package/src/node.ts +167 -79
- package/src/object.ts +36 -0
- package/src/pipewire.ts +154 -3
- package/src/param.ts +0 -33
- /package/src/{context.ts → bindings/context.ts} +0 -0
- /package/src/{dict.ts → bindings/dict.ts} +0 -0
- /package/src/{hook.ts → bindings/hook.ts} +0 -0
- /package/src/{list.ts → bindings/list.ts} +0 -0
- /package/src/{loop.ts → bindings/loop.ts} +0 -0
- /package/src/{main-loop.ts → bindings/main-loop.ts} +0 -0
- /package/src/{pod.ts → bindings/pod.ts} +0 -0
- /package/src/{properties.ts → bindings/properties.ts} +0 -0
- /package/src/{props.ts → bindings/props.ts} +0 -0
- /package/src/{proxy.ts → bindings/proxy.ts} +0 -0
- /package/src/{thread-loop.ts → bindings/thread-loop.ts} +0 -0
package/README.md
CHANGED
|
@@ -2,31 +2,51 @@
|
|
|
2
2
|
|
|
3
3
|
Node.js bindings for [PipeWire](https://pipewire.org/) using [koffi](https://koffi.dev/) FFI.
|
|
4
4
|
|
|
5
|
+
Two layers are exported: high-level classes (`Pipewire`, `PipewireObject`, `PipewireNode`) and raw
|
|
6
|
+
bindings (`bindings`) for direct FFI access.
|
|
7
|
+
|
|
5
8
|
## Requirements
|
|
6
9
|
|
|
7
10
|
- Node.js
|
|
8
11
|
- PipeWire (`libpipewire-0.3.so.0`)
|
|
9
12
|
|
|
10
|
-
## Install
|
|
13
|
+
## Install / Build
|
|
11
14
|
|
|
12
15
|
```bash
|
|
13
16
|
npm install
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
## Build
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
17
|
npm run build
|
|
20
18
|
```
|
|
21
19
|
|
|
22
20
|
## Usage
|
|
23
21
|
|
|
24
|
-
|
|
22
|
+
```ts
|
|
23
|
+
import { Pipewire, PipewireNode } from "pipewire";
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
const pipewire = new Pipewire();
|
|
26
|
+
|
|
27
|
+
pipewire.on("objectAdded", (obj) => {
|
|
28
|
+
console.log(`New object: ${obj.id} (${obj.type})`);
|
|
29
|
+
if (!(obj instanceof PipewireNode)) return;
|
|
30
|
+
|
|
31
|
+
obj.on("nodeInfo", (info) => console.log(info.changes));
|
|
32
|
+
obj.attachListener();
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
pipewire.startLoop();
|
|
36
|
+
|
|
37
|
+
process.on("SIGINT", () => {
|
|
38
|
+
pipewire.stopLoop();
|
|
39
|
+
pipewire.deinit();
|
|
40
|
+
});
|
|
28
41
|
```
|
|
29
42
|
|
|
43
|
+
Run with `npx tsx examples/basic.ts` or `npx tsx examples/node-events.ts`.
|
|
44
|
+
|
|
45
|
+
### Raw bindings
|
|
46
|
+
|
|
47
|
+
`bindings` exposes the koffi declarations per module (`bindings.pipewire`, `bindings.loop`, `bindings.node`, etc)
|
|
48
|
+
if you need to call PipeWire yourself, see `examples/event-registry-sync.ts`.
|
|
49
|
+
|
|
30
50
|
## License
|
|
31
51
|
|
|
32
52
|
ISC
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const pw_context: import("koffi").TypeObject;
|
|
2
|
+
export declare const pw_context_new: {
|
|
3
|
+
(...args: any[]): any;
|
|
4
|
+
async: (...args: any[]) => any;
|
|
5
|
+
info: {
|
|
6
|
+
name: string;
|
|
7
|
+
arguments: import("koffi").TypeObject[];
|
|
8
|
+
result: import("koffi").TypeObject;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export declare const pw_context_destroy: {
|
|
12
|
+
(...args: any[]): any;
|
|
13
|
+
async: (...args: any[]) => any;
|
|
14
|
+
info: {
|
|
15
|
+
name: string;
|
|
16
|
+
arguments: import("koffi").TypeObject[];
|
|
17
|
+
result: import("koffi").TypeObject;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/bindings/context.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,UAAU,4BAA6B,CAAC;AAErD,eAAO,MAAM,cAAc;;;;;;;;CAIzB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;CAA2E,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import koffi from "koffi";
|
|
2
|
+
import { pw_loop } from "./loop.js";
|
|
3
|
+
import { pw_properties } from "./properties.js";
|
|
4
|
+
const pipewire = koffi.load("libpipewire-0.3.so.0");
|
|
5
|
+
export const pw_context = koffi.opaque("pw_context");
|
|
6
|
+
export const pw_context_new = pipewire.func("pw_context_new", koffi.pointer(pw_context), [
|
|
7
|
+
koffi.pointer(pw_loop),
|
|
8
|
+
koffi.pointer(pw_properties),
|
|
9
|
+
"size_t"
|
|
10
|
+
]);
|
|
11
|
+
export const pw_context_destroy = pipewire.func("pw_context_destroy", "void", [koffi.pointer(pw_context)]);
|
|
12
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/bindings/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAEpD,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AAErD,MAAM,CAAC,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;IACrF,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;IACtB,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;IAC5B,QAAQ;CACX,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare const PW_VERSION_REGISTRY = 3;
|
|
2
|
+
export declare const pw_core: import("koffi").TypeObject;
|
|
3
|
+
export declare const pw_registry: import("koffi").TypeObject;
|
|
4
|
+
export declare const pw_context_connect: {
|
|
5
|
+
(...args: any[]): any;
|
|
6
|
+
async: (...args: any[]) => any;
|
|
7
|
+
info: {
|
|
8
|
+
name: string;
|
|
9
|
+
arguments: import("koffi").TypeObject[];
|
|
10
|
+
result: import("koffi").TypeObject;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export declare const pw_core_get_registry: {
|
|
14
|
+
(...args: any[]): any;
|
|
15
|
+
async: (...args: any[]) => any;
|
|
16
|
+
info: {
|
|
17
|
+
name: string;
|
|
18
|
+
arguments: import("koffi").TypeObject[];
|
|
19
|
+
result: import("koffi").TypeObject;
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export declare const pw_registry_events_global: import("koffi").TypeObject;
|
|
23
|
+
export declare const pw_registry_events_global_remove: import("koffi").TypeObject;
|
|
24
|
+
export declare const pw_registry_events: import("koffi").TypeObject;
|
|
25
|
+
export declare const pw_core_disconnect: {
|
|
26
|
+
(...args: any[]): any;
|
|
27
|
+
async: (...args: any[]) => any;
|
|
28
|
+
info: {
|
|
29
|
+
name: string;
|
|
30
|
+
arguments: import("koffi").TypeObject[];
|
|
31
|
+
result: import("koffi").TypeObject;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/bindings/core.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,mBAAmB,IAAI,CAAC;AAErC,eAAO,MAAM,OAAO,4BAA0B,CAAC;AAC/C,eAAO,MAAM,WAAW,4BAA8B,CAAC;AAEvD,eAAO,MAAM,kBAAkB;;;;;;;;CAI7B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;CAI/B,CAAC;AAEH,eAAO,MAAM,yBAAyB,4BAOpC,CAAC;AAEH,eAAO,MAAM,gCAAgC,4BAG3C,CAAC;AAEH,eAAO,MAAM,kBAAkB,4BAI7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;CAAuE,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import koffi from "koffi";
|
|
2
|
+
import { pw_context } from "./context.js";
|
|
3
|
+
import { pw_properties } from "./properties.js";
|
|
4
|
+
const pipewire = koffi.load("libpipewire-0.3.so.0");
|
|
5
|
+
export const PW_VERSION_REGISTRY = 3;
|
|
6
|
+
export const pw_core = koffi.opaque("pw_core");
|
|
7
|
+
export const pw_registry = koffi.opaque("pw_registry");
|
|
8
|
+
export const pw_context_connect = pipewire.func("pw_context_connect", koffi.pointer(pw_core), [
|
|
9
|
+
koffi.pointer(pw_context), // context
|
|
10
|
+
koffi.pointer(pw_properties), // properties
|
|
11
|
+
"size_t" // user_data_size
|
|
12
|
+
]);
|
|
13
|
+
export const pw_core_get_registry = pipewire.func("pw_core_get_registry", koffi.pointer(pw_registry), [
|
|
14
|
+
koffi.pointer(pw_core), // core
|
|
15
|
+
"uint32_t", // version
|
|
16
|
+
"size_t" // user_data_size
|
|
17
|
+
]);
|
|
18
|
+
export const pw_registry_events_global = koffi.proto("void", [
|
|
19
|
+
"void*", // data
|
|
20
|
+
"uint32_t", // id
|
|
21
|
+
"uint32_t", // permissions
|
|
22
|
+
"const char*", // type
|
|
23
|
+
"uint32_t", // version
|
|
24
|
+
"void*" // props
|
|
25
|
+
]);
|
|
26
|
+
export const pw_registry_events_global_remove = koffi.proto("void", [
|
|
27
|
+
"void*", // data
|
|
28
|
+
"uint32_t" // id
|
|
29
|
+
]);
|
|
30
|
+
export const pw_registry_events = koffi.struct("pw_registry_events", {
|
|
31
|
+
version: "uint32_t",
|
|
32
|
+
global: koffi.pointer(pw_registry_events_global),
|
|
33
|
+
global_remove: koffi.pointer(pw_registry_events_global_remove)
|
|
34
|
+
});
|
|
35
|
+
export const pw_core_disconnect = pipewire.func("pw_core_disconnect", "int", [koffi.pointer(pw_core)]);
|
|
36
|
+
//# sourceMappingURL=core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/bindings/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAEpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAErC,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC/C,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;IAC1F,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,UAAU;IACrC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,aAAa;IAC3C,QAAQ,CAAC,iBAAiB;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;IAClG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO;IAC/B,UAAU,EAAE,UAAU;IACtB,QAAQ,CAAC,iBAAiB;CAC7B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;IACzD,OAAO,EAAE,OAAO;IAChB,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,cAAc;IAC1B,aAAa,EAAE,OAAO;IACtB,UAAU,EAAE,UAAU;IACtB,OAAO,CAAC,QAAQ;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gCAAgC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE;IAChE,OAAO,EAAE,OAAO;IAChB,UAAU,CAAC,KAAK;CACnB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE;IACjE,OAAO,EAAE,UAAU;IACnB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,yBAAyB,CAAC;IAChD,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,gCAAgC,CAAC;CACjE,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dict.d.ts","sourceRoot":"","sources":["../../src/bindings/dict.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,aAAa,4BAGxB,CAAC;AAEH,eAAO,MAAM,QAAQ,4BAInB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import koffi from "koffi";
|
|
2
|
+
export const spa_dict_item = koffi.struct("spa_dict_item", {
|
|
3
|
+
key: "const char*",
|
|
4
|
+
value: "const char*"
|
|
5
|
+
});
|
|
6
|
+
export const spa_dict = koffi.struct("spa_dict", {
|
|
7
|
+
flags: "uint32_t",
|
|
8
|
+
n_items: "uint32_t",
|
|
9
|
+
items: koffi.pointer(spa_dict_item)
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=dict.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dict.js","sourceRoot":"","sources":["../../src/bindings/dict.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE;IACvD,GAAG,EAAE,aAAa;IAClB,KAAK,EAAE,aAAa;CACvB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE;IAC7C,KAAK,EAAE,UAAU;IACjB,OAAO,EAAE,UAAU;IACnB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;CACtC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook.d.ts","sourceRoot":"","sources":["../../src/bindings/hook.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,4BAGxB,CAAC;AAIH,eAAO,MAAM,QAAQ,4BAKnB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import koffi from "koffi";
|
|
2
|
+
import { spa_list } from "./list.js";
|
|
3
|
+
export const spa_callbacks = koffi.struct("spa_callbacks", {
|
|
4
|
+
funcs: "void*",
|
|
5
|
+
data: "void*"
|
|
6
|
+
});
|
|
7
|
+
const spa_hook_opaque = koffi.opaque("spa_hook");
|
|
8
|
+
export const spa_hook = koffi.struct(spa_hook_opaque, {
|
|
9
|
+
link: spa_list,
|
|
10
|
+
cb: spa_callbacks,
|
|
11
|
+
removed: koffi.pointer(koffi.proto("void", [koffi.pointer(spa_hook_opaque)])),
|
|
12
|
+
priv: "void*"
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=hook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/bindings/hook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE;IACvD,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,OAAO;CAChB,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAEjD,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE;IAClD,IAAI,EAAE,QAAQ;IACd,EAAE,EAAE,aAAa;IACjB,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC7E,IAAI,EAAE,OAAO;CAChB,CAAC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import * as context from "./context.js";
|
|
2
|
+
import * as core from "./core.js";
|
|
3
|
+
import * as dict from "./dict.js";
|
|
4
|
+
import * as hook from "./hook.js";
|
|
5
|
+
import * as loop from "./loop.js";
|
|
6
|
+
import * as main_loop from "./main-loop.js";
|
|
7
|
+
import * as node from "./node.js";
|
|
8
|
+
import * as param from "./param.js";
|
|
9
|
+
import * as pipewire from "./pipewire.js";
|
|
10
|
+
import * as pod from "./pod.js";
|
|
11
|
+
import * as props from "./props.js";
|
|
12
|
+
import * as proxy from "./proxy.js";
|
|
13
|
+
import * as registry from "./registry.js";
|
|
14
|
+
import * as thread_loop from "./thread-loop.js";
|
|
15
|
+
declare const _default: {
|
|
16
|
+
context: typeof context;
|
|
17
|
+
core: typeof core;
|
|
18
|
+
dict: typeof dict;
|
|
19
|
+
hook: typeof hook;
|
|
20
|
+
loop: typeof loop;
|
|
21
|
+
main_loop: typeof main_loop;
|
|
22
|
+
node: typeof node;
|
|
23
|
+
param: typeof param;
|
|
24
|
+
pod: typeof pod;
|
|
25
|
+
props: typeof props;
|
|
26
|
+
pipewire: typeof pipewire;
|
|
27
|
+
proxy: typeof proxy;
|
|
28
|
+
registry: typeof registry;
|
|
29
|
+
thread_loop: typeof thread_loop;
|
|
30
|
+
};
|
|
31
|
+
export default _default;
|
|
32
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bindings/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as context from "./context.js";
|
|
2
|
+
import * as core from "./core.js";
|
|
3
|
+
import * as dict from "./dict.js";
|
|
4
|
+
import * as hook from "./hook.js";
|
|
5
|
+
import * as loop from "./loop.js";
|
|
6
|
+
import * as main_loop from "./main-loop.js";
|
|
7
|
+
import * as node from "./node.js";
|
|
8
|
+
import * as param from "./param.js";
|
|
9
|
+
import * as pipewire from "./pipewire.js";
|
|
10
|
+
import * as pod from "./pod.js";
|
|
11
|
+
import * as props from "./props.js";
|
|
12
|
+
import * as proxy from "./proxy.js";
|
|
13
|
+
import * as registry from "./registry.js";
|
|
14
|
+
import * as thread_loop from "./thread-loop.js";
|
|
15
|
+
export default { context, core, dict, hook, loop, main_loop, node, param, pod, props, pipewire, proxy, registry, thread_loop };
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bindings/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAEhD,eAAe,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/bindings/list.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ,4BAGnB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/bindings/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAEjD,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE;IAClD,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;IACpC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;CACvC,CAAC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export declare const spa_system: import("koffi").TypeObject;
|
|
2
|
+
export declare const spa_loop: import("koffi").TypeObject;
|
|
3
|
+
export declare const spa_loop_control: import("koffi").TypeObject;
|
|
4
|
+
export declare const spa_loop_utils: import("koffi").TypeObject;
|
|
5
|
+
export declare const pw_loop: import("koffi").TypeObject;
|
|
6
|
+
export declare const pw_loop_enter: {
|
|
7
|
+
(...args: any[]): any;
|
|
8
|
+
async: (...args: any[]) => any;
|
|
9
|
+
info: {
|
|
10
|
+
name: string;
|
|
11
|
+
arguments: import("koffi").TypeObject[];
|
|
12
|
+
result: import("koffi").TypeObject;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export declare const pw_loop_iterate: {
|
|
16
|
+
(...args: any[]): any;
|
|
17
|
+
async: (...args: any[]) => any;
|
|
18
|
+
info: {
|
|
19
|
+
name: string;
|
|
20
|
+
arguments: import("koffi").TypeObject[];
|
|
21
|
+
result: import("koffi").TypeObject;
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
export declare const pw_loop_leave: {
|
|
25
|
+
(...args: any[]): any;
|
|
26
|
+
async: (...args: any[]) => any;
|
|
27
|
+
info: {
|
|
28
|
+
name: string;
|
|
29
|
+
arguments: import("koffi").TypeObject[];
|
|
30
|
+
result: import("koffi").TypeObject;
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=loop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop.d.ts","sourceRoot":"","sources":["../../src/bindings/loop.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,UAAU,4BAA6B,CAAC;AACrD,eAAO,MAAM,QAAQ,4BAA2B,CAAC;AACjD,eAAO,MAAM,gBAAgB,4BAAmC,CAAC;AAEjE,eAAO,MAAM,cAAc,4BAAiC,CAAC;AAE7D,eAAO,MAAM,OAAO,4BAMlB,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;CAAmE,CAAC;AAC9F,eAAO,MAAM,eAAe;;;;;;;;CAA2E,CAAC;AACxG,eAAO,MAAM,aAAa;;;;;;;;CAAmE,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import koffi from "koffi";
|
|
2
|
+
const pipewire = koffi.load("libpipewire-0.3.so.0");
|
|
3
|
+
export const spa_system = koffi.opaque("spa_system");
|
|
4
|
+
export const spa_loop = koffi.opaque("spa_loop");
|
|
5
|
+
export const spa_loop_control = koffi.opaque("spa_loop_control");
|
|
6
|
+
export const spa_loop_utils = koffi.opaque("spa_loop_utils"); // TODO
|
|
7
|
+
export const pw_loop = koffi.struct("pw_loop", {
|
|
8
|
+
system: koffi.pointer(spa_system),
|
|
9
|
+
loop: koffi.pointer(spa_loop),
|
|
10
|
+
control: koffi.pointer(spa_loop_control),
|
|
11
|
+
utils: koffi.pointer(spa_loop_utils),
|
|
12
|
+
name: "const char*"
|
|
13
|
+
});
|
|
14
|
+
export const pw_loop_enter = pipewire.func("pw_loop_enter", "void", [koffi.pointer(pw_loop)]);
|
|
15
|
+
export const pw_loop_iterate = pipewire.func("pw_loop_iterate", "int", [koffi.pointer(pw_loop), "int"]);
|
|
16
|
+
export const pw_loop_leave = pipewire.func("pw_loop_leave", "void", [koffi.pointer(pw_loop)]);
|
|
17
|
+
//# sourceMappingURL=loop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop.js","sourceRoot":"","sources":["../../src/bindings/loop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAEpD,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;AACrD,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO;AAErE,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE;IAC3C,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;IACjC,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC7B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC;IACxC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC;IACpC,IAAI,EAAE,aAAa;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9F,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;AACxG,MAAM,CAAC,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export declare const pw_main_loop: import("koffi").TypeObject;
|
|
2
|
+
export declare const pw_main_loop_new: {
|
|
3
|
+
(...args: any[]): any;
|
|
4
|
+
async: (...args: any[]) => any;
|
|
5
|
+
info: {
|
|
6
|
+
name: string;
|
|
7
|
+
arguments: import("koffi").TypeObject[];
|
|
8
|
+
result: import("koffi").TypeObject;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
export declare const pw_main_loop_get_loop: {
|
|
12
|
+
(...args: any[]): any;
|
|
13
|
+
async: (...args: any[]) => any;
|
|
14
|
+
info: {
|
|
15
|
+
name: string;
|
|
16
|
+
arguments: import("koffi").TypeObject[];
|
|
17
|
+
result: import("koffi").TypeObject;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
export declare const pw_main_loop_run: {
|
|
21
|
+
(...args: any[]): any;
|
|
22
|
+
async: (...args: any[]) => any;
|
|
23
|
+
info: {
|
|
24
|
+
name: string;
|
|
25
|
+
arguments: import("koffi").TypeObject[];
|
|
26
|
+
result: import("koffi").TypeObject;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export declare const pw_main_loop_quit: {
|
|
30
|
+
(...args: any[]): any;
|
|
31
|
+
async: (...args: any[]) => any;
|
|
32
|
+
info: {
|
|
33
|
+
name: string;
|
|
34
|
+
arguments: import("koffi").TypeObject[];
|
|
35
|
+
result: import("koffi").TypeObject;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
export declare const pw_main_loop_destroy: {
|
|
39
|
+
(...args: any[]): any;
|
|
40
|
+
async: (...args: any[]) => any;
|
|
41
|
+
info: {
|
|
42
|
+
name: string;
|
|
43
|
+
arguments: import("koffi").TypeObject[];
|
|
44
|
+
result: import("koffi").TypeObject;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=main-loop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main-loop.d.ts","sourceRoot":"","sources":["../../src/bindings/main-loop.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,YAAY,4BAA+B,CAAC;AAEzD,eAAO,MAAM,gBAAgB;;;;;;;;CAE3B,CAAC;AACH,eAAO,MAAM,qBAAqB;;;;;;;;CAEhC,CAAC;AACH,eAAO,MAAM,gBAAgB;;;;;;;;CAA0E,CAAC;AACxG,eAAO,MAAM,iBAAiB;;;;;;;;CAA2E,CAAC;AAC1G,eAAO,MAAM,oBAAoB;;;;;;;;CAA+E,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import koffi from "koffi";
|
|
2
|
+
import { spa_dict } from "./dict.js";
|
|
3
|
+
import { pw_loop } from "./loop.js";
|
|
4
|
+
const pipewire = koffi.load("libpipewire-0.3.so.0");
|
|
5
|
+
export const pw_main_loop = koffi.opaque("pw_main_loop");
|
|
6
|
+
export const pw_main_loop_new = pipewire.func("pw_main_loop_new", koffi.pointer(pw_main_loop), [
|
|
7
|
+
koffi.pointer(spa_dict)
|
|
8
|
+
]);
|
|
9
|
+
export const pw_main_loop_get_loop = pipewire.func("pw_main_loop_get_loop", koffi.pointer(pw_loop), [
|
|
10
|
+
koffi.pointer(pw_main_loop)
|
|
11
|
+
]);
|
|
12
|
+
export const pw_main_loop_run = pipewire.func("pw_main_loop_run", "int", [koffi.pointer(pw_main_loop)]);
|
|
13
|
+
export const pw_main_loop_quit = pipewire.func("pw_main_loop_quit", "int", [koffi.pointer(pw_main_loop)]);
|
|
14
|
+
export const pw_main_loop_destroy = pipewire.func("pw_main_loop_destroy", "void", [koffi.pointer(pw_main_loop)]);
|
|
15
|
+
//# sourceMappingURL=main-loop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main-loop.js","sourceRoot":"","sources":["../../src/bindings/main-loop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAEpD,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;AAEzD,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;IAC3F,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;CAC1B,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC,IAAI,CAAC,uBAAuB,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;IAChG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC;CAC9B,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AACxG,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;AAC1G,MAAM,CAAC,MAAM,oBAAoB,GAAG,QAAQ,CAAC,IAAI,CAAC,sBAAsB,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
export declare const PW_VERSION_NODE = 3;
|
|
2
|
+
export declare const PW_VERSION_NODE_EVENTS = 0;
|
|
3
|
+
export declare const PW_NODE_CHANGE_MASK: {
|
|
4
|
+
INPUT_PORTS: number;
|
|
5
|
+
OUTPUT_PORTS: number;
|
|
6
|
+
STATE: number;
|
|
7
|
+
PROPS: number;
|
|
8
|
+
PARAMS: number;
|
|
9
|
+
};
|
|
10
|
+
export declare enum pw_node_state {
|
|
11
|
+
PW_NODE_STATE_ERROR = -1,
|
|
12
|
+
PW_NODE_STATE_CREATING = 0,
|
|
13
|
+
PW_NODE_STATE_SUSPENDED = 1,
|
|
14
|
+
PW_NODE_STATE_IDLE = 2,
|
|
15
|
+
PW_NODE_STATE_RUNNING = 3
|
|
16
|
+
}
|
|
17
|
+
export declare const pw_node: import("koffi").TypeObject;
|
|
18
|
+
export declare const pw_node_state_enum: import("koffi").TypeObject;
|
|
19
|
+
export declare const pw_node_info: import("koffi").TypeObject;
|
|
20
|
+
export declare const pw_node_events_info: import("koffi").TypeObject;
|
|
21
|
+
export declare const pw_node_events_param: import("koffi").TypeObject;
|
|
22
|
+
export declare const pw_node_events: import("koffi").TypeObject;
|
|
23
|
+
export declare const pw_node_add_listener: {
|
|
24
|
+
(...args: any[]): any;
|
|
25
|
+
async: (...args: any[]) => any;
|
|
26
|
+
info: {
|
|
27
|
+
name: string;
|
|
28
|
+
arguments: import("koffi").TypeObject[];
|
|
29
|
+
result: import("koffi").TypeObject;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export declare const pw_node_enum_params: {
|
|
33
|
+
(...args: any[]): any;
|
|
34
|
+
async: (...args: any[]) => any;
|
|
35
|
+
info: {
|
|
36
|
+
name: string;
|
|
37
|
+
arguments: import("koffi").TypeObject[];
|
|
38
|
+
result: import("koffi").TypeObject;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
export declare const pw_node_subscribe_params: {
|
|
42
|
+
(...args: any[]): any;
|
|
43
|
+
async: (...args: any[]) => any;
|
|
44
|
+
info: {
|
|
45
|
+
name: string;
|
|
46
|
+
arguments: import("koffi").TypeObject[];
|
|
47
|
+
result: import("koffi").TypeObject;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/bindings/node.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,eAAe,IAAI,CAAC;AACjC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,eAAO,MAAM,mBAAmB;IAC5B,WAAW;IACX,YAAY;IACZ,KAAK;IACL,KAAK;IACL,MAAM;CACT,CAAC;AAEF,oBAAY,aAAa;IACrB,mBAAmB,KAAK;IACxB,sBAAsB,IAAI;IAC1B,uBAAuB,IAAI;IAC3B,kBAAkB,IAAI;IACtB,qBAAqB,IAAI;CAC5B;AAED,eAAO,MAAM,OAAO,4BAA0B,CAAC;AAE/C,eAAO,MAAM,kBAAkB,4BAM7B,CAAC;AAEH,eAAO,MAAM,YAAY,4BAYvB,CAAC;AAEH,eAAO,MAAM,mBAAmB,4BAG9B,CAAC;AAEH,eAAO,MAAM,oBAAoB,4BAO/B,CAAC;AAEH,eAAO,MAAM,cAAc,4BAIzB,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;CAK/B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;CAO9B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;CAInC,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import koffi from "koffi";
|
|
2
|
+
import { spa_hook } from "./hook.js";
|
|
3
|
+
import { spa_pod } from "./pod.js";
|
|
4
|
+
import { spa_dict } from "./dict.js";
|
|
5
|
+
import { spa_param_info } from "./param.js";
|
|
6
|
+
const pipewire = koffi.load("libpipewire-0.3.so.0");
|
|
7
|
+
export const PW_VERSION_NODE = 3;
|
|
8
|
+
export const PW_VERSION_NODE_EVENTS = 0;
|
|
9
|
+
export const PW_NODE_CHANGE_MASK = {
|
|
10
|
+
INPUT_PORTS: 1 << 0,
|
|
11
|
+
OUTPUT_PORTS: 1 << 1,
|
|
12
|
+
STATE: 1 << 2,
|
|
13
|
+
PROPS: 1 << 3,
|
|
14
|
+
PARAMS: 1 << 4
|
|
15
|
+
};
|
|
16
|
+
export var pw_node_state;
|
|
17
|
+
(function (pw_node_state) {
|
|
18
|
+
pw_node_state[pw_node_state["PW_NODE_STATE_ERROR"] = -1] = "PW_NODE_STATE_ERROR";
|
|
19
|
+
pw_node_state[pw_node_state["PW_NODE_STATE_CREATING"] = 0] = "PW_NODE_STATE_CREATING";
|
|
20
|
+
pw_node_state[pw_node_state["PW_NODE_STATE_SUSPENDED"] = 1] = "PW_NODE_STATE_SUSPENDED";
|
|
21
|
+
pw_node_state[pw_node_state["PW_NODE_STATE_IDLE"] = 2] = "PW_NODE_STATE_IDLE";
|
|
22
|
+
pw_node_state[pw_node_state["PW_NODE_STATE_RUNNING"] = 3] = "PW_NODE_STATE_RUNNING";
|
|
23
|
+
})(pw_node_state || (pw_node_state = {}));
|
|
24
|
+
export const pw_node = koffi.opaque("pw_node");
|
|
25
|
+
export const pw_node_state_enum = koffi.enumeration("pw_node_state", {
|
|
26
|
+
PW_NODE_STATE_ERROR: -1,
|
|
27
|
+
PW_NODE_STATE_CREATING: 0,
|
|
28
|
+
PW_NODE_STATE_SUSPENDED: 1,
|
|
29
|
+
PW_NODE_STATE_IDLE: 2,
|
|
30
|
+
PW_NODE_STATE_RUNNING: 3
|
|
31
|
+
});
|
|
32
|
+
export const pw_node_info = koffi.struct("pw_node_info", {
|
|
33
|
+
id: "uint32_t",
|
|
34
|
+
max_input_ports: "uint32_t",
|
|
35
|
+
max_output_ports: "uint32_t",
|
|
36
|
+
change_mask: "uint64_t",
|
|
37
|
+
n_input_ports: "uint32_t",
|
|
38
|
+
n_output_ports: "uint32_t",
|
|
39
|
+
state: pw_node_state_enum,
|
|
40
|
+
error: "const char*",
|
|
41
|
+
props: koffi.pointer(spa_dict),
|
|
42
|
+
params: koffi.pointer(spa_param_info),
|
|
43
|
+
n_params: "uint32_t"
|
|
44
|
+
});
|
|
45
|
+
export const pw_node_events_info = koffi.proto("void", [
|
|
46
|
+
"void*", // data
|
|
47
|
+
koffi.pointer(pw_node_info) // info
|
|
48
|
+
]);
|
|
49
|
+
export const pw_node_events_param = koffi.proto("void", [
|
|
50
|
+
"void*", // data
|
|
51
|
+
"int", // seq
|
|
52
|
+
"uint32_t", // id
|
|
53
|
+
"uint32_t", // index
|
|
54
|
+
"uint32_t", // next
|
|
55
|
+
koffi.pointer(spa_pod) // param
|
|
56
|
+
]);
|
|
57
|
+
export const pw_node_events = koffi.struct("pw_node_events", {
|
|
58
|
+
version: "uint32_t",
|
|
59
|
+
info: koffi.pointer(pw_node_events_info),
|
|
60
|
+
param: koffi.pointer(pw_node_events_param)
|
|
61
|
+
});
|
|
62
|
+
export const pw_node_add_listener = pipewire.func("pw_node_add_listener", "int", [
|
|
63
|
+
koffi.pointer(pw_node), // object
|
|
64
|
+
koffi.pointer(spa_hook), // listener
|
|
65
|
+
koffi.pointer(pw_node_events), // events
|
|
66
|
+
"void*" // data
|
|
67
|
+
]);
|
|
68
|
+
export const pw_node_enum_params = pipewire.func("pw_node_enum_params", "int", [
|
|
69
|
+
koffi.pointer(pw_node), // object
|
|
70
|
+
"int", // seq
|
|
71
|
+
"uint32_t", // id
|
|
72
|
+
"uint32_t", // start
|
|
73
|
+
"uint32_t", // num
|
|
74
|
+
koffi.pointer(spa_pod) // filter
|
|
75
|
+
]);
|
|
76
|
+
export const pw_node_subscribe_params = pipewire.func("pw_node_subscribe_params", "int", [
|
|
77
|
+
koffi.pointer(pw_node), // object
|
|
78
|
+
"uint32_t*", // ids
|
|
79
|
+
"uint32_t" // n_ids
|
|
80
|
+
]);
|
|
81
|
+
//# sourceMappingURL=node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/bindings/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare const spa_param_info: import("koffi").TypeObject;
|
|
2
|
+
export declare enum spa_param_type {
|
|
3
|
+
SPA_PARAM_Invalid = 0,
|
|
4
|
+
SPA_PARAM_PropInfo = 1,
|
|
5
|
+
SPA_PARAM_Props = 2,
|
|
6
|
+
SPA_PARAM_EnumFormat = 3,
|
|
7
|
+
SPA_PARAM_Format = 4,
|
|
8
|
+
SPA_PARAM_Buffers = 5,
|
|
9
|
+
SPA_PARAM_Meta = 6,
|
|
10
|
+
SPA_PARAM_IO = 7,
|
|
11
|
+
SPA_PARAM_EnumProfile = 8,
|
|
12
|
+
SPA_PARAM_Profile = 9,
|
|
13
|
+
SPA_PARAM_EnumPortConfig = 10,
|
|
14
|
+
SPA_PARAM_PortConfig = 11,
|
|
15
|
+
SPA_PARAM_EnumRoute = 12,
|
|
16
|
+
SPA_PARAM_Route = 13,
|
|
17
|
+
SPA_PARAM_Control = 14,
|
|
18
|
+
SPA_PARAM_Latency = 15,
|
|
19
|
+
SPA_PARAM_ProcessLatency = 16,
|
|
20
|
+
SPA_PARAM_Tag = 17,
|
|
21
|
+
SPA_PARAM_PeerEnumFormat = 18,
|
|
22
|
+
SPA_PARAM_Capability = 19,
|
|
23
|
+
SPA_PARAM_PeerCapability = 20
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=param.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"param.d.ts","sourceRoot":"","sources":["../../src/bindings/param.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,4BAMzB,CAAC;AAEH,oBAAY,cAAc;IACtB,iBAAiB,IAAA;IACjB,kBAAkB,IAAA;IAClB,eAAe,IAAA;IACf,oBAAoB,IAAA;IACpB,gBAAgB,IAAA;IAChB,iBAAiB,IAAA;IACjB,cAAc,IAAA;IACd,YAAY,IAAA;IACZ,qBAAqB,IAAA;IACrB,iBAAiB,IAAA;IACjB,wBAAwB,KAAA;IACxB,oBAAoB,KAAA;IACpB,mBAAmB,KAAA;IACnB,eAAe,KAAA;IACf,iBAAiB,KAAA;IACjB,iBAAiB,KAAA;IACjB,wBAAwB,KAAA;IACxB,aAAa,KAAA;IACb,wBAAwB,KAAA;IACxB,oBAAoB,KAAA;IACpB,wBAAwB,KAAA;CAC3B"}
|