diff --git a/UI/data/themes/Acri.qss b/UI/data/themes/Acri.qss index 496c55055..0cf4d594e 100644 --- a/UI/data/themes/Acri.qss +++ b/UI/data/themes/Acri.qss @@ -1103,6 +1103,7 @@ OBSBasic { qproperty-groupIcon: url(./Dark/sources/group.svg); qproperty-sceneIcon: url(./Dark/sources/scene.svg); qproperty-defaultIcon: url(./Dark/sources/default.svg); + qproperty-audioProcessOutputIcon: url(./Dark/sources/windowaudio.svg); } /* Scene Tree */ diff --git a/UI/data/themes/Dark.qss b/UI/data/themes/Dark.qss index 4cf1d96c6..5c95fa857 100644 --- a/UI/data/themes/Dark.qss +++ b/UI/data/themes/Dark.qss @@ -817,6 +817,7 @@ OBSBasic { qproperty-groupIcon: url(./Dark/sources/group.svg); qproperty-sceneIcon: url(./Dark/sources/scene.svg); qproperty-defaultIcon: url(./Dark/sources/default.svg); + qproperty-audioProcessOutputIcon: url(./Dark/sources/windowaudio.svg); } /* Scene Tree */ diff --git a/UI/data/themes/Dark/sources/windowaudio.svg b/UI/data/themes/Dark/sources/windowaudio.svg new file mode 100644 index 000000000..5a78397d7 --- /dev/null +++ b/UI/data/themes/Dark/sources/windowaudio.svg @@ -0,0 +1 @@ + diff --git a/UI/data/themes/Rachni.qss b/UI/data/themes/Rachni.qss index a7e4fcdec..f1c7eff80 100644 --- a/UI/data/themes/Rachni.qss +++ b/UI/data/themes/Rachni.qss @@ -1392,6 +1392,7 @@ OBSBasic { qproperty-groupIcon: url(./Dark/sources/group.svg); qproperty-sceneIcon: url(./Dark/sources/scene.svg); qproperty-defaultIcon: url(./Dark/sources/default.svg); + qproperty-audioProcessOutputIcon: url(./Dark/sources/windowaudio.svg); } /* Scene Tree */ diff --git a/UI/data/themes/System.qss b/UI/data/themes/System.qss index bd4ae72a8..d54f541b8 100644 --- a/UI/data/themes/System.qss +++ b/UI/data/themes/System.qss @@ -242,6 +242,7 @@ OBSBasic { qproperty-groupIcon: url(:res/images/sources/group.svg); qproperty-sceneIcon: url(:res/images/sources/scene.svg); qproperty-defaultIcon: url(:res/images/sources/default.svg); + qproperty-audioProcessOutputIcon: url(:res/images/sources/windowaudio.svg); } /* Scene Tree */ diff --git a/UI/forms/images/sources/windowaudio.svg b/UI/forms/images/sources/windowaudio.svg new file mode 100644 index 000000000..b1a36e7a4 --- /dev/null +++ b/UI/forms/images/sources/windowaudio.svg @@ -0,0 +1 @@ + diff --git a/UI/forms/obs.qrc b/UI/forms/obs.qrc index 721796420..d55cad144 100644 --- a/UI/forms/obs.qrc +++ b/UI/forms/obs.qrc @@ -43,6 +43,7 @@ images/sources/text.svg images/sources/window.svg images/sources/default.svg + images/sources/windowaudio.svg images/recording-active.svg images/recording-inactive.svg images/recording-pause.svg diff --git a/UI/window-basic-main-icons.cpp b/UI/window-basic-main-icons.cpp index 56096bbed..eabda2a73 100644 --- a/UI/window-basic-main-icons.cpp +++ b/UI/window-basic-main-icons.cpp @@ -32,6 +32,8 @@ QIcon OBSBasic::GetSourceIcon(const char *id) const case OBS_ICON_TYPE_CUSTOM: //TODO: Add ability for sources to define custom icons return GetDefaultIcon(); + case OBS_ICON_TYPE_PROCESS_AUDIO_OUTPUT: + return GetAudioProcessOutputIcon(); default: return GetDefaultIcon(); } @@ -112,6 +114,11 @@ void OBSBasic::SetDefaultIcon(const QIcon &icon) defaultIcon = icon; } +void OBSBasic::SetAudioProcessOutputIcon(const QIcon &icon) +{ + audioProcessOutputIcon = icon; +} + QIcon OBSBasic::GetImageIcon() const { return imageIcon; @@ -186,3 +193,8 @@ QIcon OBSBasic::GetDefaultIcon() const { return defaultIcon; } + +QIcon OBSBasic::GetAudioProcessOutputIcon() const +{ + return audioProcessOutputIcon; +} diff --git a/UI/window-basic-main.hpp b/UI/window-basic-main.hpp index f79749dc3..feef6a65f 100644 --- a/UI/window-basic-main.hpp +++ b/UI/window-basic-main.hpp @@ -165,6 +165,8 @@ class OBSBasic : public OBSMainWindow { DESIGNABLE true) Q_PROPERTY(QIcon defaultIcon READ GetDefaultIcon WRITE SetDefaultIcon DESIGNABLE true) + Q_PROPERTY(QIcon audioProcessOutputIcon READ GetAudioProcessOutputIcon + WRITE SetAudioProcessOutputIcon DESIGNABLE true) friend class OBSAbout; friend class OBSBasicPreview; @@ -560,6 +562,7 @@ private: QIcon groupIcon; QIcon sceneIcon; QIcon defaultIcon; + QIcon audioProcessOutputIcon; QIcon GetImageIcon() const; QIcon GetColorIcon() const; @@ -574,6 +577,7 @@ private: QIcon GetMediaIcon() const; QIcon GetBrowserIcon() const; QIcon GetDefaultIcon() const; + QIcon GetAudioProcessOutputIcon() const; QSlider *tBar; bool tBarActive = false; @@ -773,6 +777,7 @@ private slots: void SetGroupIcon(const QIcon &icon); void SetSceneIcon(const QIcon &icon); void SetDefaultIcon(const QIcon &icon); + void SetAudioProcessOutputIcon(const QIcon &icon); void TBarChanged(int value); void TBarReleased(); diff --git a/libobs/obs-source.h b/libobs/obs-source.h index 18a3ecc49..0edbf0bf6 100644 --- a/libobs/obs-source.h +++ b/libobs/obs-source.h @@ -58,6 +58,7 @@ enum obs_icon_type { OBS_ICON_TYPE_MEDIA, OBS_ICON_TYPE_BROWSER, OBS_ICON_TYPE_CUSTOM, + OBS_ICON_TYPE_PROCESS_AUDIO_OUTPUT, }; enum obs_media_state {