aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/sound.hpp2
-rw-r--r--src/main.cpp15
2 files changed, 15 insertions, 2 deletions
diff --git a/include/sound.hpp b/include/sound.hpp
index 6d903d8..d78e4b6 100644
--- a/include/sound.hpp
+++ b/include/sound.hpp
@@ -18,6 +18,7 @@
#ifndef GPU_SCREEN_RECORDER_H
#define GPU_SCREEN_RECORDER_H
+#include <optional>
#include <vector>
#include <string>
@@ -49,6 +50,7 @@ struct AudioInput {
};
struct MergedAudioInputs {
+ std::optional<std::string> custom_name;
std::string track_name;
std::vector<AudioInput> audio_inputs;
};
diff --git a/src/main.cpp b/src/main.cpp
index d64d7f4..2ece52d 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -1375,7 +1375,10 @@ static MergedAudioInputs parse_audio_input_arg(const char *str) {
AudioInput audio_input;
audio_input.name.assign(sub, size);
- if(string_starts_with(audio_input.name.c_str(), "app:")) {
+ if(string_starts_with(audio_input.name.c_str(), "name:")) {
+ result.custom_name = audio_input.name.substr(5);
+ return true;
+ } else if(string_starts_with(audio_input.name.c_str(), "app:")) {
audio_input.name.erase(audio_input.name.begin(), audio_input.name.begin() + 4);
audio_input.type = AudioInputType::APPLICATION;
audio_input.inverted = false;
@@ -2635,11 +2638,15 @@ static void match_app_audio_input_to_available_apps(const std::vector<AudioInput
}
struct AudioTrackDescription {
+ std::optional<std::string> custom_name;
std::vector<std::string> devices;
std::vector<std::string> applications;
bool app_inverse = false;
std::string to_title() const {
+ if(custom_name.has_value()){
+ return custom_name.value();
+ }
std::string title;
if(!devices.empty()) {
title += "Devices: ";
@@ -2680,8 +2687,12 @@ static std::vector<MergedAudioInputs> parse_audio_inputs(const AudioDevices &aud
if(!audio_input || audio_input[0] == '\0')
continue;
- requested_audio_inputs.push_back(parse_audio_input_arg(audio_input));
+ MergedAudioInputs merged_inputs = parse_audio_input_arg(audio_input);
+ requested_audio_inputs.push_back(merged_inputs);
AudioTrackDescription audio_track_description;
+ if(merged_inputs.custom_name.has_value()){
+ audio_track_description.custom_name = merged_inputs.custom_name;
+ }
for(AudioInput &request_audio_input : requested_audio_inputs.back().audio_inputs) {
if(request_audio_input.type == AudioInputType::APPLICATION) {