- Updated the regex to double exclude '\' - Updated extractValue function to return the full result
23 lines
1006 B
JavaScript
23 lines
1006 B
JavaScript
import { executeCommand } from '../modules/cliHandler.mjs';
|
|
import { extractValue } from '../modules/baseUtils.mjs';
|
|
import os from 'os';
|
|
|
|
// Defaults to Windows values for testing
|
|
let device = "VoiceMeeter VAIO3 Output (VB-Audio VoiceMeeter VAIO3)";
|
|
let maxTransmissionGap = 500;
|
|
let type = "dshow";
|
|
|
|
// Set Linux values for use in production
|
|
if (os.platform() === 'linux') {
|
|
await new Promise((res) => {
|
|
executeCommand("pactl", ['list', 'short', 'sources']).then(cliOutput => {
|
|
device = extractValue(cliOutput, '(?:\\d(?:\\t|[\\s]{1,9})(?<device>[\\w\\d\\-\\.\\_]+?)(?:\\t|[\\s]{1,9})(?<card>[\\w\\d\\-\\.\\_]+)(?:\\t|[\\s]{1,9})(?:(?<device_type>[\\w\\d\\-\\.\\_]+?) (?<channels>\\dch) (?<frequency>\\d+Hz))(?:\\t|[\\s]{1,9})(?:IDLE|RUNNING|SUSPENDED))')
|
|
console.log("Device:", device.groups.device);
|
|
res();
|
|
});
|
|
});
|
|
type = "pulse"; // Replace with appropriate type for Linux
|
|
}
|
|
|
|
export { device, maxTransmissionGap, type };
|