@phystack/hub-device 4.5.3-dev → 4.5.5-dev
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/dist/sysinfo/node.d.ts.map +1 -1
- package/dist/sysinfo/node.js +115 -168
- package/dist/sysinfo/node.js.map +1 -1
- package/dist/types/twin.types.d.ts +0 -15
- package/dist/types/twin.types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/sysinfo/node.ts +177 -230
- package/src/types/twin.types.ts +1 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/sysinfo/node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/sysinfo/node.ts"],"names":[],"mappings":"AAmWA,wBAAgB,wBAAwB,IAAI,MAAM,GAAG,SAAS,CA0B7D;AAOD,wBAAgB,gBAAgB,IAAI,MAAM,CAAC,UAAU,CAcpD;AAoaD,wBAAsB,oBAAoB,iBAmEzC;AAaD,eAAe,oBAAoB,CAAC"}
|
package/dist/sysinfo/node.js
CHANGED
|
@@ -30,20 +30,6 @@ const PULSEAUDIO_TIMEOUTS = {
|
|
|
30
30
|
LIST_DEVICES: 5000,
|
|
31
31
|
};
|
|
32
32
|
let pulseAudioServerPath;
|
|
33
|
-
function buildAudioDescription(name, formFactor, bus, vendor, isInput) {
|
|
34
|
-
const parts = [name];
|
|
35
|
-
if (formFactor === 'internal') {
|
|
36
|
-
parts.push(`(Built-in ${isInput ? 'Microphone' : 'Speaker'})`);
|
|
37
|
-
}
|
|
38
|
-
else if (formFactor) {
|
|
39
|
-
parts.push(`(${formFactor})`);
|
|
40
|
-
}
|
|
41
|
-
if (bus)
|
|
42
|
-
parts.push(`via ${bus.toUpperCase()}`);
|
|
43
|
-
if (vendor && !name.includes(vendor))
|
|
44
|
-
parts.push(`- ${vendor}`);
|
|
45
|
-
return parts.join(' ');
|
|
46
|
-
}
|
|
47
33
|
function parseAudioDevice(block, isInput) {
|
|
48
34
|
const lines = block.split('\n');
|
|
49
35
|
const device = {};
|
|
@@ -127,6 +113,12 @@ function parseAudioDevice(block, isInput) {
|
|
|
127
113
|
}
|
|
128
114
|
}
|
|
129
115
|
}
|
|
116
|
+
else if (trimmed.includes('device.product.name =')) {
|
|
117
|
+
const match = trimmed.match(/"([^"]+)"/);
|
|
118
|
+
if (match) {
|
|
119
|
+
device.productName = match[1];
|
|
120
|
+
}
|
|
121
|
+
}
|
|
130
122
|
else if (trimmed.includes('device.form_factor =')) {
|
|
131
123
|
const match = trimmed.match(/"([^"]+)"/);
|
|
132
124
|
if (match)
|
|
@@ -137,17 +129,6 @@ function parseAudioDevice(block, isInput) {
|
|
|
137
129
|
if (match)
|
|
138
130
|
device.bus = match[1];
|
|
139
131
|
}
|
|
140
|
-
else if (trimmed.includes('device.vendor.name =')) {
|
|
141
|
-
const match = trimmed.match(/"([^"]+)"/);
|
|
142
|
-
if (match && !device.description)
|
|
143
|
-
device.description = match[1];
|
|
144
|
-
}
|
|
145
|
-
else if (trimmed.includes('device.product.name =')) {
|
|
146
|
-
const match = trimmed.match(/"([^"]+)"/);
|
|
147
|
-
if (match) {
|
|
148
|
-
device.productName = match[1];
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
132
|
}
|
|
152
133
|
if (isInput && device.identifier?.includes('.monitor')) {
|
|
153
134
|
return null;
|
|
@@ -157,93 +138,131 @@ function parseAudioDevice(block, isInput) {
|
|
|
157
138
|
if (ports.length > 0) {
|
|
158
139
|
device.availablePorts = ports;
|
|
159
140
|
console.log(`[Audio] Device ${device.identifier} has ${ports.length} ports, active: ${device.activePort}`);
|
|
160
|
-
const availablePorts = ports.filter(p => p.available === true);
|
|
161
|
-
device.available = availablePorts.length > 0;
|
|
162
141
|
}
|
|
163
142
|
else {
|
|
164
143
|
console.log(`[Audio] Device ${device.identifier} has NO ports detected`);
|
|
165
|
-
device.available = false;
|
|
166
144
|
}
|
|
167
|
-
const
|
|
145
|
+
const availablePorts = ports.filter(p => p.available === true);
|
|
146
|
+
const deviceAvailable = availablePorts.length > 0;
|
|
147
|
+
let cardMatch = device.identifier?.match(/^([^_]+)_(output|input|sink|source)\.([^.]+(?:\.[^.]+)*)\.(.+)$/);
|
|
168
148
|
if (cardMatch) {
|
|
169
|
-
|
|
170
|
-
const
|
|
171
|
-
device.
|
|
149
|
+
const prefix = cardMatch[1];
|
|
150
|
+
const cardId = cardMatch[3];
|
|
151
|
+
device.cardName = `${prefix}_card.${cardId}`;
|
|
172
152
|
}
|
|
173
153
|
else {
|
|
174
|
-
|
|
175
|
-
if (
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
const
|
|
187
|
-
|
|
188
|
-
|
|
154
|
+
cardMatch = device.identifier?.match(/^([^_]+)_(output|input|sink|source)\.(.+)$/);
|
|
155
|
+
if (cardMatch) {
|
|
156
|
+
const prefix = cardMatch[1];
|
|
157
|
+
const cardId = cardMatch[3];
|
|
158
|
+
device.cardName = `${prefix}_card.${cardId}`;
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
const altMatch = device.identifier?.match(/^([^_]+)_(output|input|sink|source)_(\d+)_(\d+)$/);
|
|
162
|
+
if (altMatch) {
|
|
163
|
+
const cardNumber = altMatch[3];
|
|
164
|
+
try {
|
|
165
|
+
const env = getPulseAudioEnv();
|
|
166
|
+
const cardsOutput = (0, child_process_1.execSync)('pactl list cards short', {
|
|
167
|
+
encoding: 'utf-8',
|
|
168
|
+
timeout: 2000,
|
|
169
|
+
stdio: 'pipe',
|
|
170
|
+
env,
|
|
171
|
+
});
|
|
172
|
+
const cardLine = cardsOutput.split('\n').find(line => line.includes(`card${cardNumber}`));
|
|
173
|
+
if (cardLine) {
|
|
174
|
+
const cardNameMatch = cardLine.match(/([^_\s]+_card\.[^\s]+)/);
|
|
175
|
+
if (cardNameMatch) {
|
|
176
|
+
device.cardName = cardNameMatch[1];
|
|
177
|
+
}
|
|
189
178
|
}
|
|
190
179
|
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
}
|
|
191
182
|
}
|
|
192
|
-
|
|
183
|
+
else {
|
|
184
|
+
const cardNumber = device.cardNumber;
|
|
185
|
+
if (cardNumber !== undefined) {
|
|
186
|
+
try {
|
|
187
|
+
const env = getPulseAudioEnv();
|
|
188
|
+
const cardsOutput = (0, child_process_1.execSync)('pactl list cards short', {
|
|
189
|
+
encoding: 'utf-8',
|
|
190
|
+
timeout: 2000,
|
|
191
|
+
stdio: 'pipe',
|
|
192
|
+
env,
|
|
193
|
+
});
|
|
194
|
+
const cardLine = cardsOutput
|
|
195
|
+
.split('\n')
|
|
196
|
+
.find(line => line.includes(`card${cardNumber}`));
|
|
197
|
+
if (cardLine) {
|
|
198
|
+
const cardNameMatch = cardLine.match(/([^_\s]+_card\.[^\s]+)/);
|
|
199
|
+
if (cardNameMatch) {
|
|
200
|
+
device.cardName = cardNameMatch[1];
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
catch (error) {
|
|
205
|
+
}
|
|
206
|
+
}
|
|
193
207
|
}
|
|
194
208
|
}
|
|
195
209
|
}
|
|
196
|
-
|
|
197
|
-
device.description = buildAudioDescription(device.displayName, device.formFactor || '', device.bus || '', device.description || '', isInput);
|
|
198
|
-
}
|
|
199
|
-
device.label = createDeviceLabel(device, ports, isInput);
|
|
210
|
+
device.label = createDeviceLabel(device, ports, isInput, device.formFactor, device.bus, false, deviceAvailable, device.activePort);
|
|
200
211
|
return device;
|
|
201
212
|
}
|
|
202
|
-
function createDeviceLabel(device, ports, isInput) {
|
|
213
|
+
function createDeviceLabel(device, ports, isInput, formFactor, bus, isDefault, available, activePort) {
|
|
203
214
|
const productName = device.productName;
|
|
204
|
-
|
|
205
|
-
const activePortInfo = ports.find(p => p.name === activePort);
|
|
215
|
+
let baseLabel = '';
|
|
216
|
+
const activePortInfo = activePort ? ports.find(p => p.name === activePort) : undefined;
|
|
206
217
|
if (productName) {
|
|
207
|
-
|
|
218
|
+
baseLabel = `${productName} (${isInput ? 'Microphone' : 'Speaker'})`;
|
|
208
219
|
}
|
|
209
|
-
if (activePortInfo && activePortInfo.description) {
|
|
220
|
+
else if (activePortInfo && activePortInfo.description) {
|
|
210
221
|
const portDesc = activePortInfo.description;
|
|
211
222
|
if (portDesc.toLowerCase().includes('headphones')) {
|
|
212
|
-
|
|
223
|
+
baseLabel = 'Headphones';
|
|
213
224
|
}
|
|
214
225
|
else if (portDesc.toLowerCase().includes('hdmi') ||
|
|
215
226
|
portDesc.toLowerCase().includes('displayport')) {
|
|
216
|
-
|
|
227
|
+
baseLabel = `HDMI Display`;
|
|
217
228
|
}
|
|
218
229
|
else if (portDesc.toLowerCase().includes('microphone') ||
|
|
219
230
|
portDesc.toLowerCase().includes('mic')) {
|
|
220
|
-
|
|
231
|
+
baseLabel = 'Microphone';
|
|
221
232
|
}
|
|
222
233
|
else if (portDesc.toLowerCase().includes('line')) {
|
|
223
|
-
|
|
234
|
+
baseLabel = `Line ${isInput ? 'In' : 'Out'}`;
|
|
224
235
|
}
|
|
225
236
|
else if (portDesc.toLowerCase().includes('speaker')) {
|
|
226
|
-
|
|
237
|
+
baseLabel = 'Speakers';
|
|
227
238
|
}
|
|
228
239
|
else {
|
|
229
|
-
|
|
240
|
+
baseLabel = `${portDesc} (${isInput ? 'Input' : 'Output'})`;
|
|
230
241
|
}
|
|
231
242
|
}
|
|
232
|
-
if (device.
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
243
|
+
else if (device.displayName) {
|
|
244
|
+
baseLabel = `${device.displayName} (${isInput ? 'Input' : 'Output'})`;
|
|
245
|
+
}
|
|
246
|
+
else {
|
|
247
|
+
baseLabel = device.identifier || 'Unknown Audio Device';
|
|
248
|
+
}
|
|
249
|
+
const statusParts = [];
|
|
250
|
+
if (isDefault) {
|
|
251
|
+
statusParts.push('Default');
|
|
252
|
+
}
|
|
253
|
+
if (available !== undefined) {
|
|
254
|
+
statusParts.push(available ? 'Available' : 'Unavailable');
|
|
255
|
+
}
|
|
256
|
+
if (formFactor && formFactor !== 'internal') {
|
|
257
|
+
statusParts.push(formFactor.charAt(0).toUpperCase() + formFactor.slice(1));
|
|
258
|
+
}
|
|
259
|
+
if (bus && bus.toLowerCase() !== 'pci') {
|
|
260
|
+
statusParts.push(bus.toUpperCase());
|
|
242
261
|
}
|
|
243
|
-
if (
|
|
244
|
-
return `${
|
|
262
|
+
if (statusParts.length > 0) {
|
|
263
|
+
return `${baseLabel} (${statusParts.join(', ')})`;
|
|
245
264
|
}
|
|
246
|
-
return
|
|
265
|
+
return baseLabel;
|
|
247
266
|
}
|
|
248
267
|
function discoverPulseAudioSocket() {
|
|
249
268
|
try {
|
|
@@ -500,85 +519,6 @@ function getDefaultDevices() {
|
|
|
500
519
|
return {};
|
|
501
520
|
}
|
|
502
521
|
}
|
|
503
|
-
function parseCardProfiles(cardBlock) {
|
|
504
|
-
const profiles = [];
|
|
505
|
-
const lines = cardBlock.split('\n');
|
|
506
|
-
let inProfilesSection = false;
|
|
507
|
-
const portProfileMap = new Map();
|
|
508
|
-
let inPortsSection = false;
|
|
509
|
-
let currentPortName = '';
|
|
510
|
-
for (const line of lines) {
|
|
511
|
-
const trimmed = line.trim();
|
|
512
|
-
if (trimmed.startsWith('Ports:')) {
|
|
513
|
-
inPortsSection = true;
|
|
514
|
-
continue;
|
|
515
|
-
}
|
|
516
|
-
if (inPortsSection && trimmed.startsWith('Part of profile(s):')) {
|
|
517
|
-
const profileList = trimmed.replace('Part of profile(s):', '').trim();
|
|
518
|
-
if (currentPortName) {
|
|
519
|
-
portProfileMap.set(currentPortName, profileList.split(',').map(p => p.trim()));
|
|
520
|
-
}
|
|
521
|
-
continue;
|
|
522
|
-
}
|
|
523
|
-
if (inPortsSection) {
|
|
524
|
-
if (trimmed.match(/^[a-z]+-[a-z]+-[^:]+:/)) {
|
|
525
|
-
currentPortName = trimmed.split(':')[0].trim();
|
|
526
|
-
}
|
|
527
|
-
else if (trimmed.startsWith('Active Profile:') || trimmed.match(/^[A-Z]/)) {
|
|
528
|
-
inPortsSection = false;
|
|
529
|
-
}
|
|
530
|
-
}
|
|
531
|
-
if (trimmed.startsWith('Profiles:')) {
|
|
532
|
-
inProfilesSection = true;
|
|
533
|
-
continue;
|
|
534
|
-
}
|
|
535
|
-
if (inProfilesSection) {
|
|
536
|
-
if (trimmed.startsWith('Active Profile:') || trimmed.startsWith('Ports:')) {
|
|
537
|
-
inProfilesSection = false;
|
|
538
|
-
continue;
|
|
539
|
-
}
|
|
540
|
-
const profileMatch = trimmed.match(/^([^:]+):\s*(.+?)\s*\([^)]+available:\s*(yes|no)\)/);
|
|
541
|
-
if (profileMatch) {
|
|
542
|
-
const profileName = profileMatch[1].trim();
|
|
543
|
-
const description = profileMatch[2].trim();
|
|
544
|
-
const available = profileMatch[3].trim() === 'yes';
|
|
545
|
-
const ports = [];
|
|
546
|
-
for (const [portName, profileList] of portProfileMap.entries()) {
|
|
547
|
-
if (profileList.includes(profileName)) {
|
|
548
|
-
ports.push(portName);
|
|
549
|
-
}
|
|
550
|
-
}
|
|
551
|
-
profiles.push({
|
|
552
|
-
profile: profileName,
|
|
553
|
-
available,
|
|
554
|
-
description,
|
|
555
|
-
ports,
|
|
556
|
-
});
|
|
557
|
-
}
|
|
558
|
-
}
|
|
559
|
-
}
|
|
560
|
-
return profiles;
|
|
561
|
-
}
|
|
562
|
-
function getCardProfiles(cardName) {
|
|
563
|
-
try {
|
|
564
|
-
const env = getPulseAudioEnv();
|
|
565
|
-
const cardsOutput = (0, child_process_1.execSync)(PULSEAUDIO_COMMANDS.LIST_CARDS, {
|
|
566
|
-
encoding: 'utf-8',
|
|
567
|
-
timeout: PULSEAUDIO_TIMEOUTS.LIST_DEVICES,
|
|
568
|
-
env,
|
|
569
|
-
});
|
|
570
|
-
const cardBlocks = cardsOutput.split(/^Card #/m);
|
|
571
|
-
for (const block of cardBlocks.slice(1)) {
|
|
572
|
-
if (block.includes(`Name: ${cardName}`)) {
|
|
573
|
-
return parseCardProfiles(block);
|
|
574
|
-
}
|
|
575
|
-
}
|
|
576
|
-
}
|
|
577
|
-
catch (error) {
|
|
578
|
-
console.log(`Failed to get profiles for card ${cardName}:`, error);
|
|
579
|
-
}
|
|
580
|
-
return [];
|
|
581
|
-
}
|
|
582
522
|
function getAudioDevices() {
|
|
583
523
|
if (!startPulseAudio()) {
|
|
584
524
|
console.error('Audio detection failed: PulseAudio unavailable');
|
|
@@ -588,7 +528,6 @@ function getAudioDevices() {
|
|
|
588
528
|
console.log(`Default sink: ${defaultSink}, Default source: ${defaultSource}`);
|
|
589
529
|
const outputs = [];
|
|
590
530
|
const inputs = [];
|
|
591
|
-
const cardProfilesCache = new Map();
|
|
592
531
|
try {
|
|
593
532
|
const env = getPulseAudioEnv();
|
|
594
533
|
const sinksOutput = (0, child_process_1.execSync)(PULSEAUDIO_COMMANDS.LIST_SINKS, {
|
|
@@ -602,12 +541,16 @@ function getAudioDevices() {
|
|
|
602
541
|
.forEach(block => {
|
|
603
542
|
const device = parseAudioDevice(block, false);
|
|
604
543
|
if (device) {
|
|
605
|
-
|
|
606
|
-
if (
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
544
|
+
const isDefault = device.identifier === defaultSink;
|
|
545
|
+
if (isDefault && device.label) {
|
|
546
|
+
if (!device.label.includes('Default')) {
|
|
547
|
+
if (device.label.includes('(')) {
|
|
548
|
+
device.label = device.label.replace(')', ', Default)');
|
|
549
|
+
}
|
|
550
|
+
else {
|
|
551
|
+
device.label = `${device.label} (Default)`;
|
|
552
|
+
}
|
|
553
|
+
}
|
|
611
554
|
}
|
|
612
555
|
outputs.push(device);
|
|
613
556
|
}
|
|
@@ -630,12 +573,16 @@ function getAudioDevices() {
|
|
|
630
573
|
.forEach(block => {
|
|
631
574
|
const device = parseAudioDevice(block, true);
|
|
632
575
|
if (device) {
|
|
633
|
-
|
|
634
|
-
if (
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
576
|
+
const isDefault = device.identifier === defaultSource;
|
|
577
|
+
if (isDefault && device.label) {
|
|
578
|
+
if (!device.label.includes('Default')) {
|
|
579
|
+
if (device.label.includes('(')) {
|
|
580
|
+
device.label = device.label.replace(')', ', Default)');
|
|
581
|
+
}
|
|
582
|
+
else {
|
|
583
|
+
device.label = `${device.label} (Default)`;
|
|
584
|
+
}
|
|
585
|
+
}
|
|
639
586
|
}
|
|
640
587
|
inputs.push(device);
|
|
641
588
|
}
|
package/dist/sysinfo/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/sysinfo/node.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/sysinfo/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -309,28 +309,13 @@ export interface AudioPort {
|
|
|
309
309
|
priority?: number;
|
|
310
310
|
available?: boolean;
|
|
311
311
|
}
|
|
312
|
-
export interface AudioProfile {
|
|
313
|
-
profile: string;
|
|
314
|
-
available: boolean;
|
|
315
|
-
description: string;
|
|
316
|
-
ports: string[];
|
|
317
|
-
}
|
|
318
312
|
export interface AudioDevice {
|
|
319
313
|
identifier: string;
|
|
320
314
|
displayName: string;
|
|
321
|
-
description?: string;
|
|
322
|
-
formFactor?: string;
|
|
323
|
-
bus?: string;
|
|
324
315
|
volume?: number;
|
|
325
316
|
muted?: boolean;
|
|
326
|
-
isDefault?: boolean;
|
|
327
|
-
activePort?: string;
|
|
328
317
|
availablePorts?: AudioPort[];
|
|
329
|
-
cardName?: string;
|
|
330
|
-
cardProfile?: string;
|
|
331
318
|
label?: string;
|
|
332
|
-
available?: boolean;
|
|
333
|
-
availableProfiles?: AudioProfile[];
|
|
334
319
|
}
|
|
335
320
|
export interface AudioDevices {
|
|
336
321
|
outputs: AudioDevice[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"twin.types.d.ts","sourceRoot":"","sources":["../../src/types/twin.types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"twin.types.d.ts","sourceRoot":"","sources":["../../src/types/twin.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAElC,oBAAY,YAAY;IACtB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,UAAU,eAAe;CAC1B;AAED,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,aAAa,kBAAkB;CAChC;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,UAAU,cAAc;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,KAAK;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,GAAG;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,OAAO,CAAC;IACxB,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,IAAI,EAAE,QAAQ,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,OAAO,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;CACb;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,MAAM;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,QAAQ,EAAE,CAAC;IACf,EAAE,EAAE;QACF,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,GAAG,EAAE;QACH,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,IAAI,CAAC;IACX,GAAG,EAAE,GAAG,CAAC;IACT,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,eAAe,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC;IACzB,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,SAAS,EAAE,SAAS,EAAE,CAAC;IACvB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,IAAI,EAAE,IAAI,CAAC;IACX,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,GAAG,EAAE,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,IAAI,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,4BAA4B;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,UAAU,qBAAqB;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,gBAAiB,SAAQ,QAAQ;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,YAAY,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,mBAAmB,EAAE,IAAI,CAAC;IAC1B,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mCAAmC;IAClD,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5C,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iCAAiC;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5C,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kCAAkC;IACjD,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,wBAAwB;IACvC,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,gCAAgC;IAC/C,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;CACd;AAED,MAAM,WAAW,mCAAmC;IAClD,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,kBAAmB,SAAQ,gBAAgB;IACnD,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;IAC1B,UAAU,EAAE;QACV,OAAO,EAAE,2BAA2B,CAAC;QACrC,QAAQ,EAAE,4BAA4B,CAAC;KACxC,CAAC;CACH;AAED,UAAU,gBAAiB,SAAQ,gBAAgB;IACjD,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;IACxB,UAAU,EAAE;QACV,OAAO,EAAE,yBAAyB,CAAC;QACnC,QAAQ,EAAE,0BAA0B,CAAC;KACtC,CAAC;CACH;AAED,UAAU,iBAAkB,SAAQ,gBAAgB;IAClD,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC;IACzB,UAAU,EAAE;QACV,OAAO,EAAE,0BAA0B,CAAC;QACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC/B,CAAC;CACH;AAED,UAAU,eAAgB,SAAQ,gBAAgB;IAChD,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IACvB,UAAU,EAAE;QACV,OAAO,EAAE,wBAAwB,CAAC;QAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC/B,CAAC;CACH;AAED,UAAU,kBAAmB,SAAQ,gBAAgB;IACnD,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;IAC1B,UAAU,EAAE;QACV,OAAO,EAAE,2BAA2B,CAAC;QACrC,QAAQ,EAAE,4BAA4B,CAAC;KACxC,CAAC;CACH;AAED,MAAM,MAAM,YAAY,GACtB,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,kBAAkB,CAAC;AAErB,UAAU,gBAAgB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,mBAAmB,EAAE,IAAI,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;IAC1B,UAAU,EAAE;QACV,QAAQ,EAAE,4BAA4B,CAAC;QACvC,OAAO,EAAE,mCAAmC,CAAC;KAC9C,CAAC;CACH;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;IACxB,UAAU,EAAE;QACV,QAAQ,EAAE,0BAA0B,CAAC;QACrC,OAAO,EAAE,iCAAiC,CAAC;KAC5C,CAAC;CACH;AAED,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACzD,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC;IACzB,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,OAAO,EAAE,kCAAkC,CAAC;KAC7C,CAAC;CACH;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;IACvB,UAAU,EAAE;QACV,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,OAAO,EAAE,gCAAgC,CAAC;KAC3C,CAAC;CACH;AAED,MAAM,WAAW,kBAAmB,SAAQ,gBAAgB;IAC1D,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;IAC1B,UAAU,EAAE;QACV,QAAQ,EAAE,4BAA4B,CAAC;QACvC,OAAO,EAAE,mCAAmC,CAAC;KAC9C,CAAC;CACH;AAED,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,IAAI,EAAE,YAAY,CAAC,UAAU,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE;QACV,QAAQ,EAAE,gCAAgC,CAAC;QAC3C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC9B,CAAC;CACH;AAED,MAAM,MAAM,YAAY,GACtB,kBAAkB,GAClB,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,sBAAsB,CAAC;AAEzB,MAAM,MAAM,6BAA6B,GACvC,mCAAmC,GACnC,mCAAmC,GACnC,iCAAiC,GACjC,kCAAkC,GAClC,gCAAgC,CAAC;AAEnC,UAAU,sBAAsB;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB;IACtE,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;IAC1B,UAAU,EAAE;QACV,OAAO,EAAE,2BAA2B,CAAC;KACtC,CAAC;CACH;AAED,MAAM,WAAW,wBAAyB,SAAQ,sBAAsB;IACtE,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC;IAC1B,UAAU,EAAE;QACV,OAAO,EAAE,2BAA2B,CAAC;KACtC,CAAC;CACH;AAED,MAAM,WAAW,sBAAuB,SAAQ,sBAAsB;IACpE,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;IACxB,UAAU,EAAE;QACV,OAAO,EAAE,yBAAyB,CAAC;KACpC,CAAC;CACH;AAED,MAAM,MAAM,kBAAkB,GAC5B,wBAAwB,GACxB,wBAAwB,GACxB,sBAAsB,CAAC;AAEzB,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,8BAA8B;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,8BAA8B,GACxC,0BAA0B,GAC1B,4BAA4B,GAC5B,4BAA4B,CAAC;AAE/B,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;CACd;AAED,MAAM,WAAW,wCAAwC;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wCAAwC;IACvD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,mBAAmB,CAAC,EAAE,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE;QACX,QAAQ,CAAC,EAAE,4BAA4B,CAAC;QACxC,OAAO,CAAC,EAAE,wCAAwC,CAAC;KACpD,CAAC;CACH;AAED,MAAM,MAAM,6BAA6B,GACvC,wCAAwC,GACxC,wCAAwC,CAAC;AAE3C,MAAM,WAAW,0BAA0B;IACzC,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,mBAAmB,CAAC,EAAE,IAAI,CAAC;IAC3B,UAAU,CAAC,EAAE;QACX,QAAQ,CAAC,EAAE,8BAA8B,CAAC;QAC1C,OAAO,CAAC,EAAE,6BAA6B,CAAC;KACzC,CAAC;CACH;AAED,MAAM,MAAM,kBAAkB,GAAG,wBAAwB,GAAG,0BAA0B,CAAC;AAGvF,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,QAAQ,EAAE,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,gCAAgC;IAC/C,SAAS,CAAC,EAAE;QACV,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,IAAI,CAAC;KACjB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,SAAS,EAAE,OAAO,CAAC;QACnB,aAAa,CAAC,EAAE,IAAI,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAChC,CAAC;CACH"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@phystack/hub-device",
|
|
3
|
-
"version": "4.5.
|
|
3
|
+
"version": "4.5.5-dev",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
"format:check": "prettier --check \"src/**/*.{ts,js,json,md}\""
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@phystack/axios-proxy": "4.5.
|
|
16
|
-
"@phystack/socket.io-proxy": "4.5.
|
|
15
|
+
"@phystack/axios-proxy": "4.5.5-dev",
|
|
16
|
+
"@phystack/socket.io-proxy": "4.5.5-dev",
|
|
17
17
|
"async-mutex": "^0.5.0",
|
|
18
18
|
"axios-retry": "^4.4.1",
|
|
19
19
|
"bufferutil": "^4.0.8",
|
|
@@ -35,5 +35,5 @@
|
|
|
35
35
|
},
|
|
36
36
|
"test": "react-scripts test",
|
|
37
37
|
"test:coverage": "npm run test -- --coverage --watchAll=false",
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "291f89572fb882863a8a3f846d731bd003d8ceab"
|
|
39
39
|
}
|
package/src/sysinfo/node.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import si from 'systeminformation';
|
|
2
2
|
import { execSync } from 'child_process';
|
|
3
|
-
import { AudioDevice, AudioDevices, AudioPort
|
|
3
|
+
import { AudioDevice, AudioDevices, AudioPort } from '../types/twin.types';
|
|
4
4
|
|
|
5
5
|
// ============================================================================
|
|
6
6
|
// PULSEAUDIO COMMANDS
|
|
@@ -33,30 +33,6 @@ const PULSEAUDIO_TIMEOUTS = {
|
|
|
33
33
|
// Store discovered PulseAudio server socket path
|
|
34
34
|
let pulseAudioServerPath: string | undefined;
|
|
35
35
|
|
|
36
|
-
/**
|
|
37
|
-
* Build audio device description
|
|
38
|
-
*/
|
|
39
|
-
function buildAudioDescription(
|
|
40
|
-
name: string,
|
|
41
|
-
formFactor: string,
|
|
42
|
-
bus: string,
|
|
43
|
-
vendor: string,
|
|
44
|
-
isInput: boolean
|
|
45
|
-
): string {
|
|
46
|
-
const parts: string[] = [name];
|
|
47
|
-
|
|
48
|
-
if (formFactor === 'internal') {
|
|
49
|
-
parts.push(`(Built-in ${isInput ? 'Microphone' : 'Speaker'})`);
|
|
50
|
-
} else if (formFactor) {
|
|
51
|
-
parts.push(`(${formFactor})`);
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
if (bus) parts.push(`via ${bus.toUpperCase()}`);
|
|
55
|
-
if (vendor && !name.includes(vendor)) parts.push(`- ${vendor}`);
|
|
56
|
-
|
|
57
|
-
return parts.join(' ');
|
|
58
|
-
}
|
|
59
|
-
|
|
60
36
|
/**
|
|
61
37
|
* Parse PulseAudio device block and extract metadata
|
|
62
38
|
*/
|
|
@@ -92,8 +68,8 @@ function parseAudioDevice(block: string, isInput: boolean): AudioDevice | null {
|
|
|
92
68
|
} else if (trimmed.startsWith('Mute:')) {
|
|
93
69
|
device.muted = trimmed.toLowerCase().includes('yes');
|
|
94
70
|
} else if (trimmed.startsWith('Active Port:')) {
|
|
95
|
-
device.activePort = trimmed.split('Active Port:')[1].trim();
|
|
96
|
-
console.log(`[Audio] Found active port: ${device.activePort}`);
|
|
71
|
+
(device as any).activePort = trimmed.split('Active Port:')[1].trim();
|
|
72
|
+
console.log(`[Audio] Found active port: ${(device as any).activePort}`);
|
|
97
73
|
} else if (trimmed.startsWith('Ports:')) {
|
|
98
74
|
inPortsSection = true;
|
|
99
75
|
console.log(`[Audio] Entering ports section for device`);
|
|
@@ -145,21 +121,18 @@ function parseAudioDevice(block: string, isInput: boolean): AudioDevice | null {
|
|
|
145
121
|
ports.push(port);
|
|
146
122
|
}
|
|
147
123
|
}
|
|
148
|
-
} else if (trimmed.includes('device.form_factor =')) {
|
|
149
|
-
const match = trimmed.match(/"([^"]+)"/);
|
|
150
|
-
if (match) device.formFactor = match[1];
|
|
151
|
-
} else if (trimmed.includes('device.bus =')) {
|
|
152
|
-
const match = trimmed.match(/"([^"]+)"/);
|
|
153
|
-
if (match) device.bus = match[1];
|
|
154
|
-
} else if (trimmed.includes('device.vendor.name =')) {
|
|
155
|
-
const match = trimmed.match(/"([^"]+)"/);
|
|
156
|
-
if (match && !device.description) device.description = match[1];
|
|
157
124
|
} else if (trimmed.includes('device.product.name =')) {
|
|
158
125
|
// Extract product name (e.g., "LG ULTRAFINE" for HDMI displays)
|
|
159
126
|
const match = trimmed.match(/"([^"]+)"/);
|
|
160
127
|
if (match) {
|
|
161
128
|
(device as any).productName = match[1];
|
|
162
129
|
}
|
|
130
|
+
} else if (trimmed.includes('device.form_factor =')) {
|
|
131
|
+
const match = trimmed.match(/"([^"]+)"/);
|
|
132
|
+
if (match) (device as any).formFactor = match[1];
|
|
133
|
+
} else if (trimmed.includes('device.bus =')) {
|
|
134
|
+
const match = trimmed.match(/"([^"]+)"/);
|
|
135
|
+
if (match) (device as any).bus = match[1];
|
|
163
136
|
}
|
|
164
137
|
}
|
|
165
138
|
|
|
@@ -174,131 +147,205 @@ function parseAudioDevice(block: string, isInput: boolean): AudioDevice | null {
|
|
|
174
147
|
if (ports.length > 0) {
|
|
175
148
|
device.availablePorts = ports;
|
|
176
149
|
console.log(
|
|
177
|
-
`[Audio] Device ${device.identifier} has ${ports.length} ports, active: ${device.activePort}`
|
|
150
|
+
`[Audio] Device ${device.identifier} has ${ports.length} ports, active: ${(device as any).activePort}`
|
|
178
151
|
);
|
|
179
|
-
|
|
180
|
-
// Determine overall device availability (true if at least one port is available)
|
|
181
|
-
const availablePorts = ports.filter(p => p.available === true);
|
|
182
|
-
device.available = availablePorts.length > 0;
|
|
183
152
|
} else {
|
|
184
153
|
console.log(`[Audio] Device ${device.identifier} has NO ports detected`);
|
|
185
|
-
device.available = false;
|
|
186
154
|
}
|
|
187
155
|
|
|
156
|
+
// Determine overall device availability (true if at least one port is available)
|
|
157
|
+
const availablePorts = ports.filter(p => p.available === true);
|
|
158
|
+
const deviceAvailable = availablePorts.length > 0;
|
|
159
|
+
|
|
188
160
|
// Extract card information from device identifier
|
|
189
|
-
// Format: "alsa_output.pci-0000_00_1f.3.analog-stereo"
|
|
190
|
-
|
|
161
|
+
// Format 1: "alsa_output.pci-0000_00_1f.3.analog-stereo" (standard PulseAudio ALSA format)
|
|
162
|
+
// Format 2: "bluez_sink.XX_XX_XX_XX_XX_XX" (Bluetooth - no profile suffix)
|
|
163
|
+
// Format 3: "alsa_output.usb-046d_08d9-01.analog-stereo" (USB audio)
|
|
164
|
+
// Format 4: "alsa_output_0_3" (manually created sinks)
|
|
165
|
+
//
|
|
166
|
+
// Generic pattern: {prefix}_{type}.{card_id}[.{profile}] or {prefix}_{type}_{card}_{device}
|
|
167
|
+
// Where prefix can be: alsa, bluez, or other PulseAudio modules
|
|
168
|
+
// Note: Some devices (like Bluetooth) may not have a profile suffix
|
|
169
|
+
|
|
170
|
+
// Try standard format with profile: {prefix}_{type}.{card_id}.{profile}
|
|
171
|
+
let cardMatch = device.identifier?.match(
|
|
172
|
+
/^([^_]+)_(output|input|sink|source)\.([^.]+(?:\.[^.]+)*)\.(.+)$/
|
|
173
|
+
);
|
|
191
174
|
if (cardMatch) {
|
|
192
|
-
|
|
193
|
-
const
|
|
194
|
-
|
|
175
|
+
const prefix = cardMatch[1]; // e.g., "alsa", "bluez"
|
|
176
|
+
const cardId = cardMatch[3]; // e.g., "pci-0000_00_1f.3", "usb-046d_08d9-01", "XX_XX_XX_XX_XX_XX"
|
|
177
|
+
// Card name is extracted but not stored (used internally for label generation)
|
|
178
|
+
(device as any).cardName = `${prefix}_card.${cardId}`;
|
|
195
179
|
} else {
|
|
196
|
-
//
|
|
197
|
-
|
|
198
|
-
if (
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
const
|
|
211
|
-
|
|
212
|
-
|
|
180
|
+
// Try format without profile: {prefix}_{type}.{card_id} (e.g., Bluetooth)
|
|
181
|
+
cardMatch = device.identifier?.match(/^([^_]+)_(output|input|sink|source)\.(.+)$/);
|
|
182
|
+
if (cardMatch) {
|
|
183
|
+
const prefix = cardMatch[1]; // e.g., "bluez"
|
|
184
|
+
const cardId = cardMatch[3]; // e.g., "XX_XX_XX_XX_XX_XX"
|
|
185
|
+
// Card name is extracted but not stored (used internally for label generation)
|
|
186
|
+
(device as any).cardName = `${prefix}_card.${cardId}`;
|
|
187
|
+
} else {
|
|
188
|
+
// Fallback: Try to extract card number from identifier format "alsa_output_0_3"
|
|
189
|
+
const altMatch = device.identifier?.match(/^([^_]+)_(output|input|sink|source)_(\d+)_(\d+)$/);
|
|
190
|
+
if (altMatch) {
|
|
191
|
+
const cardNumber = altMatch[3];
|
|
192
|
+
// Try to find card name from pactl list cards (supports any card type)
|
|
193
|
+
try {
|
|
194
|
+
const env = getPulseAudioEnv();
|
|
195
|
+
const cardsOutput = execSync('pactl list cards short', {
|
|
196
|
+
encoding: 'utf-8',
|
|
197
|
+
timeout: 2000,
|
|
198
|
+
stdio: 'pipe',
|
|
199
|
+
env,
|
|
200
|
+
});
|
|
201
|
+
const cardLine = cardsOutput.split('\n').find(line => line.includes(`card${cardNumber}`));
|
|
202
|
+
if (cardLine) {
|
|
203
|
+
// Match any card name format: {prefix}_card.{identifier}
|
|
204
|
+
// e.g., "alsa_card.pci-0000_00_1f.3", "bluez_card.XX_XX_XX_XX_XX_XX"
|
|
205
|
+
const cardNameMatch = cardLine.match(/([^_\s]+_card\.[^\s]+)/);
|
|
206
|
+
if (cardNameMatch) {
|
|
207
|
+
// Card name is extracted but not stored (used internally for label generation)
|
|
208
|
+
(device as any).cardName = cardNameMatch[1];
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
} catch (error) {
|
|
212
|
+
// Card lookup failed, continue without it
|
|
213
|
+
}
|
|
214
|
+
} else {
|
|
215
|
+
// Final fallback: use card number from device properties
|
|
216
|
+
const cardNumber = (device as any).cardNumber;
|
|
217
|
+
if (cardNumber !== undefined) {
|
|
218
|
+
try {
|
|
219
|
+
const env = getPulseAudioEnv();
|
|
220
|
+
const cardsOutput = execSync('pactl list cards short', {
|
|
221
|
+
encoding: 'utf-8',
|
|
222
|
+
timeout: 2000,
|
|
223
|
+
stdio: 'pipe',
|
|
224
|
+
env,
|
|
225
|
+
});
|
|
226
|
+
const cardLine = cardsOutput
|
|
227
|
+
.split('\n')
|
|
228
|
+
.find(line => line.includes(`card${cardNumber}`));
|
|
229
|
+
if (cardLine) {
|
|
230
|
+
// Match any card name format: {prefix}_card.{identifier}
|
|
231
|
+
const cardNameMatch = cardLine.match(/([^_\s]+_card\.[^\s]+)/);
|
|
232
|
+
if (cardNameMatch) {
|
|
233
|
+
// Card name is extracted but not stored (used internally for label generation)
|
|
234
|
+
(device as any).cardName = cardNameMatch[1];
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
} catch (error) {
|
|
238
|
+
// Card lookup failed, continue without it
|
|
213
239
|
}
|
|
214
240
|
}
|
|
215
|
-
} catch (error) {
|
|
216
|
-
// Card lookup failed, continue without it
|
|
217
241
|
}
|
|
218
242
|
}
|
|
219
243
|
}
|
|
220
244
|
|
|
221
|
-
//
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
device.label = createDeviceLabel(device, ports, isInput);
|
|
245
|
+
// Create human-readable label with device info (formFactor, bus, available, activePort)
|
|
246
|
+
// Note: isDefault will be set later when we know the default device
|
|
247
|
+
device.label = createDeviceLabel(
|
|
248
|
+
device,
|
|
249
|
+
ports,
|
|
250
|
+
isInput,
|
|
251
|
+
(device as any).formFactor,
|
|
252
|
+
(device as any).bus,
|
|
253
|
+
false, // isDefault will be updated later
|
|
254
|
+
deviceAvailable,
|
|
255
|
+
(device as any).activePort
|
|
256
|
+
);
|
|
234
257
|
|
|
235
258
|
return device as AudioDevice;
|
|
236
259
|
}
|
|
237
260
|
|
|
238
261
|
/**
|
|
239
|
-
* Create a human-readable label for an audio device
|
|
262
|
+
* Create a human-readable label for an audio device with device info
|
|
263
|
+
* Incorporates: formFactor, bus, isDefault, available, activePort information
|
|
240
264
|
*/
|
|
241
265
|
function createDeviceLabel(
|
|
242
266
|
device: Partial<AudioDevice>,
|
|
243
267
|
ports: AudioPort[],
|
|
244
|
-
isInput: boolean
|
|
268
|
+
isInput: boolean,
|
|
269
|
+
formFactor?: string,
|
|
270
|
+
bus?: string,
|
|
271
|
+
isDefault?: boolean,
|
|
272
|
+
available?: boolean,
|
|
273
|
+
activePort?: string
|
|
245
274
|
): string {
|
|
246
275
|
const productName = (device as any).productName;
|
|
247
|
-
|
|
276
|
+
let baseLabel = '';
|
|
248
277
|
|
|
249
278
|
// Find the active port in the ports list
|
|
250
|
-
const activePortInfo = ports.find(p => p.name === activePort);
|
|
279
|
+
const activePortInfo = activePort ? ports.find(p => p.name === activePort) : undefined;
|
|
251
280
|
|
|
252
281
|
// Priority 1: Use product name if available (e.g., "LG ULTRAFINE")
|
|
253
282
|
if (productName) {
|
|
254
|
-
|
|
283
|
+
baseLabel = `${productName} (${isInput ? 'Microphone' : 'Speaker'})`;
|
|
255
284
|
}
|
|
256
|
-
|
|
257
285
|
// Priority 2: Use active port description if available
|
|
258
|
-
if (activePortInfo && activePortInfo.description) {
|
|
286
|
+
else if (activePortInfo && activePortInfo.description) {
|
|
259
287
|
const portDesc = activePortInfo.description;
|
|
260
288
|
|
|
261
289
|
// Map common port descriptions to user-friendly names
|
|
262
290
|
if (portDesc.toLowerCase().includes('headphones')) {
|
|
263
|
-
|
|
291
|
+
baseLabel = 'Headphones';
|
|
264
292
|
} else if (
|
|
265
293
|
portDesc.toLowerCase().includes('hdmi') ||
|
|
266
294
|
portDesc.toLowerCase().includes('displayport')
|
|
267
295
|
) {
|
|
268
|
-
|
|
296
|
+
baseLabel = `HDMI Display`;
|
|
269
297
|
} else if (
|
|
270
298
|
portDesc.toLowerCase().includes('microphone') ||
|
|
271
299
|
portDesc.toLowerCase().includes('mic')
|
|
272
300
|
) {
|
|
273
|
-
|
|
301
|
+
baseLabel = 'Microphone';
|
|
274
302
|
} else if (portDesc.toLowerCase().includes('line')) {
|
|
275
|
-
|
|
303
|
+
baseLabel = `Line ${isInput ? 'In' : 'Out'}`;
|
|
276
304
|
} else if (portDesc.toLowerCase().includes('speaker')) {
|
|
277
|
-
|
|
305
|
+
baseLabel = 'Speakers';
|
|
278
306
|
} else {
|
|
279
307
|
// Use port description with device type
|
|
280
|
-
|
|
308
|
+
baseLabel = `${portDesc} (${isInput ? 'Input' : 'Output'})`;
|
|
281
309
|
}
|
|
282
310
|
}
|
|
311
|
+
// Priority 3: Use display name with device type
|
|
312
|
+
else if (device.displayName) {
|
|
313
|
+
baseLabel = `${device.displayName} (${isInput ? 'Input' : 'Output'})`;
|
|
314
|
+
}
|
|
315
|
+
// Fallback: Use identifier
|
|
316
|
+
else {
|
|
317
|
+
baseLabel = device.identifier || 'Unknown Audio Device';
|
|
318
|
+
}
|
|
283
319
|
|
|
284
|
-
//
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
} else if (device.cardProfile.includes('hdmi-surround')) {
|
|
291
|
-
return 'HDMI Surround Audio';
|
|
292
|
-
}
|
|
320
|
+
// Add status indicators
|
|
321
|
+
const statusParts: string[] = [];
|
|
322
|
+
|
|
323
|
+
// Add default status
|
|
324
|
+
if (isDefault) {
|
|
325
|
+
statusParts.push('Default');
|
|
293
326
|
}
|
|
294
327
|
|
|
295
|
-
//
|
|
296
|
-
if (
|
|
297
|
-
|
|
328
|
+
// Add availability status
|
|
329
|
+
if (available !== undefined) {
|
|
330
|
+
statusParts.push(available ? 'Available' : 'Unavailable');
|
|
298
331
|
}
|
|
299
332
|
|
|
300
|
-
//
|
|
301
|
-
|
|
333
|
+
// Add form factor info if external
|
|
334
|
+
if (formFactor && formFactor !== 'internal') {
|
|
335
|
+
statusParts.push(formFactor.charAt(0).toUpperCase() + formFactor.slice(1));
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
// Add bus info if not PCI (PCI is most common, so only show others)
|
|
339
|
+
if (bus && bus.toLowerCase() !== 'pci') {
|
|
340
|
+
statusParts.push(bus.toUpperCase());
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
// Combine base label with status
|
|
344
|
+
if (statusParts.length > 0) {
|
|
345
|
+
return `${baseLabel} (${statusParts.join(', ')})`;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
return baseLabel;
|
|
302
349
|
}
|
|
303
350
|
|
|
304
351
|
/**
|
|
@@ -670,111 +717,6 @@ function getDefaultDevices(): { defaultSink?: string; defaultSource?: string } {
|
|
|
670
717
|
}
|
|
671
718
|
}
|
|
672
719
|
|
|
673
|
-
/**
|
|
674
|
-
* Parse card profiles from pactl list cards output
|
|
675
|
-
*/
|
|
676
|
-
function parseCardProfiles(cardBlock: string): AudioProfile[] {
|
|
677
|
-
const profiles: AudioProfile[] = [];
|
|
678
|
-
const lines = cardBlock.split('\n');
|
|
679
|
-
let inProfilesSection = false;
|
|
680
|
-
|
|
681
|
-
// Extract port mappings from Ports section
|
|
682
|
-
const portProfileMap: Map<string, string[]> = new Map();
|
|
683
|
-
let inPortsSection = false;
|
|
684
|
-
let currentPortName = '';
|
|
685
|
-
|
|
686
|
-
for (const line of lines) {
|
|
687
|
-
const trimmed = line.trim();
|
|
688
|
-
|
|
689
|
-
// Parse Ports section to map ports to profiles
|
|
690
|
-
if (trimmed.startsWith('Ports:')) {
|
|
691
|
-
inPortsSection = true;
|
|
692
|
-
continue;
|
|
693
|
-
}
|
|
694
|
-
|
|
695
|
-
if (inPortsSection && trimmed.startsWith('Part of profile(s):')) {
|
|
696
|
-
const profileList = trimmed.replace('Part of profile(s):', '').trim();
|
|
697
|
-
if (currentPortName) {
|
|
698
|
-
portProfileMap.set(
|
|
699
|
-
currentPortName,
|
|
700
|
-
profileList.split(',').map(p => p.trim())
|
|
701
|
-
);
|
|
702
|
-
}
|
|
703
|
-
continue;
|
|
704
|
-
}
|
|
705
|
-
|
|
706
|
-
if (inPortsSection) {
|
|
707
|
-
if (trimmed.match(/^[a-z]+-[a-z]+-[^:]+:/)) {
|
|
708
|
-
currentPortName = trimmed.split(':')[0].trim();
|
|
709
|
-
} else if (trimmed.startsWith('Active Profile:') || trimmed.match(/^[A-Z]/)) {
|
|
710
|
-
inPortsSection = false;
|
|
711
|
-
}
|
|
712
|
-
}
|
|
713
|
-
|
|
714
|
-
// Parse Profiles section
|
|
715
|
-
if (trimmed.startsWith('Profiles:')) {
|
|
716
|
-
inProfilesSection = true;
|
|
717
|
-
continue;
|
|
718
|
-
}
|
|
719
|
-
|
|
720
|
-
if (inProfilesSection) {
|
|
721
|
-
if (trimmed.startsWith('Active Profile:') || trimmed.startsWith('Ports:')) {
|
|
722
|
-
inProfilesSection = false;
|
|
723
|
-
continue;
|
|
724
|
-
}
|
|
725
|
-
|
|
726
|
-
// Parse profile line: "output:analog-stereo: Analog Stereo Output (sinks: 1, sources: 0, priority: 39268, available: yes)"
|
|
727
|
-
const profileMatch = trimmed.match(/^([^:]+):\s*(.+?)\s*\([^)]+available:\s*(yes|no)\)/);
|
|
728
|
-
if (profileMatch) {
|
|
729
|
-
const profileName = profileMatch[1].trim();
|
|
730
|
-
const description = profileMatch[2].trim();
|
|
731
|
-
const available = profileMatch[3].trim() === 'yes';
|
|
732
|
-
|
|
733
|
-
// Find ports that belong to this profile
|
|
734
|
-
const ports: string[] = [];
|
|
735
|
-
for (const [portName, profileList] of portProfileMap.entries()) {
|
|
736
|
-
if (profileList.includes(profileName)) {
|
|
737
|
-
ports.push(portName);
|
|
738
|
-
}
|
|
739
|
-
}
|
|
740
|
-
|
|
741
|
-
profiles.push({
|
|
742
|
-
profile: profileName,
|
|
743
|
-
available,
|
|
744
|
-
description,
|
|
745
|
-
ports,
|
|
746
|
-
});
|
|
747
|
-
}
|
|
748
|
-
}
|
|
749
|
-
}
|
|
750
|
-
|
|
751
|
-
return profiles;
|
|
752
|
-
}
|
|
753
|
-
|
|
754
|
-
/**
|
|
755
|
-
* Get card profiles for a specific card
|
|
756
|
-
*/
|
|
757
|
-
function getCardProfiles(cardName: string): AudioProfile[] {
|
|
758
|
-
try {
|
|
759
|
-
const env = getPulseAudioEnv();
|
|
760
|
-
const cardsOutput = execSync(PULSEAUDIO_COMMANDS.LIST_CARDS, {
|
|
761
|
-
encoding: 'utf-8',
|
|
762
|
-
timeout: PULSEAUDIO_TIMEOUTS.LIST_DEVICES,
|
|
763
|
-
env,
|
|
764
|
-
});
|
|
765
|
-
|
|
766
|
-
const cardBlocks = cardsOutput.split(/^Card #/m);
|
|
767
|
-
for (const block of cardBlocks.slice(1)) {
|
|
768
|
-
if (block.includes(`Name: ${cardName}`)) {
|
|
769
|
-
return parseCardProfiles(block);
|
|
770
|
-
}
|
|
771
|
-
}
|
|
772
|
-
} catch (error) {
|
|
773
|
-
console.log(`Failed to get profiles for card ${cardName}:`, error);
|
|
774
|
-
}
|
|
775
|
-
return [];
|
|
776
|
-
}
|
|
777
|
-
|
|
778
720
|
/**
|
|
779
721
|
* Get available audio input/output devices using PulseAudio
|
|
780
722
|
*/
|
|
@@ -790,7 +732,6 @@ function getAudioDevices(): AudioDevices | undefined {
|
|
|
790
732
|
|
|
791
733
|
const outputs: AudioDevice[] = [];
|
|
792
734
|
const inputs: AudioDevice[] = [];
|
|
793
|
-
const cardProfilesCache: Map<string, AudioProfile[]> = new Map();
|
|
794
735
|
|
|
795
736
|
// Detect output devices (sinks)
|
|
796
737
|
try {
|
|
@@ -806,15 +747,18 @@ function getAudioDevices(): AudioDevices | undefined {
|
|
|
806
747
|
.forEach(block => {
|
|
807
748
|
const device = parseAudioDevice(block, false);
|
|
808
749
|
if (device) {
|
|
809
|
-
//
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
750
|
+
// Check if this is the default sink and update label
|
|
751
|
+
const isDefault = device.identifier === defaultSink;
|
|
752
|
+
|
|
753
|
+
if (isDefault && device.label) {
|
|
754
|
+
// Update label to include Default status
|
|
755
|
+
if (!device.label.includes('Default')) {
|
|
756
|
+
if (device.label.includes('(')) {
|
|
757
|
+
device.label = device.label.replace(')', ', Default)');
|
|
758
|
+
} else {
|
|
759
|
+
device.label = `${device.label} (Default)`;
|
|
760
|
+
}
|
|
761
|
+
}
|
|
818
762
|
}
|
|
819
763
|
|
|
820
764
|
outputs.push(device);
|
|
@@ -842,15 +786,18 @@ function getAudioDevices(): AudioDevices | undefined {
|
|
|
842
786
|
.forEach(block => {
|
|
843
787
|
const device = parseAudioDevice(block, true);
|
|
844
788
|
if (device) {
|
|
845
|
-
//
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
789
|
+
// Check if this is the default source and update label
|
|
790
|
+
const isDefault = device.identifier === defaultSource;
|
|
791
|
+
|
|
792
|
+
if (isDefault && device.label) {
|
|
793
|
+
// Update label to include Default status
|
|
794
|
+
if (!device.label.includes('Default')) {
|
|
795
|
+
if (device.label.includes('(')) {
|
|
796
|
+
device.label = device.label.replace(')', ', Default)');
|
|
797
|
+
} else {
|
|
798
|
+
device.label = `${device.label} (Default)`;
|
|
799
|
+
}
|
|
800
|
+
}
|
|
854
801
|
}
|
|
855
802
|
|
|
856
803
|
inputs.push(device);
|
package/src/types/twin.types.ts
CHANGED
|
@@ -337,29 +337,13 @@ export interface AudioPort {
|
|
|
337
337
|
available?: boolean; // Whether port is available
|
|
338
338
|
}
|
|
339
339
|
|
|
340
|
-
export interface AudioProfile {
|
|
341
|
-
profile: string; // Profile name (e.g., "output:hdmi-stereo")
|
|
342
|
-
available: boolean; // Whether profile is available
|
|
343
|
-
description: string; // Profile description (e.g., "Digital Stereo (HDMI) Output")
|
|
344
|
-
ports: string[]; // Ports available in this profile (e.g., ["hdmi-output-0"])
|
|
345
|
-
}
|
|
346
|
-
|
|
347
340
|
export interface AudioDevice {
|
|
348
341
|
identifier: string;
|
|
349
342
|
displayName: string;
|
|
350
|
-
description?: string;
|
|
351
|
-
formFactor?: string;
|
|
352
|
-
bus?: string;
|
|
353
343
|
volume?: number; // Volume level (0-100%)
|
|
354
344
|
muted?: boolean; // Mute status
|
|
355
|
-
isDefault?: boolean; // Whether this is the system default device
|
|
356
|
-
activePort?: string; // Currently active port (e.g., "analog-output-headphones")
|
|
357
345
|
availablePorts?: AudioPort[]; // Available ports for this device
|
|
358
|
-
|
|
359
|
-
cardProfile?: string; // Card profile (e.g., "output:analog-stereo")
|
|
360
|
-
label?: string; // Human-readable label for the device (e.g., "Headphones", "HDMI Display")
|
|
361
|
-
available?: boolean; // Overall device availability (true if at least one port is available)
|
|
362
|
-
availableProfiles?: AudioProfile[]; // All available profiles for this card
|
|
346
|
+
label?: string; // Human-readable label with device info (e.g., "Headphones (Default, Available)", "HDMI Display (Available)")
|
|
363
347
|
}
|
|
364
348
|
|
|
365
349
|
export interface AudioDevices {
|