Revert "Update Venmic to 7.1.0 (#1291)"

This reverts commit f11585586f.

Because this upgrades venmic to require GLIBCXX_3.4.35 (gcc16), which is too new and won't work for most users
This commit is contained in:
Vendicated
2026-08-18 04:28:34 +02:00
parent c9ded5c658
commit 7d087e7275
8 changed files with 101 additions and 97 deletions
+43 -33
View File
@@ -66,23 +66,28 @@ function getRendererAudioServicePid() {
);
}
function buildLinkData({ include, exclude }: { include?: Node[]; exclude?: Node[] }) {
const pid = getRendererAudioServicePid();
ipcMain.handle(IpcEvents.VIRT_MIC_LIST, () => {
const audioPid = getRendererAudioServicePid();
const { mute, ignoreDevices, ignoreInputMedia, ignoreVirtual, workaround, onlySpeakers, onlyDefaultSpeakers } =
Settings.store.audio ?? {};
const { granularSelect } = Settings.store.audio ?? {};
const targets = obtainVenmic()
?.list(granularSelect ? ["node.name"] : undefined)
.filter(s => s["application.process.id"] !== audioPid);
return targets ? { ok: true, targets, hasPipewirePulse } : { ok: false, isGlibCxxOutdated };
});
ipcMain.handle(IpcEvents.VIRT_MIC_START, (_, include: Node[]) => {
const pid = getRendererAudioServicePid();
const { ignoreDevices, ignoreInputMedia, ignoreVirtual, workaround } = Settings.store.audio ?? {};
const data: LinkData = {
mute: mute ?? true,
include: include ?? [],
exclude: exclude ?? [],
only_speakers: onlySpeakers,
ignore_devices: ignoreDevices,
only_default_speakers: onlyDefaultSpeakers
include,
exclude: [{ "application.process.id": pid }],
ignore_devices: ignoreDevices
};
data.exclude.push({ "application.process.id": pid });
if (ignoreInputMedia ?? true) {
data.exclude.push({ "media.class": "Stream/Input/Audio" });
}
@@ -95,31 +100,36 @@ function buildLinkData({ include, exclude }: { include?: Node[]; exclude?: Node[
data.workaround = [{ "application.process.id": pid, "media.name": "RecordStream" }];
}
return data;
}
ipcMain.handle(IpcEvents.VIRT_MIC_LIST, () => {
const audioPid = getRendererAudioServicePid();
const { granularSelect } = Settings.store.audio ?? {};
const targets = obtainVenmic()
?.list(granularSelect ? [] : ["application.name", "node.name"])
.filter(s => s["application.process.id"] !== audioPid);
return targets ? { ok: true, targets, hasPipewirePulse } : { ok: false, isGlibCxxOutdated };
});
ipcMain.handle(IpcEvents.VIRT_MIC_START, (_, include: Node[]) => {
return obtainVenmic()?.link(buildLinkData({ include }));
return obtainVenmic()?.link(data);
});
ipcMain.handle(IpcEvents.VIRT_MIC_START_SYSTEM, (_, exclude: Node[]) => {
return obtainVenmic()?.link(buildLinkData({ exclude }));
});
const pid = getRendererAudioServicePid();
ipcMain.handle(IpcEvents.VIRT_MIC_UNMUTE, () => {
return obtainVenmic()?.unmute();
const { workaround, ignoreDevices, ignoreInputMedia, ignoreVirtual, onlySpeakers, onlyDefaultSpeakers } =
Settings.store.audio ?? {};
const data: LinkData = {
include: [],
exclude: [{ "application.process.id": pid }, ...exclude],
only_speakers: onlySpeakers,
ignore_devices: ignoreDevices,
only_default_speakers: onlyDefaultSpeakers
};
if (ignoreInputMedia ?? true) {
data.exclude.push({ "media.class": "Stream/Input/Audio" });
}
if (ignoreVirtual) {
data.exclude.push({ "node.virtual": "true" });
}
if (workaround) {
data.workaround = [{ "application.process.id": pid, "media.name": "RecordStream" }];
}
return obtainVenmic()?.link(data);
});
ipcMain.handle(IpcEvents.VIRT_MIC_STOP, () => obtainVenmic()?.unlink());