Support multiple audio APIs, allowing ALSA for Linux and ASIO for Windows (#2363).
[dcpomatic.git] / src / lib / config.h
index 463eec47ed6d3f6a0f6bbf3893a1a27de6d75d32..a91d58e641b5c9d5f89e8c0d57070eb50bb7b655 100644 (file)
@@ -86,6 +86,7 @@ public:
                CINEMAS,
                DKDM_RECIPIENTS,
                SOUND,
+               SOUND_API,
                SOUND_OUTPUT,
                PLAYER_CONTENT_DIRECTORY,
                PLAYER_PLAYLIST_DIRECTORY,
@@ -440,6 +441,10 @@ public:
                return _cover_sheet;
        }
 
+       boost::optional<std::string> sound_api() const {
+               return _sound_api;
+       }
+
        boost::optional<std::string> sound_output () const {
                return _sound_output;
        }
@@ -906,6 +911,19 @@ public:
                maybe_set (_sound, s, SOUND);
        }
 
+       void set_sound_api(std::string api) {
+               maybe_set(_sound_api, api, SOUND_API);
+       }
+
+       void unset_sound_api() {
+               if (!_sound_api) {
+                       return;
+               }
+
+               _sound_api = boost::none;
+               changed(SOUND_API);
+       }
+
        void set_sound_output (std::string o) {
                maybe_set (_sound_output, o, SOUND_OUTPUT);
        }
@@ -1356,6 +1374,7 @@ private:
        bool _jump_to_selected;
        bool _nagged[NAG_COUNT];
        bool _sound;
+       boost::optional<std::string> _sound_api;
        /** name of a specific sound output stream to use, or empty to use the default */
        boost::optional<std::string> _sound_output;
        std::string _cover_sheet;