Skip to content

Commit 2733727

Browse files
authored
fix regression breaking venmic (#531)
1 parent ab9e857 commit 2733727

File tree

3 files changed

+29
-9
lines changed

3 files changed

+29
-9
lines changed
+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
* SPDX-License-Identifier: GPL-3.0
3+
* Vesktop, a desktop app aiming to give you a snappier Discord Experience
4+
* Copyright (c) 2023 Vendicated and Vencord contributors
5+
*/
6+
7+
import { addPatch } from "./shared";
8+
9+
addPatch({
10+
patches: [
11+
{
12+
find: 'setSinkId"in',
13+
replacement: {
14+
// eslint-disable-next-line no-useless-escape
15+
match: /return (\i)\?navigator\.mediaDevices\.enumerateDevices/,
16+
replace: "return $1 ? $self.filteredDevices"
17+
}
18+
}
19+
],
20+
21+
async filteredDevices() {
22+
const original = await navigator.mediaDevices.enumerateDevices();
23+
return original.filter(x => x.label !== "vencord-screen-share");
24+
}
25+
});

src/renderer/patches/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import "./enableNotificationsByDefault";
99
import "./platformClass";
1010
import "./hideSwitchDevice";
11+
import "./hideVenmicInput";
1112
import "./screenShareFixes";
1213
import "./spellCheck";
1314
import "./windowsTitleBar";

src/renderer/patches/screenShareFixes.ts

+3-9
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,20 @@ import { isLinux } from "renderer/utils";
1111
const logger = new Logger("VesktopStreamFixes");
1212

1313
if (isLinux) {
14-
const originalMedia = navigator.mediaDevices.getDisplayMedia;
15-
const originalDevices = navigator.mediaDevices.enumerateDevices;
14+
const original = navigator.mediaDevices.getDisplayMedia;
1615

1716
async function getVirtmic() {
1817
try {
19-
const devices = await originalDevices();
18+
const devices = await navigator.mediaDevices.enumerateDevices();
2019
const audioDevice = devices.find(({ label }) => label === "vencord-screen-share");
2120
return audioDevice?.deviceId;
2221
} catch (error) {
2322
return null;
2423
}
2524
}
2625

27-
navigator.mediaDevices.enumerateDevices = async function () {
28-
const result = await originalDevices.call(this);
29-
return result.filter(x => x.label !== "vencord-screen-share");
30-
};
31-
3226
navigator.mediaDevices.getDisplayMedia = async function (opts) {
33-
const stream = await originalMedia.call(this, opts);
27+
const stream = await original.call(this, opts);
3428
const id = await getVirtmic();
3529

3630
const frameRate = Number(currentSettings?.fps);

0 commit comments

Comments
 (0)