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 |   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( | if(NOT EXISTS "${PROJECT_SOURCE_DIR}/submodules/rohrkabel/CMakeLists.txt") | ||||||
|   rohrkabel  |   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`.") | ||||||
|   GIT_REPOSITORY "https://github.com/Soundux/rohrkabel"  | endif() | ||||||
|   GIT_TAG "d87403f48d3a95aa4bcf4cd60112d9e4bb090d5d" |  | ||||||
| ) | add_subdirectory(submodules/rohrkabel) | ||||||
| FetchContent_MakeAvailable(rohrkabel) |  | ||||||
|  |  | ||||||
| add_executable(discord-screenaudio ${discord-screenaudio_SRC}) | 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 | ## Installation | ||||||
|  |  | ||||||
| If you are using Arch, you can build and install | If you are using Arch, you can build and install | ||||||
|   | |||||||
| @@ -117,7 +117,7 @@ setInterval(() => { | |||||||
|   ) { |   ) { | ||||||
|     for (const el of document.getElementsByClassName("info-3pQQBb")) { |     for (const el of document.getElementsByClassName("info-3pQQBb")) { | ||||||
|       const aboutEl = document.createElement("div"); |       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.fontSize = "12px"; | ||||||
|       aboutEl.style.color = "var(--text-muted)"; |       aboutEl.style.color = "var(--text-muted)"; | ||||||
|       aboutEl.classList.add("dirscordScreenaudioAboutText"); |       aboutEl.classList.add("dirscordScreenaudioAboutText"); | ||||||
| @@ -128,4 +128,4 @@ setInterval(() => { | |||||||
|   // Remove stream settings if stream is active |   // Remove stream settings if stream is active | ||||||
|   document.getElementById("manage-streams-change-windows")?.remove(); |   document.getElementById("manage-streams-change-windows")?.remove(); | ||||||
|   document.querySelector(`[aria-label="Stream Settings"]`)?.remove(); |   document.querySelector(`[aria-label="Stream Settings"]`)?.remove(); | ||||||
| }, 1000); | }, 500); | ||||||
|   | |||||||
| @@ -63,6 +63,15 @@ void DiscordPage::featurePermissionRequested(const QUrl &securityOrigin, | |||||||
|   // Allow every permission asked |   // Allow every permission asked | ||||||
|   setFeaturePermission(securityOrigin, feature, |   setFeaturePermission(securityOrigin, feature, | ||||||
|                        QWebEnginePage::PermissionGrantedByUser); |                        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, | bool DiscordPage::acceptNavigationRequest(const QUrl &url, | ||||||
| @@ -80,6 +89,7 @@ void DiscordPage::stopVirtmic() { | |||||||
|   if (m_virtmicProcess.state() == QProcess::Running) { |   if (m_virtmicProcess.state() == QProcess::Running) { | ||||||
|     qDebug() << "[virtmic] Stopping Virtmic"; |     qDebug() << "[virtmic] Stopping Virtmic"; | ||||||
|     m_virtmicProcess.kill(); |     m_virtmicProcess.kill(); | ||||||
|  |     m_virtmicProcess.waitForFinished(); | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -7,7 +7,7 @@ | |||||||
| int main(int argc, char *argv[]) { | int main(int argc, char *argv[]) { | ||||||
|   QApplication app(argc, argv); |   QApplication app(argc, argv); | ||||||
|   QApplication::setApplicationName("discord-screenaudio"); |   QApplication::setApplicationName("discord-screenaudio"); | ||||||
|   QApplication::setApplicationVersion("1.0.0-rc.5"); |   QApplication::setApplicationVersion("1.0.0-rc.6"); | ||||||
|  |  | ||||||
|   QCommandLineParser parser; |   QCommandLineParser parser; | ||||||
|   parser.setApplicationDescription( |   parser.setApplicationDescription( | ||||||
|   | |||||||
| @@ -1,5 +1,8 @@ | |||||||
| #include "virtmic.h" | #include "virtmic.h" | ||||||
|  |  | ||||||
|  | #include <rohrkabel/loop/main.hpp> | ||||||
|  | #include <rohrkabel/registry/registry.hpp> | ||||||
|  |  | ||||||
| namespace Virtmic { | namespace Virtmic { | ||||||
|  |  | ||||||
| QVector<QString> getTargets() { | QVector<QString> getTargets() { | ||||||
| @@ -24,7 +27,7 @@ QVector<QString> getTargets() { | |||||||
|           } |           } | ||||||
|         } |         } | ||||||
|       }); |       }); | ||||||
|   core.sync(); |   core.update(); | ||||||
|  |  | ||||||
|   return targets; |   return targets; | ||||||
| } | } | ||||||
| @@ -81,14 +84,21 @@ void start(QString _target) { | |||||||
|  |  | ||||||
|   std::string target = _target.toLatin1().toStdString(); |   std::string target = _target.toLatin1().toStdString(); | ||||||
|  |  | ||||||
|   auto virtual_mic = |   auto virtual_mic = core.create("adapter", | ||||||
|       core.create("adapter", |                                  {{"node.name", "discord-screenaudio-virtmic"}, | ||||||
|                   {{"node.name", "discord-screenaudio-virtmic"}, |                                   {"media.class", "Audio/Source/Virtual"}, | ||||||
|                    {"media.class", "Audio/Source/Virtual"}, |                                   {"factory.name", "support.null-audio-sink"}, | ||||||
|                    {"factory.name", "support.null-audio-sink"}, |                                   {"audio.channels", "2"}, | ||||||
|                    {"audio.channels", "2"}, |                                   {"audio.position", "FL,FR"}}, | ||||||
|                    {"audio.position", "FL,FR"}}, |                                  pipewire::node::type, pipewire::node::version, | ||||||
|                   pipewire::node::type, pipewire::node::version, false); |                                  pipewire::update_strategy::none); | ||||||
|  |  | ||||||
|  |   if (target == "None") { | ||||||
|  |     while (true) { | ||||||
|  |       main_loop.run(); | ||||||
|  |     } | ||||||
|  |     return; | ||||||
|  |   } | ||||||
|  |  | ||||||
|   auto reg_events = reg.listen<pipewire::registry_listener>(); |   auto reg_events = reg.listen<pipewire::registry_listener>(); | ||||||
|   reg_events.on<pipewire::registry_event::global>( |   reg_events.on<pipewire::registry_event::global>( | ||||||
|   | |||||||
| @@ -3,7 +3,6 @@ | |||||||
| #include <QString> | #include <QString> | ||||||
| #include <QVector> | #include <QVector> | ||||||
| #include <iostream> | #include <iostream> | ||||||
| #include <rohrkabel/registry/registry.hpp> |  | ||||||
|  |  | ||||||
| namespace Virtmic { | namespace Virtmic { | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										1
									
								
								submodules/rohrkabel
									
									
									
									
									
										Submodule
									
								
							
							
								
								
								
								
								
							
						
						
									
										1
									
								
								submodules/rohrkabel
									
									
									
									
									
										Submodule
									
								
							 Submodule submodules/rohrkabel added at 04bfb921c4
									
								
							
		Reference in New Issue
	
	Block a user