diff --git a/advancedSettings.pro b/advancedSettings.pro index 43b9009..733fb36 100644 --- a/advancedSettings.pro +++ b/advancedSettings.pro @@ -22,11 +22,11 @@ SOURCES += src/main.cpp\ src/tabcontrollers/StatisticsTabController.cpp \ src/tabcontrollers/SteamVRTabController.cpp \ src/tabcontrollers/ReviveTabController.cpp \ - src/tabcontrollers/UtilitiesTabController.cpp \ - src/tabcontrollers/audiomanager/AudioManagerWindows.cpp \ - src/tabcontrollers/PttController.cpp \ - src/tabcontrollers/AccessibilityTabController.cpp \ - src/utils/ChaperoneUtils.cpp + src/tabcontrollers/UtilitiesTabController.cpp \ + src/tabcontrollers/PttController.cpp \ + src/tabcontrollers/AccessibilityTabController.cpp \ + src/utils/ChaperoneUtils.cpp \ + src/tabcontrollers/audiomanager/AudioManagerDummy.cpp HEADERS += src/overlaycontroller.h \ src/logging.h \ @@ -39,12 +39,17 @@ HEADERS += src/overlaycontroller.h \ src/tabcontrollers/SteamVRTabController.h \ src/tabcontrollers/ReviveTabController.h \ src/tabcontrollers/UtilitiesTabController.h \ - src/tabcontrollers/AudioManager.h \ - src/tabcontrollers/audiomanager/AudioManagerWindows.h \ + src/tabcontrollers/AudioManager.h \ src/tabcontrollers/PttController.h \ src/tabcontrollers/AccessibilityTabController.h \ src/utils/Matrix.h \ - src/utils/ChaperoneUtils.h + src/utils/ChaperoneUtils.h \ + src/tabcontrollers/audiomanager/AudioManagerDummy.h + +win32 { + SOURCES += src/tabcontrollers/audiomanager/AudioManagerWindows.h + HEADERS += src/tabcontrollers/audiomanager/AudioManagerWindows.h +} INCLUDEPATH += third-party/openvr/headers \ third-party/easylogging++ diff --git a/src/tabcontrollers/AudioTabController.cpp b/src/tabcontrollers/AudioTabController.cpp index ce14633..fd82dc7 100644 --- a/src/tabcontrollers/AudioTabController.cpp +++ b/src/tabcontrollers/AudioTabController.cpp @@ -2,14 +2,22 @@ #include #include #include "../overlaycontroller.h" -#include "audiomanager/AudioManagerWindows.h" +#ifdef _WIN32 + #include "audiomanager/AudioManagerWindows.h" +#else + #include "audiomanager/AudioManagerDummy.h" +#endif // application namespace namespace advsettings { void AudioTabController::initStage1() { vr::EVRSettingsError vrSettingsError; + #ifdef _WIN32 audioManager.reset(new AudioManagerWindows()); + #else + audioManager.reset(new AudioManagerDummy()); + #endif audioManager->init(this); m_playbackDevices = audioManager->getPlaybackDevices(); m_recordingDevices = audioManager->getRecordingDevices(); diff --git a/src/tabcontrollers/audiomanager/AudioManagerDummy.cpp b/src/tabcontrollers/audiomanager/AudioManagerDummy.cpp new file mode 100644 index 0000000..2c3a612 --- /dev/null +++ b/src/tabcontrollers/audiomanager/AudioManagerDummy.cpp @@ -0,0 +1,118 @@ +#include "AudioManagerDummy.h" + +// application namespace +namespace advsettings { + +void AudioManagerDummy::init(AudioTabController *controller) +{ + // noop +} + +void AudioManagerDummy::setPlaybackDevice(const std::string &id, bool notify) +{ + // noop +} + +std::string AudioManagerDummy::getPlaybackDevName() +{ + return "dummy"; +} + +std::string AudioManagerDummy::getPlaybackDevId() +{ + return "dummy"; +} + +void AudioManagerDummy::setMirrorDevice(const std::string &id, bool notify) +{ + // noop +} + +bool AudioManagerDummy::isMirrorValid() +{ + return false; +} + +std::string AudioManagerDummy::getMirrorDevName() +{ + return "dummy"; +} + +std::string AudioManagerDummy::getMirrorDevId() +{ + return "dummy"; +} + +float AudioManagerDummy::getMirrorVolume() +{ + return 0; +} + +bool AudioManagerDummy::setMirrorVolume(float value) +{ + return false; +} + +bool AudioManagerDummy::getMirrorMuted() +{ + return true; +} + +bool AudioManagerDummy::setMirrorMuted(bool value) +{ + return false; +} + +bool AudioManagerDummy::isMicValid() +{ + return false; +} + +void AudioManagerDummy::setMicDevice(const std::string &id, bool notify) +{ + // noop +} + +std::string AudioManagerDummy::getMicDevName() +{ + return "dummy"; +} + +std::string AudioManagerDummy::getMicDevId() +{ + return "dummy"; +} + +float AudioManagerDummy::getMicVolume() +{ + return 0; +} + +bool AudioManagerDummy::setMicVolume(float value) +{ + return false; +} + +bool AudioManagerDummy::getMicMuted() +{ + return true; +} + +bool AudioManagerDummy::setMicMuted(bool value) +{ + return false; +} + +std::vector > AudioManagerDummy::getRecordingDevices() +{ + return {}; +} + +std::vector > AudioManagerDummy::getPlaybackDevices() +{ + return {}; +} + + + +} diff --git a/src/tabcontrollers/audiomanager/AudioManagerDummy.h b/src/tabcontrollers/audiomanager/AudioManagerDummy.h new file mode 100644 index 0000000..5094f10 --- /dev/null +++ b/src/tabcontrollers/audiomanager/AudioManagerDummy.h @@ -0,0 +1,42 @@ +#ifndef AUDIOMANAGERLINUX_H +#define AUDIOMANAGERLINUX_H + +#include "../AudioManager.h" + +// application namespace +namespace advsettings { + +class AudioManagerDummy : public AudioManager +{ +public: + + virtual void init(AudioTabController* controller) override; + + virtual void setPlaybackDevice(const std::string& id, bool notify = true) override; + virtual std::string getPlaybackDevName() override; + virtual std::string getPlaybackDevId() override; + + virtual void setMirrorDevice(const std::string& id, bool notify = true) override; + virtual bool isMirrorValid() override; + virtual std::string getMirrorDevName() override; + virtual std::string getMirrorDevId() override; + virtual float getMirrorVolume() override; + virtual bool setMirrorVolume(float value) override; + virtual bool getMirrorMuted() override; + virtual bool setMirrorMuted(bool value) override; + + virtual bool isMicValid() override; + virtual void setMicDevice(const std::string& id, bool notify = true) override; + virtual std::string getMicDevName() override; + virtual std::string getMicDevId() override; + virtual float getMicVolume() override; + virtual bool setMicVolume(float value) override; + virtual bool getMicMuted() override; + virtual bool setMicMuted(bool value) override; + + virtual std::vector> getRecordingDevices() override; + virtual std::vector> getPlaybackDevices() override; +}; + +} +#endif // AUDIOMANAGERLINUX_H diff --git a/src/tabcontrollers/audiomanager/AudioManagerWindows.h b/src/tabcontrollers/audiomanager/AudioManagerWindows.h index f0dba1a..d624564 100644 --- a/src/tabcontrollers/audiomanager/AudioManagerWindows.h +++ b/src/tabcontrollers/audiomanager/AudioManagerWindows.h @@ -1,6 +1,6 @@ #pragma once -#include "../audiomanager.h" +#include "../AudioManager.h" #include #include