Compare commits
10 Commits
v1.0.0-rc.
...
v1.0.0-rc.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6fc6140ce2 | ||
|
|
84c12a752e | ||
|
|
1199381803 | ||
|
|
bce32e2ba1 | ||
|
|
bc59458e19 | ||
|
|
6492cb9a35 | ||
|
|
a814d9cc1b | ||
|
|
dd107c6767 | ||
|
|
50be25d7db | ||
|
|
fd894fb63e |
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@@ -0,0 +1,3 @@
|
||||
[submodule "submodules/rohrkabel"]
|
||||
path = submodules/rohrkabel
|
||||
url = https://github.com/Soundux/rohrkabel
|
||||
@@ -22,14 +22,26 @@ set(discord-screenaudio_SRC
|
||||
resources.qrc
|
||||
)
|
||||
|
||||
include(FetchContent)
|
||||
# Adapted from https://cliutils.gitlab.io/modern-cmake/chapters/projects/submodule.html
|
||||
find_package(Git QUIET)
|
||||
if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
|
||||
option(GIT_SUBMODULE "Check submodules during build" ON)
|
||||
if(GIT_SUBMODULE)
|
||||
message(STATUS "Updating submodules")
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive --checkout
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
RESULT_VARIABLE GIT_SUBMOD_RESULT)
|
||||
if(NOT GIT_SUBMOD_RESULT EQUAL "0")
|
||||
message(FATAL_ERROR "`git submodule update --init --recursive --checkout` failed with ${GIT_SUBMOD_RESULT}, please provide the submodules manually")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
FetchContent_Declare(
|
||||
rohrkabel
|
||||
GIT_REPOSITORY "https://github.com/Soundux/rohrkabel"
|
||||
GIT_TAG "d87403f48d3a95aa4bcf4cd60112d9e4bb090d5d"
|
||||
)
|
||||
FetchContent_MakeAvailable(rohrkabel)
|
||||
if(NOT EXISTS "${PROJECT_SOURCE_DIR}/submodules/rohrkabel/CMakeLists.txt")
|
||||
message(FATAL_ERROR "Rohrkabel was not found since you are not in a Git checkout or have GIT_SUBMODULE disabled. Please provide rohrkabel manually to `./submodules/rohrkabel`.")
|
||||
endif()
|
||||
|
||||
add_subdirectory(submodules/rohrkabel)
|
||||
|
||||
add_executable(discord-screenaudio ${discord-screenaudio_SRC})
|
||||
|
||||
|
||||
@@ -9,6 +9,12 @@ of [@edisionnano](https://github.com/edisionnano) and the
|
||||
|
||||

|
||||
|
||||
## Known Issues
|
||||
|
||||
- Only works with **PipeWire**
|
||||
- Only works on **X11**
|
||||
- Can only share primary screen (no other screens or specific applications) (see [#1](https://github.com/maltejur/discord-screenaudio/issues/1))
|
||||
|
||||
## Installation
|
||||
|
||||
If you are using Arch, you can build and install
|
||||
|
||||
@@ -117,7 +117,7 @@ setInterval(() => {
|
||||
) {
|
||||
for (const el of document.getElementsByClassName("info-3pQQBb")) {
|
||||
const aboutEl = document.createElement("div");
|
||||
aboutEl.innerText = "discord-screenaudio v1.0.0-rc.5";
|
||||
aboutEl.innerText = "discord-screenaudio v1.0.0-rc.6";
|
||||
aboutEl.style.fontSize = "12px";
|
||||
aboutEl.style.color = "var(--text-muted)";
|
||||
aboutEl.classList.add("dirscordScreenaudioAboutText");
|
||||
@@ -128,4 +128,4 @@ setInterval(() => {
|
||||
// Remove stream settings if stream is active
|
||||
document.getElementById("manage-streams-change-windows")?.remove();
|
||||
document.querySelector(`[aria-label="Stream Settings"]`)?.remove();
|
||||
}, 1000);
|
||||
}, 500);
|
||||
|
||||
@@ -63,6 +63,15 @@ void DiscordPage::featurePermissionRequested(const QUrl &securityOrigin,
|
||||
// Allow every permission asked
|
||||
setFeaturePermission(securityOrigin, feature,
|
||||
QWebEnginePage::PermissionGrantedByUser);
|
||||
|
||||
if (feature == QWebEnginePage::Feature::MediaAudioCapture) {
|
||||
if (m_virtmicProcess.state() == QProcess::NotRunning) {
|
||||
qDebug() << "[virtmic] Starting Virtmic with no target to make sure "
|
||||
"Discord can find all the audio devices";
|
||||
m_virtmicProcess.start(QApplication::arguments()[0],
|
||||
{"--virtmic", "None"});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool DiscordPage::acceptNavigationRequest(const QUrl &url,
|
||||
@@ -80,6 +89,7 @@ void DiscordPage::stopVirtmic() {
|
||||
if (m_virtmicProcess.state() == QProcess::Running) {
|
||||
qDebug() << "[virtmic] Stopping Virtmic";
|
||||
m_virtmicProcess.kill();
|
||||
m_virtmicProcess.waitForFinished();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
int main(int argc, char *argv[]) {
|
||||
QApplication app(argc, argv);
|
||||
QApplication::setApplicationName("discord-screenaudio");
|
||||
QApplication::setApplicationVersion("1.0.0-rc.5");
|
||||
QApplication::setApplicationVersion("1.0.0-rc.6");
|
||||
|
||||
QCommandLineParser parser;
|
||||
parser.setApplicationDescription(
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
#include "virtmic.h"
|
||||
|
||||
#include <rohrkabel/loop/main.hpp>
|
||||
#include <rohrkabel/registry/registry.hpp>
|
||||
|
||||
namespace Virtmic {
|
||||
|
||||
QVector<QString> getTargets() {
|
||||
@@ -24,7 +27,7 @@ QVector<QString> getTargets() {
|
||||
}
|
||||
}
|
||||
});
|
||||
core.sync();
|
||||
core.update();
|
||||
|
||||
return targets;
|
||||
}
|
||||
@@ -81,14 +84,21 @@ void start(QString _target) {
|
||||
|
||||
std::string target = _target.toLatin1().toStdString();
|
||||
|
||||
auto virtual_mic =
|
||||
core.create("adapter",
|
||||
{{"node.name", "discord-screenaudio-virtmic"},
|
||||
{"media.class", "Audio/Source/Virtual"},
|
||||
{"factory.name", "support.null-audio-sink"},
|
||||
{"audio.channels", "2"},
|
||||
{"audio.position", "FL,FR"}},
|
||||
pipewire::node::type, pipewire::node::version, false);
|
||||
auto virtual_mic = core.create("adapter",
|
||||
{{"node.name", "discord-screenaudio-virtmic"},
|
||||
{"media.class", "Audio/Source/Virtual"},
|
||||
{"factory.name", "support.null-audio-sink"},
|
||||
{"audio.channels", "2"},
|
||||
{"audio.position", "FL,FR"}},
|
||||
pipewire::node::type, pipewire::node::version,
|
||||
pipewire::update_strategy::none);
|
||||
|
||||
if (target == "None") {
|
||||
while (true) {
|
||||
main_loop.run();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
auto reg_events = reg.listen<pipewire::registry_listener>();
|
||||
reg_events.on<pipewire::registry_event::global>(
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
#include <QString>
|
||||
#include <QVector>
|
||||
#include <iostream>
|
||||
#include <rohrkabel/registry/registry.hpp>
|
||||
|
||||
namespace Virtmic {
|
||||
|
||||
|
||||
1
submodules/rohrkabel
Submodule
1
submodules/rohrkabel
Submodule
Submodule submodules/rohrkabel added at 04bfb921c4
Reference in New Issue
Block a user