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 => { const extracted_device_details = extractValue(cliOutput, '(?:\\d(?:\\t|[\\s]{1,9})(?[\\w\\d\\-\\.\\_]+?)(?:\\t|[\\s]{1,9})(?[\\w\\d\\-\\.\\_]+)(?:\\t|[\\s]{1,9})(?:(?[\\w\\d\\-\\.\\_]+?) (?\\dch) (?\\d+Hz))(?:\\t|[\\s]{1,9})(?:IDLE|RUNNING|SUSPENDED))') device = extracted_device_details.groups.device; console.log("Device:", device); res(); }); }); type = "pulse"; // Replace with appropriate type for Linux } export { device, maxTransmissionGap, type };