feat: hide venmic from input devices, switch devices modal

This commit is contained in:
Curve 2024-04-15 01:33:45 +02:00
parent 01883c40a5
commit 96927b14e9
No known key found for this signature in database
GPG key ID: 460F6C466BD35813
3 changed files with 33 additions and 3 deletions

View file

@ -0,0 +1,23 @@
/*
* SPDX-License-Identifier: GPL-3.0
* Vesktop, a desktop app aiming to give you a snappier Discord Experience
* Copyright (c) 2023 Vendicated and Vencord contributors
*/
import { addPatch } from "./shared";
addPatch({
patches: [
{
find: "lastOutputSystemDevice.justChanged",
replacement: {
match: /((\w)\.default\.getState\(\).neverShowModal)/,
replace: "$1 || $self.shouldIgnore($2)"
}
}
],
shouldIgnore(state: any) {
return Object.keys(state?.default?.lastDeviceConnected)?.[0] === "vencord-screen-share";
}
});

View file

@ -7,6 +7,7 @@
// TODO: Possibly auto generate glob if we have more patches in the future
import "./enableNotificationsByDefault";
import "./platformClass";
import "./hideSwitchDevice";
import "./screenShareAudio";
import "./spellCheck";
import "./windowsTitleBar";

View file

@ -7,11 +7,12 @@
import { isLinux } from "renderer/utils";
if (isLinux) {
const original = navigator.mediaDevices.getDisplayMedia;
const originalMedia = navigator.mediaDevices.getDisplayMedia;
const originalDevices = navigator.mediaDevices.enumerateDevices;
async function getVirtmic() {
try {
const devices = await navigator.mediaDevices.enumerateDevices();
const devices = await originalDevices();
const audioDevice = devices.find(({ label }) => label === "vencord-screen-share");
return audioDevice?.deviceId;
} catch (error) {
@ -19,8 +20,13 @@ if (isLinux) {
}
}
navigator.mediaDevices.enumerateDevices = async function () {
const result = await originalDevices.call(this);
return result.filter(x => x.label !== "vencord-screen-share");
};
navigator.mediaDevices.getDisplayMedia = async function (opts) {
const stream = await original.call(this, opts);
const stream = await originalMedia.call(this, opts);
const id = await getVirtmic();
if (id) {