@phystack/device-phyos 4.5.4-dev → 4.5.6-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.
@@ -1,4 +1,7 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.applyAudioOutputControlAndReport = applyAudioOutputControlAndReport;
4
7
  exports.applyAudioInputControlAndReport = applyAudioInputControlAndReport;
@@ -7,6 +10,7 @@ exports.applyAudioInputControl = applyAudioInputControl;
7
10
  const child_process_1 = require("child_process");
8
11
  const phy_logger_1 = require("@phystack/phy-logger");
9
12
  const hub_device_1 = require("@phystack/hub-device");
13
+ const sysinfo_1 = __importDefault(require("@phystack/hub-device/dist/sysinfo"));
10
14
  const logger = new phy_logger_1.PhyLogger({
11
15
  logToFile: false,
12
16
  logToConsole: true,
@@ -22,14 +26,193 @@ const PACTL_COMMANDS = {
22
26
  SET_SOURCE_MUTE: (deviceId, muteValue) => `pactl set-source-mute ${deviceId} ${muteValue}`,
23
27
  SET_SINK_PORT: (deviceId, portName) => `pactl set-sink-port ${deviceId} ${portName}`,
24
28
  SET_SOURCE_PORT: (deviceId, portName) => `pactl set-source-port ${deviceId} ${portName}`,
25
- SET_CARD_PROFILE: (cardName, profile) => `pactl set-card-profile ${cardName} ${profile}`,
26
29
  LIST_SINKS_SHORT: () => `pactl list short sinks`,
27
30
  LIST_SOURCES_SHORT: () => `pactl list short sources`,
31
+ LIST_SINK_INPUTS: () => `pactl list short sink-inputs`,
32
+ MOVE_SINK_INPUT: (inputId, sinkId) => `pactl move-sink-input ${inputId} ${sinkId}`,
33
+ CORK_SINK_INPUT: (inputId, uncork) => `pactl cork-sink-input ${inputId} ${uncork ? '0' : '1'}`,
34
+ SUSPEND_SINK: (deviceId, suspend) => `pactl suspend-sink ${deviceId} ${suspend ? '1' : '0'}`,
35
+ LIST_CARDS: () => `pactl list cards`,
36
+ LIST_CARDS_SHORT: () => `pactl list cards short`,
37
+ GET_SINK_INFO: (sinkId) => `pactl list sinks | grep -A 50 "Name: ${sinkId}"`,
38
+ SET_CARD_PROFILE: (cardName, profile) => `pactl set-card-profile ${cardName} ${profile}`,
28
39
  };
29
40
  const PACTL_TIMEOUT = 3000;
30
41
  function getPulseAudioEnv() {
31
42
  return (0, hub_device_1.getPulseAudioEnv)();
32
43
  }
44
+ function getCardNameFromSink(sinkId) {
45
+ try {
46
+ const env = getPulseAudioEnv();
47
+ const match = sinkId.match(/^([^_]+)_(?:output|input|sink|source)\.([^.]+(?:\.[^.]+)*)/);
48
+ if (match) {
49
+ const prefix = match[1];
50
+ const cardId = match[2];
51
+ return `${prefix}_card.${cardId}`;
52
+ }
53
+ const altMatch = sinkId.match(/^([^_]+)_(?:output|input|sink|source)_(\d+)_(\d+)$/);
54
+ if (altMatch) {
55
+ const cardNumber = altMatch[2];
56
+ const sinkInfo = (0, child_process_1.execSync)(PACTL_COMMANDS.GET_SINK_INFO(sinkId), {
57
+ timeout: PACTL_TIMEOUT,
58
+ stdio: 'pipe',
59
+ env,
60
+ }).toString();
61
+ const cardMatch = sinkInfo.match(/alsa\.card_name\s*=\s*"([^"]+)"/);
62
+ if (cardMatch) {
63
+ const cardsOutput = (0, child_process_1.execSync)(PACTL_COMMANDS.LIST_CARDS_SHORT(), {
64
+ timeout: PACTL_TIMEOUT,
65
+ stdio: 'pipe',
66
+ env,
67
+ }).toString();
68
+ const cardLine = cardsOutput.split('\n').find(line => line.includes(`card${cardNumber}`));
69
+ if (cardLine) {
70
+ const cardNameMatch = cardLine.match(/([^_\s]+_card\.[^\s]+)/);
71
+ if (cardNameMatch) {
72
+ return cardNameMatch[1];
73
+ }
74
+ }
75
+ }
76
+ const cardsOutput = (0, child_process_1.execSync)(PACTL_COMMANDS.LIST_CARDS_SHORT(), {
77
+ timeout: PACTL_TIMEOUT,
78
+ stdio: 'pipe',
79
+ env,
80
+ }).toString();
81
+ const cardLine = cardsOutput.split('\n').find(line => line.includes(`card${cardNumber}`));
82
+ if (cardLine) {
83
+ const cardNameMatch = cardLine.match(/([^_\s]+_card\.[^\s]+)/);
84
+ if (cardNameMatch) {
85
+ return cardNameMatch[1];
86
+ }
87
+ }
88
+ }
89
+ return null;
90
+ }
91
+ catch (error) {
92
+ logger.warn(`getCardNameFromSink(): Failed to get card name for sink ${sinkId}:`, error);
93
+ return null;
94
+ }
95
+ }
96
+ function isAnalogSink(sinkId) {
97
+ try {
98
+ const env = getPulseAudioEnv();
99
+ const sinkInfo = (0, child_process_1.execSync)(PACTL_COMMANDS.GET_SINK_INFO(sinkId), {
100
+ timeout: PACTL_TIMEOUT,
101
+ stdio: 'pipe',
102
+ env,
103
+ }).toString();
104
+ const descriptionMatch = sinkInfo.match(/Description:\s*([^\n]+)/);
105
+ const description = descriptionMatch ? descriptionMatch[1].toLowerCase() : '';
106
+ const hasAnalogInDescription = description.includes('analog') ||
107
+ description.includes('headphone') ||
108
+ description.includes('speaker') ||
109
+ description.includes('built-in') ||
110
+ description.includes('stereo');
111
+ const hasAnalogInId = sinkId.toLowerCase().includes('analog') ||
112
+ sinkId.toLowerCase().includes('headphone') ||
113
+ sinkId.toLowerCase().includes('speaker');
114
+ const hasAnalogInProperties = sinkInfo.includes('alsa.id = "Analog') ||
115
+ sinkInfo.includes('alsa.name = "Analog') ||
116
+ !!sinkInfo.match(/alsa\.id\s*=\s*"Analog/i);
117
+ const isNotHdmi = !isHdmiSink(sinkId);
118
+ return hasAnalogInDescription || hasAnalogInId || hasAnalogInProperties || isNotHdmi;
119
+ }
120
+ catch (error) {
121
+ logger.warn(`isAnalogSink(): Failed to check if sink ${sinkId} is analog:`, error);
122
+ return !sinkId.toLowerCase().includes('hdmi');
123
+ }
124
+ }
125
+ function getAnalogProfileForCard(cardName) {
126
+ try {
127
+ const env = getPulseAudioEnv();
128
+ const cardInfo = (0, child_process_1.execSync)(`pactl list cards | grep -A 100 "Name: ${cardName}"`, {
129
+ timeout: PACTL_TIMEOUT,
130
+ stdio: 'pipe',
131
+ env,
132
+ }).toString();
133
+ const profilesSection = cardInfo.match(/Profiles?:([\s\S]*?)(?=\s+\w+:|\s*$)/);
134
+ if (profilesSection) {
135
+ const stereoMatch = profilesSection[1].match(/^\s+(output:analog-stereo[^\s]*)\s/);
136
+ if (stereoMatch) {
137
+ return stereoMatch[1].trim();
138
+ }
139
+ const analogMatch = profilesSection[1].match(/^\s+(output:analog[^\s]+)\s/);
140
+ if (analogMatch) {
141
+ return analogMatch[1].trim();
142
+ }
143
+ }
144
+ const analogProfileMatch = cardInfo.match(/^\s+(output:analog-stereo[^\s]*)$/m);
145
+ if (analogProfileMatch) {
146
+ return analogProfileMatch[1].trim();
147
+ }
148
+ return 'output:analog-stereo';
149
+ }
150
+ catch (error) {
151
+ logger.warn(`getAnalogProfileForCard(): Failed to get analog profile for card ${cardName}:`, error);
152
+ return 'output:analog-stereo';
153
+ }
154
+ }
155
+ function getHdmiProfileForCard(cardName) {
156
+ try {
157
+ const env = getPulseAudioEnv();
158
+ const cardInfo = (0, child_process_1.execSync)(`pactl list cards | grep -A 100 "Name: ${cardName}"`, {
159
+ timeout: PACTL_TIMEOUT,
160
+ stdio: 'pipe',
161
+ env,
162
+ }).toString();
163
+ const profilesSection = cardInfo.match(/Profiles?:([\s\S]*?)(?=\s+\w+:|\s*$)/);
164
+ if (profilesSection) {
165
+ const stereoMatch = profilesSection[1].match(/^\s+(output:hdmi-stereo[^\s]*)\s/);
166
+ if (stereoMatch) {
167
+ return stereoMatch[1].trim();
168
+ }
169
+ const hdmiMatch = profilesSection[1].match(/^\s+(output:hdmi[^\s]+)\s/);
170
+ if (hdmiMatch) {
171
+ return hdmiMatch[1].trim();
172
+ }
173
+ }
174
+ const hdmiProfileMatch = cardInfo.match(/^\s+(output:hdmi-stereo[^\s]*)$/m);
175
+ if (hdmiProfileMatch) {
176
+ return hdmiProfileMatch[1].trim();
177
+ }
178
+ const anyHdmiMatch = cardInfo.match(/^\s+(output:hdmi[^\s]+)$/m);
179
+ if (anyHdmiMatch) {
180
+ return anyHdmiMatch[1].trim();
181
+ }
182
+ return 'output:hdmi-stereo';
183
+ }
184
+ catch (error) {
185
+ logger.warn(`getHdmiProfileForCard(): Failed to get HDMI profile for card ${cardName}:`, error);
186
+ return 'output:hdmi-stereo';
187
+ }
188
+ }
189
+ function isHdmiSink(sinkId) {
190
+ try {
191
+ const env = getPulseAudioEnv();
192
+ const sinkInfo = (0, child_process_1.execSync)(PACTL_COMMANDS.GET_SINK_INFO(sinkId), {
193
+ timeout: PACTL_TIMEOUT,
194
+ stdio: 'pipe',
195
+ env,
196
+ }).toString();
197
+ const hasHdmiIndicator = sinkInfo.includes('device.product.name = "HDMI') ||
198
+ sinkInfo.includes('alsa.id = "HDMI') ||
199
+ !!sinkInfo.match(/device\.product\.name\s*=\s*"[^"]*HDMI[^"]*"/i) ||
200
+ !!sinkInfo.match(/alsa\.id\s*=\s*"HDMI/i);
201
+ const descriptionMatch = sinkInfo.match(/Description:\s*([^\n]+)/);
202
+ const description = descriptionMatch ? descriptionMatch[1].toLowerCase() : '';
203
+ const hasHdmiInDescription = description.includes('hdmi') ||
204
+ description.includes('displayport') ||
205
+ description.includes('display') ||
206
+ description.includes('ultrafine') ||
207
+ description.includes('monitor');
208
+ const hasHdmiInId = sinkId.toLowerCase().includes('hdmi');
209
+ return hasHdmiIndicator || hasHdmiInDescription || hasHdmiInId;
210
+ }
211
+ catch (error) {
212
+ logger.warn(`isHdmiSink(): Failed to check if sink ${sinkId} is HDMI:`, error);
213
+ return sinkId.toLowerCase().includes('hdmi');
214
+ }
215
+ }
33
216
  async function applyAudioOutputControlAndReport(audioOutputControl, twinId, hubDevice, context = 'applyAudioOutputControlAndReport') {
34
217
  try {
35
218
  logger.info(`${context}: Applying audio output control settings:`, audioOutputControl);
@@ -38,7 +221,7 @@ async function applyAudioOutputControlAndReport(audioOutputControl, twinId, hubD
38
221
  logger.info(`${context}: Audio output control settings applied successfully`);
39
222
  logger.info(`${context}: Re-reporting system information with updated audio state...`);
40
223
  try {
41
- const deviceInfo = await hubDevice.getSysinfo();
224
+ const deviceInfo = await (0, sysinfo_1.default)();
42
225
  await hubDevice.reportDeviceTwinProperties(twinId, deviceInfo);
43
226
  logger.info(`${context}: System information re-reported successfully`);
44
227
  }
@@ -65,7 +248,7 @@ async function applyAudioInputControlAndReport(audioInputControl, twinId, hubDev
65
248
  logger.info(`${context}: Audio input control settings applied successfully`);
66
249
  logger.info(`${context}: Re-reporting system information with updated audio state...`);
67
250
  try {
68
- const deviceInfo = await hubDevice.getSysinfo();
251
+ const deviceInfo = await (0, sysinfo_1.default)();
69
252
  await hubDevice.reportDeviceTwinProperties(twinId, deviceInfo);
70
253
  logger.info(`${context}: System information re-reported successfully`);
71
254
  }
@@ -85,114 +268,162 @@ async function applyAudioInputControlAndReport(audioInputControl, twinId, hubDev
85
268
  }
86
269
  }
87
270
  async function applyAudioOutputControl(audioOutputControl) {
88
- const { deviceIdentifier, volume, muted, setAsDefault, activePort, cardProfile, cardName } = audioOutputControl;
89
- if (!deviceIdentifier && (!cardProfile || !cardName)) {
90
- logger.error('applyAudioOutputControl(): Either deviceIdentifier or both cardProfile and cardName must be provided');
271
+ const { identifier, volume, muted, activePort } = audioOutputControl;
272
+ if (!identifier) {
273
+ logger.error('applyAudioOutputControl(): identifier is required');
91
274
  return false;
92
275
  }
93
- if (cardProfile && !cardProfile.startsWith('output:')) {
94
- logger.warn(`applyAudioOutputControl(): Card profile "${cardProfile}" doesn't start with "output:", forcing output profile`);
95
- }
96
- let resolvedDeviceIdentifier = deviceIdentifier;
276
+ let sinkId = identifier;
97
277
  try {
98
- if (cardProfile && cardName) {
99
- logger.info(`applyAudioOutputControl(): Setting card profile "${cardProfile}" on card "${cardName}"`);
100
- try {
101
- const env = getPulseAudioEnv();
102
- (0, child_process_1.execSync)(PACTL_COMMANDS.SET_CARD_PROFILE(cardName, cardProfile), {
103
- timeout: PACTL_TIMEOUT,
104
- stdio: 'pipe',
105
- env,
106
- });
107
- logger.info(` Card profile set successfully`);
108
- await new Promise(resolve => setTimeout(resolve, 500));
109
- logger.info(`applyAudioOutputControl(): Resolving sink identifier for card "${cardName}" with profile "${cardProfile}"`);
278
+ logger.info(`applyAudioOutputControl(): Applying settings to sink "${sinkId}"`, {
279
+ volume,
280
+ muted,
281
+ activePort,
282
+ });
283
+ const cardName = getCardNameFromSink(sinkId);
284
+ if (cardName) {
285
+ let profileToSet = null;
286
+ let profileType = null;
287
+ if (isHdmiSink(sinkId)) {
288
+ logger.info(`applyAudioOutputControl(): Detected HDMI sink, setting card profile`);
289
+ profileToSet = getHdmiProfileForCard(cardName);
290
+ profileType = 'hdmi';
291
+ }
292
+ else if (isAnalogSink(sinkId)) {
293
+ logger.info(`applyAudioOutputControl(): Detected analog sink, setting card profile`);
294
+ profileToSet = getAnalogProfileForCard(cardName);
295
+ profileType = 'analog';
296
+ }
297
+ if (profileToSet && profileType) {
110
298
  try {
299
+ logger.info(`applyAudioOutputControl(): Setting card profile to ${profileToSet}`);
111
300
  const env = getPulseAudioEnv();
112
- const sinksOutput = (0, child_process_1.execSync)(PACTL_COMMANDS.LIST_SINKS_SHORT(), {
113
- encoding: 'utf-8',
301
+ (0, child_process_1.execSync)(PACTL_COMMANDS.SET_CARD_PROFILE(cardName, profileToSet), {
114
302
  timeout: PACTL_TIMEOUT,
115
303
  stdio: 'pipe',
116
304
  env,
117
305
  });
118
- const cardPattern = cardName.replace('alsa_card.', '').replace(/\./g, '\\.');
119
- const profileType = cardProfile.includes('hdmi')
120
- ? 'hdmi'
121
- : cardProfile.includes('analog')
122
- ? 'analog'
123
- : '';
124
- const sinkMatch = sinksOutput.split('\n').find(line => {
125
- if (!line.trim())
126
- return false;
127
- const parts = line.split(/\s+/);
128
- if (parts.length >= 2) {
129
- const sinkName = parts[1];
130
- return (sinkName.includes(cardPattern) &&
131
- (profileType ? sinkName.includes(profileType) : true));
306
+ logger.info(` Card profile set to ${profileToSet}`);
307
+ await new Promise(resolve => setTimeout(resolve, 500));
308
+ try {
309
+ const env = getPulseAudioEnv();
310
+ const sinksOutput = (0, child_process_1.execSync)(PACTL_COMMANDS.LIST_SINKS_SHORT(), {
311
+ timeout: PACTL_TIMEOUT,
312
+ stdio: 'pipe',
313
+ env,
314
+ }).toString();
315
+ let sinkMatch;
316
+ if (profileType === 'hdmi') {
317
+ sinkMatch = sinksOutput
318
+ .split('\n')
319
+ .find(line => line.includes(cardName) && (line.includes('hdmi') || line.includes('HDMI')));
132
320
  }
133
- return false;
134
- });
135
- if (sinkMatch) {
136
- resolvedDeviceIdentifier = sinkMatch.split(/\s+/)[1];
137
- logger.info(`applyAudioOutputControl(): Resolved sink to "${resolvedDeviceIdentifier}"`);
138
- }
139
- else {
140
- logger.warn(`applyAudioOutputControl(): Could not find sink matching card "${cardName}" and profile "${cardProfile}"`);
141
- if (!deviceIdentifier) {
142
- throw new Error(`Cannot resolve sink identifier: no matching sink found and deviceIdentifier not provided`);
321
+ else if (profileType === 'analog') {
322
+ sinkMatch = sinksOutput
323
+ .split('\n')
324
+ .find(line => line.includes(cardName) &&
325
+ (line.includes('analog-stereo') ||
326
+ line.includes('analog') ||
327
+ line.toLowerCase().includes('stereo')));
328
+ }
329
+ if (sinkMatch) {
330
+ const newSinkId = sinkMatch.split('\t')[1];
331
+ if (newSinkId && newSinkId !== sinkId) {
332
+ logger.info(`applyAudioOutputControl(): ${profileType} sink ID changed from ${sinkId} to ${newSinkId} after profile change`);
333
+ sinkId = newSinkId;
334
+ }
143
335
  }
144
336
  }
145
- }
146
- catch (resolveError) {
147
- logger.error(`applyAudioOutputControl(): Failed to resolve sink: ${resolveError}`);
148
- if (!deviceIdentifier) {
149
- throw new Error(`Cannot resolve sink identifier: ${resolveError}`);
337
+ catch (sinkLookupError) {
338
+ logger.warn(`applyAudioOutputControl(): Failed to find new ${profileType} sink after profile change:`, sinkLookupError);
150
339
  }
151
- logger.warn(`applyAudioOutputControl(): Falling back to provided deviceIdentifier: ${deviceIdentifier}`);
340
+ }
341
+ catch (profileError) {
342
+ logger.warn(`applyAudioOutputControl(): Failed to set ${profileType} card profile:`, profileError);
152
343
  }
153
344
  }
154
- catch (profileError) {
155
- logger.error(`applyAudioOutputControl(): Failed to set card profile: ${profileError}`);
156
- throw profileError;
157
- }
158
- }
159
- if (!resolvedDeviceIdentifier) {
160
- logger.error('applyAudioOutputControl(): Sink identifier is required');
161
- return false;
162
345
  }
163
- logger.info(`applyAudioOutputControl(): Applying settings to sink "${resolvedDeviceIdentifier}"`, {
164
- volume,
165
- muted,
166
- setAsDefault,
167
- activePort,
168
- cardProfile,
169
- cardName,
170
- });
171
346
  if (activePort) {
172
347
  logger.info(`applyAudioOutputControl(): Setting active port to "${activePort}"`);
173
348
  const env = getPulseAudioEnv();
174
- (0, child_process_1.execSync)(PACTL_COMMANDS.SET_SINK_PORT(resolvedDeviceIdentifier, activePort), {
349
+ (0, child_process_1.execSync)(PACTL_COMMANDS.SET_SINK_PORT(sinkId, activePort), {
175
350
  timeout: PACTL_TIMEOUT,
176
351
  stdio: 'pipe',
177
352
  env,
178
353
  });
179
354
  logger.info(` Active port set to "${activePort}"`);
180
355
  }
181
- if (setAsDefault) {
182
- logger.info(`applyAudioOutputControl(): Setting as default sink`);
183
- const env = getPulseAudioEnv();
184
- (0, child_process_1.execSync)(PACTL_COMMANDS.SET_DEFAULT_SINK(resolvedDeviceIdentifier), {
356
+ logger.info(`applyAudioOutputControl(): Setting as default sink`);
357
+ const env = getPulseAudioEnv();
358
+ (0, child_process_1.execSync)(PACTL_COMMANDS.SET_DEFAULT_SINK(sinkId), {
359
+ timeout: PACTL_TIMEOUT,
360
+ stdio: 'pipe',
361
+ env,
362
+ });
363
+ logger.info(` Sink set as default`);
364
+ try {
365
+ logger.info(`applyAudioOutputControl(): Unsuspending sink to ensure it's ready`);
366
+ (0, child_process_1.execSync)(PACTL_COMMANDS.SUSPEND_SINK(sinkId, false), {
185
367
  timeout: PACTL_TIMEOUT,
186
368
  stdio: 'pipe',
187
369
  env,
188
370
  });
189
- logger.info(` Sink set as default`);
371
+ logger.info(` Sink unsuspended`);
372
+ }
373
+ catch (suspendError) {
374
+ logger.warn(`applyAudioOutputControl(): Failed to unsuspend sink:`, suspendError);
375
+ }
376
+ try {
377
+ logger.info(`applyAudioOutputControl(): Moving active sink inputs to new default sink`);
378
+ const sinkInputsOutput = (0, child_process_1.execSync)(PACTL_COMMANDS.LIST_SINK_INPUTS(), {
379
+ timeout: PACTL_TIMEOUT,
380
+ stdio: 'pipe',
381
+ env,
382
+ }).toString();
383
+ const sinkInputs = sinkInputsOutput
384
+ .split('\n')
385
+ .filter(line => line.trim())
386
+ .map(line => line.split('\t')[0])
387
+ .filter(id => id && !isNaN(Number(id)));
388
+ if (sinkInputs.length > 0) {
389
+ logger.info(` Found ${sinkInputs.length} active sink input(s), moving to new sink`);
390
+ for (const inputId of sinkInputs) {
391
+ try {
392
+ (0, child_process_1.execSync)(PACTL_COMMANDS.MOVE_SINK_INPUT(inputId, sinkId), {
393
+ timeout: PACTL_TIMEOUT,
394
+ stdio: 'pipe',
395
+ env,
396
+ });
397
+ logger.info(` Moved sink input ${inputId} to ${sinkId}`);
398
+ try {
399
+ (0, child_process_1.execSync)(PACTL_COMMANDS.CORK_SINK_INPUT(inputId, true), {
400
+ timeout: PACTL_TIMEOUT,
401
+ stdio: 'pipe',
402
+ env,
403
+ });
404
+ logger.info(` Uncorked sink input ${inputId} to start audio playback`);
405
+ }
406
+ catch (corkError) {
407
+ logger.warn(` Failed to uncork sink input ${inputId}:`, corkError);
408
+ }
409
+ }
410
+ catch (moveError) {
411
+ logger.warn(` Failed to move sink input ${inputId}:`, moveError);
412
+ }
413
+ }
414
+ }
415
+ else {
416
+ logger.info(` No active sink inputs to move`);
417
+ }
418
+ }
419
+ catch (moveError) {
420
+ logger.warn(`applyAudioOutputControl(): Failed to move sink inputs:`, moveError);
190
421
  }
191
422
  if (volume !== undefined) {
192
423
  const volumePercent = Math.max(0, Math.min(100, volume));
193
424
  logger.info(`applyAudioOutputControl(): Setting volume to ${volumePercent}%`);
194
425
  const env = getPulseAudioEnv();
195
- (0, child_process_1.execSync)(PACTL_COMMANDS.SET_SINK_VOLUME(resolvedDeviceIdentifier, volumePercent), {
426
+ (0, child_process_1.execSync)(PACTL_COMMANDS.SET_SINK_VOLUME(sinkId, volumePercent), {
196
427
  timeout: PACTL_TIMEOUT,
197
428
  stdio: 'pipe',
198
429
  env,
@@ -203,7 +434,7 @@ async function applyAudioOutputControl(audioOutputControl) {
203
434
  const muteValue = muted ? '1' : '0';
204
435
  logger.info(`applyAudioOutputControl(): Setting mute to ${muted}`);
205
436
  const env = getPulseAudioEnv();
206
- (0, child_process_1.execSync)(PACTL_COMMANDS.SET_SINK_MUTE(resolvedDeviceIdentifier, muteValue), {
437
+ (0, child_process_1.execSync)(PACTL_COMMANDS.SET_SINK_MUTE(sinkId, muteValue), {
207
438
  timeout: PACTL_TIMEOUT,
208
439
  stdio: 'pipe',
209
440
  env,
@@ -219,115 +450,40 @@ async function applyAudioOutputControl(audioOutputControl) {
219
450
  }
220
451
  }
221
452
  async function applyAudioInputControl(audioInputControl) {
222
- const { deviceIdentifier, volume, muted, setAsDefault, activePort, cardProfile, cardName } = audioInputControl;
223
- if (!deviceIdentifier && (!cardProfile || !cardName)) {
224
- logger.error('applyAudioInputControl(): Either deviceIdentifier or both cardProfile and cardName must be provided');
453
+ const { identifier, volume, muted, activePort } = audioInputControl;
454
+ if (!identifier) {
455
+ logger.error('applyAudioInputControl(): identifier is required');
225
456
  return false;
226
457
  }
227
- if (cardProfile && !cardProfile.startsWith('input:')) {
228
- logger.warn(`applyAudioInputControl(): Card profile "${cardProfile}" doesn't start with "input:", forcing input profile`);
229
- }
230
- let resolvedDeviceIdentifier = deviceIdentifier;
231
458
  try {
232
- if (cardProfile && cardName) {
233
- logger.info(`applyAudioInputControl(): Setting card profile "${cardProfile}" on card "${cardName}"`);
234
- try {
235
- const env = getPulseAudioEnv();
236
- (0, child_process_1.execSync)(PACTL_COMMANDS.SET_CARD_PROFILE(cardName, cardProfile), {
237
- timeout: PACTL_TIMEOUT,
238
- stdio: 'pipe',
239
- env,
240
- });
241
- logger.info(` Card profile set successfully`);
242
- await new Promise(resolve => setTimeout(resolve, 500));
243
- logger.info(`applyAudioInputControl(): Resolving source identifier for card "${cardName}" with profile "${cardProfile}"`);
244
- try {
245
- const env = getPulseAudioEnv();
246
- const sourcesOutput = (0, child_process_1.execSync)(PACTL_COMMANDS.LIST_SOURCES_SHORT(), {
247
- encoding: 'utf-8',
248
- timeout: PACTL_TIMEOUT,
249
- stdio: 'pipe',
250
- env,
251
- });
252
- const cardPattern = cardName.replace('alsa_card.', '').replace(/\./g, '\\.');
253
- const profileType = cardProfile.includes('hdmi')
254
- ? 'hdmi'
255
- : cardProfile.includes('analog')
256
- ? 'analog'
257
- : '';
258
- const sourceMatch = sourcesOutput.split('\n').find(line => {
259
- if (!line.trim())
260
- return false;
261
- const parts = line.split(/\s+/);
262
- if (parts.length >= 2) {
263
- const sourceName = parts[1];
264
- return (sourceName.includes(cardPattern) &&
265
- !sourceName.includes('.monitor') &&
266
- (profileType ? sourceName.includes(profileType) : true));
267
- }
268
- return false;
269
- });
270
- if (sourceMatch) {
271
- resolvedDeviceIdentifier = sourceMatch.split(/\s+/)[1];
272
- logger.info(`applyAudioInputControl(): Resolved source to "${resolvedDeviceIdentifier}"`);
273
- }
274
- else {
275
- logger.warn(`applyAudioInputControl(): Could not find source matching card "${cardName}" and profile "${cardProfile}"`);
276
- if (!deviceIdentifier) {
277
- throw new Error(`Cannot resolve source identifier: no matching source found and deviceIdentifier not provided`);
278
- }
279
- }
280
- }
281
- catch (resolveError) {
282
- logger.error(`applyAudioInputControl(): Failed to resolve source: ${resolveError}`);
283
- if (!deviceIdentifier) {
284
- throw new Error(`Cannot resolve source identifier: ${resolveError}`);
285
- }
286
- logger.warn(`applyAudioInputControl(): Falling back to provided deviceIdentifier: ${deviceIdentifier}`);
287
- }
288
- }
289
- catch (profileError) {
290
- logger.error(`applyAudioInputControl(): Failed to set card profile: ${profileError}`);
291
- throw profileError;
292
- }
293
- }
294
- if (!resolvedDeviceIdentifier) {
295
- logger.error('applyAudioInputControl(): Source identifier is required');
296
- return false;
297
- }
298
- logger.info(`applyAudioInputControl(): Applying settings to source "${resolvedDeviceIdentifier}"`, {
459
+ logger.info(`applyAudioInputControl(): Applying settings to source "${identifier}"`, {
299
460
  volume,
300
461
  muted,
301
- setAsDefault,
302
462
  activePort,
303
- cardProfile,
304
- cardName,
305
463
  });
306
464
  if (activePort) {
307
465
  logger.info(`applyAudioInputControl(): Setting active port to "${activePort}"`);
308
466
  const env = getPulseAudioEnv();
309
- (0, child_process_1.execSync)(PACTL_COMMANDS.SET_SOURCE_PORT(resolvedDeviceIdentifier, activePort), {
467
+ (0, child_process_1.execSync)(PACTL_COMMANDS.SET_SOURCE_PORT(identifier, activePort), {
310
468
  timeout: PACTL_TIMEOUT,
311
469
  stdio: 'pipe',
312
470
  env,
313
471
  });
314
472
  logger.info(` Active port set to "${activePort}"`);
315
473
  }
316
- if (setAsDefault) {
317
- logger.info(`applyAudioInputControl(): Setting as default source`);
318
- const env = getPulseAudioEnv();
319
- (0, child_process_1.execSync)(PACTL_COMMANDS.SET_DEFAULT_SOURCE(resolvedDeviceIdentifier), {
320
- timeout: PACTL_TIMEOUT,
321
- stdio: 'pipe',
322
- env,
323
- });
324
- logger.info(` Source set as default`);
325
- }
474
+ logger.info(`applyAudioInputControl(): Setting as default source`);
475
+ const env = getPulseAudioEnv();
476
+ (0, child_process_1.execSync)(PACTL_COMMANDS.SET_DEFAULT_SOURCE(identifier), {
477
+ timeout: PACTL_TIMEOUT,
478
+ stdio: 'pipe',
479
+ env,
480
+ });
481
+ logger.info(` Source set as default`);
326
482
  if (volume !== undefined) {
327
483
  const volumePercent = Math.max(0, Math.min(100, volume));
328
484
  logger.info(`applyAudioInputControl(): Setting volume to ${volumePercent}%`);
329
485
  const env = getPulseAudioEnv();
330
- (0, child_process_1.execSync)(PACTL_COMMANDS.SET_SOURCE_VOLUME(resolvedDeviceIdentifier, volumePercent), {
486
+ (0, child_process_1.execSync)(PACTL_COMMANDS.SET_SOURCE_VOLUME(identifier, volumePercent), {
331
487
  timeout: PACTL_TIMEOUT,
332
488
  stdio: 'pipe',
333
489
  env,
@@ -338,7 +494,7 @@ async function applyAudioInputControl(audioInputControl) {
338
494
  const muteValue = muted ? '1' : '0';
339
495
  logger.info(`applyAudioInputControl(): Setting mute to ${muted}`);
340
496
  const env = getPulseAudioEnv();
341
- (0, child_process_1.execSync)(PACTL_COMMANDS.SET_SOURCE_MUTE(resolvedDeviceIdentifier, muteValue), {
497
+ (0, child_process_1.execSync)(PACTL_COMMANDS.SET_SOURCE_MUTE(identifier, muteValue), {
342
498
  timeout: PACTL_TIMEOUT,
343
499
  stdio: 'pipe',
344
500
  env,
@@ -1 +1 @@
1
- {"version":3,"file":"audio-control.js","sourceRoot":"","sources":["../../src/utilities/audio-control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"audio-control.js","sourceRoot":"","sources":["../../src/utilities/audio-control.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@phystack/device-phyos",
3
- "version": "4.5.4-dev",
3
+ "version": "4.5.6-dev",
4
4
  "main": "index.js",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -27,10 +27,10 @@
27
27
  "license": "MIT",
28
28
  "description": "",
29
29
  "dependencies": {
30
- "@phystack/axios-proxy": "4.5.4-dev",
31
- "@phystack/hub-client": "4.5.4-dev",
32
- "@phystack/hub-device": "4.5.4-dev",
33
- "@phystack/phy-logger": "4.5.4-dev",
30
+ "@phystack/axios-proxy": "4.5.6-dev",
31
+ "@phystack/hub-client": "4.5.6-dev",
32
+ "@phystack/hub-device": "4.5.6-dev",
33
+ "@phystack/phy-logger": "4.5.6-dev",
34
34
  "@vercel/ncc": "^0.38.1",
35
35
  "async-mutex": "^0.5.0",
36
36
  "bufferutil": "^4.0.8",
@@ -64,5 +64,5 @@
64
64
  "typescript": "^5.5.2",
65
65
  "typescript-cli": "^0.1.0"
66
66
  },
67
- "gitHead": "8274a40de8b857b2f1cfe81f94c50dafbcc551ad"
67
+ "gitHead": "c3bbca2b82bd924ff3636c860628a7a1269c2a24"
68
68
  }