Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a10cfda56d | ||
|
|
2a809e163e | ||
|
|
bc317d5531 | ||
|
|
b4db987217 | ||
|
|
9f46e710a9 |
@@ -88,22 +88,22 @@ function createButton(text, onClick) {
|
||||
function createSwitch(text, enabled, onClick) {
|
||||
const container = document.createElement("div");
|
||||
container.style.marginBottom = "20px";
|
||||
container.className = "labelRow-2jl9gK";
|
||||
container.className = "labelRow-NnoUIp";
|
||||
|
||||
const label = document.createElement("label");
|
||||
label.innerText = text;
|
||||
label.className = "title-2dsDLn";
|
||||
label.className = "title-2yADjX";
|
||||
container.appendChild(label);
|
||||
|
||||
const svg = document.createElement("div");
|
||||
container.appendChild(svg);
|
||||
|
||||
function setSvgDisabled() {
|
||||
svg.innerHTML = `<div class="container-2nx-BQ default-colors" style="opacity: 1; background-color: rgb(114, 118, 125);"><svg class="slider-32CRPX" viewBox="0 0 28 20" preserveAspectRatio="xMinYMid meet" aria-hidden="true" style="left: -3px;"><rect fill="white" x="4" y="0" height="20" width="20" rx="10"></rect><svg viewBox="0 0 20 20" fill="none"><path fill="rgba(114, 118, 125, 1)" d="M5.13231 6.72963L6.7233 5.13864L14.855 13.2704L13.264 14.8614L5.13231 6.72963Z"></path><path fill="rgba(114, 118, 125, 1)" d="M13.2704 5.13864L14.8614 6.72963L6.72963 14.8614L5.13864 13.2704L13.2704 5.13864Z"></path></svg></svg></div>`;
|
||||
svg.innerHTML = `<div class="container-1QtPKm default-colors disabled-3_3z1m" style="opacity: 0.3; background-color: rgb(114, 118, 125);"><svg class="slider-HJFN2i" viewBox="0 0 28 20" preserveAspectRatio="xMinYMid meet" aria-hidden="true" style="left: -3px;"><rect fill="white" x="4" y="0" height="20" width="20" rx="10"></rect><svg viewBox="0 0 20 20" fill="none"><path fill="rgba(114, 118, 125, 1)" d="M5.13231 6.72963L6.7233 5.13864L14.855 13.2704L13.264 14.8614L5.13231 6.72963Z"></path><path fill="rgba(114, 118, 125, 1)" d="M13.2704 5.13864L14.8614 6.72963L6.72963 14.8614L5.13864 13.2704L13.2704 5.13864Z"></path></svg></svg><input id="uid_75" type="checkbox" class="input-125oad" tabindex="-1" disabled=""></div>`;
|
||||
}
|
||||
|
||||
function setSvgEnabled() {
|
||||
svg.innerHTML = `<div class="container-2nx-BQ default-colors checked-25WXMf" style="opacity: 1; background-color: rgb(59, 165, 92);"><svg class="slider-32CRPX" viewBox="0 0 28 20" preserveAspectRatio="xMinYMid meet" aria-hidden="true" style="left: 12px;"><rect fill="white" x="4" y="0" height="20" width="20" rx="10"></rect><svg viewBox="0 0 20 20" fill="none"><path fill="rgba(59, 165, 92, 1)" d="M7.89561 14.8538L6.30462 13.2629L14.3099 5.25755L15.9009 6.84854L7.89561 14.8538Z"></path><path fill="rgba(59, 165, 92, 1)" d="M4.08643 11.0903L5.67742 9.49929L9.4485 13.2704L7.85751 14.8614L4.08643 11.0903Z"></path></svg></svg></div>`;
|
||||
svg.innerHTML = `<div class="container-1QtPKm default-colors checked-16gMAN" style="opacity: 1; background-color: rgb(59, 165, 92);"><svg class="slider-HJFN2i" viewBox="0 0 28 20" preserveAspectRatio="xMinYMid meet" aria-hidden="true" style="left: 12px;"><rect fill="white" x="4" y="0" height="20" width="20" rx="10"></rect><svg viewBox="0 0 20 20" fill="none"><path fill="rgba(59, 165, 92, 1)" d="M7.89561 14.8538L6.30462 13.2629L14.3099 5.25755L15.9009 6.84854L7.89561 14.8538Z"></path><path fill="rgba(59, 165, 92, 1)" d="M4.08643 11.0903L5.67742 9.49929L9.4485 13.2704L7.85751 14.8614L4.08643 11.0903Z"></path></svg></svg><input id="uid_74" type="checkbox" class="input-125oad" tabindex="0" checked=""></div>`;
|
||||
}
|
||||
|
||||
function updateSvg() {
|
||||
@@ -272,7 +272,7 @@ setInterval(() => {
|
||||
);
|
||||
if (!discordScreenaudioSettings) {
|
||||
const firstDivider = accountTab.getElementsByClassName(
|
||||
"divider-_0um2u marginTop40-Q4o1tS"
|
||||
"divider-3nqZNm marginTop40-Q4o1tS"
|
||||
)[0];
|
||||
if (firstDivider) {
|
||||
const section = document.createElement("div");
|
||||
@@ -281,7 +281,7 @@ setInterval(() => {
|
||||
|
||||
const title = document.createElement("h2");
|
||||
title.className =
|
||||
"h1-34Txb0 title-3hptVQ defaultColor-2cKwKo defaultMarginh1-EURXsm";
|
||||
"h1-3iMExa title-lXcL8p defaultColor-3Olr-9 defaultMarginh1-1UYutH";
|
||||
title.innerText = "discord-screenaudio";
|
||||
section.appendChild(title);
|
||||
|
||||
@@ -296,13 +296,14 @@ setInterval(() => {
|
||||
"Move discord-screenaudio to the system tray instead of closing",
|
||||
window.discordScreenaudioTrayEnabled,
|
||||
(enabled) => {
|
||||
window.discordScreenaudioTrayEnabled = enabled;
|
||||
console.log(`!discord-screenaudio-tray-${enabled}`);
|
||||
}
|
||||
)
|
||||
);
|
||||
|
||||
const divider = document.createElement("div");
|
||||
divider.className = "divider-_0um2u marginTop40-Q4o1tS";
|
||||
divider.className = "divider-3nqZNm marginTop40-Q4o1tS";
|
||||
|
||||
firstDivider.after(section);
|
||||
section.after(divider);
|
||||
|
||||
@@ -125,6 +125,8 @@ void MainWindow::setupTrayIcon() {
|
||||
}
|
||||
|
||||
void MainWindow::cleanTrayIcon() {
|
||||
if (m_trayIcon == nullptr)
|
||||
return;
|
||||
m_trayIcon->hide();
|
||||
m_trayIconMenu->deleteLater();
|
||||
m_trayIcon->deleteLater();
|
||||
|
||||
@@ -30,7 +30,7 @@ private:
|
||||
QWebEngineProfile *prepareProfile();
|
||||
DiscordPage *m_discordPage;
|
||||
void closeEvent(QCloseEvent *event) override;
|
||||
QSystemTrayIcon *m_trayIcon;
|
||||
QSystemTrayIcon *m_trayIcon = nullptr;
|
||||
QMenu *m_trayIconMenu;
|
||||
QSettings *m_settings;
|
||||
bool m_wasMaximized;
|
||||
|
||||
@@ -22,7 +22,13 @@ QVector<QString> getTargets() {
|
||||
if (global.type == pipewire::node::type) {
|
||||
auto node = reg.bind<pipewire::node>(global.id);
|
||||
auto info = node.info();
|
||||
auto name = QString::fromStdString(info.props["application.name"]);
|
||||
QString name;
|
||||
if (info.props.count("application.name") &&
|
||||
info.props["application.name"] != "")
|
||||
name = QString::fromStdString(info.props["application.name"]);
|
||||
else
|
||||
name = QString::fromStdString(
|
||||
info.props["application.process.binary"]);
|
||||
|
||||
if (name != "" && !EXCLUDE_TARGETS.contains(name) &&
|
||||
!targets.contains(name)) {
|
||||
@@ -67,7 +73,12 @@ void start(QString _target) {
|
||||
continue;
|
||||
|
||||
auto &parent = nodes.at(parent_id);
|
||||
auto name = parent.props["application.name"];
|
||||
std::string name;
|
||||
if (parent.props.count("application.name") &&
|
||||
parent.props["application.name"] != "")
|
||||
name = parent.props["application.name"];
|
||||
else
|
||||
name = parent.props["application.process.binary"];
|
||||
|
||||
if (name == target ||
|
||||
(target == "[All Desktop Audio]" &&
|
||||
@@ -78,8 +89,7 @@ void start(QString _target) {
|
||||
core.create<pipewire::link_factory>(
|
||||
{fl ? virt_fl->info().id : virt_fr->info().id, port_id}));
|
||||
qDebug(virtmicLog) << QString("Link: %1:%2 -> %3")
|
||||
.arg(QString::fromStdString(
|
||||
parent.props["application.name"]))
|
||||
.arg(QString::fromStdString(name))
|
||||
.arg(port_id)
|
||||
.arg(fl ? virt_fl->info().id
|
||||
: virt_fr->info().id)
|
||||
@@ -112,11 +122,17 @@ void start(QString _target) {
|
||||
[&](const pipewire::global &global) {
|
||||
if (global.type == pipewire::node::type) {
|
||||
auto node = reg.bind<pipewire::node>(global.id);
|
||||
if (!node.info().props.count("application.name"))
|
||||
auto info = node.info();
|
||||
std::string name;
|
||||
if (info.props.count("application.name") &&
|
||||
info.props["application.name"] != "")
|
||||
name = info.props["application.name"];
|
||||
else if (info.props.count("application.process.binary")) {
|
||||
name = info.props["application.process.binary"];
|
||||
} else
|
||||
return;
|
||||
qDebug(virtmicLog) << QString("Added: %1")
|
||||
.arg(QString::fromStdString(
|
||||
node.info().props["application.name"]))
|
||||
.arg(QString::fromStdString(name))
|
||||
.toUtf8()
|
||||
.data();
|
||||
|
||||
@@ -152,9 +168,14 @@ void start(QString _target) {
|
||||
[&](const std::uint32_t id) {
|
||||
if (nodes.count(id)) {
|
||||
auto info = nodes.at(id);
|
||||
std::string name;
|
||||
if (info.props.count("application.name") &&
|
||||
info.props["application.name"] != "")
|
||||
name = info.props["application.name"];
|
||||
else
|
||||
name = info.props["application.process.binary"];
|
||||
qDebug(virtmicLog) << QString("Removed: %1")
|
||||
.arg(QString::fromStdString(
|
||||
info.props["application.name"].data()))
|
||||
.arg(QString::fromStdString(name))
|
||||
.toUtf8()
|
||||
.data();
|
||||
nodes.erase(id);
|
||||
|
||||
Reference in New Issue
Block a user