libdisplaydevice master
C++ library to modify display devices.
settings_manager.h
Go to the documentation of this file.
1
5#pragma once
6
7// system includes
8#include <memory>
9
10// local includes
14#include "persistent_state.h"
15
16namespace display_device {
26 public:
34 explicit MacSettingsManager(
35 std::shared_ptr<MacDisplayDeviceInterface> dd_api,
36 std::shared_ptr<AudioContextInterface> audio_context_api,
37 std::unique_ptr<MacPersistentState> persistent_state,
38 MacWorkarounds workarounds
39 );
40
44 [[nodiscard]] EnumeratedDeviceList enumAvailableDevices() const override;
45
49 [[nodiscard]] std::string getDisplayName(const std::string &device_id) const override;
50
54 [[nodiscard]] ApplyResult applySettings(const SingleDisplayConfiguration &config) override;
55
59 [[nodiscard]] RevertResult revertSettings() override;
60
64 [[nodiscard]] bool resetPersistence() override;
65
70 [[nodiscard]] const std::shared_ptr<AudioContextInterface> &getAudioContextApi() const;
71
72 private:
73 std::shared_ptr<MacDisplayDeviceInterface> m_dd_api;
74 std::shared_ptr<AudioContextInterface> m_audio_context_api;
75 std::unique_ptr<MacPersistentState> m_persistence_state;
76 [[no_unique_address]] MacWorkarounds m_workarounds;
77 };
78} // namespace display_device
Declarations for the AudioContextInterface.
Default macOS implementation for the SettingsManagerInterface.
Definition settings_manager.h:25
EnumeratedDeviceList enumAvailableDevices() const override
Enumerate the available (active and inactive) devices.
Definition settings_manager_general.cpp:38
bool resetPersistence() override
Reset the persistence in case the settings cannot be reverted.
Definition settings_manager_general.cpp:50
RevertResult revertSettings() override
Revert the applied configuration and restore the previous settings.
Definition settings_manager_revert.cpp:14
std::string getDisplayName(const std::string &device_id) const override
Get the platform-specific display name associated with the device.
Definition settings_manager_general.cpp:42
const std::shared_ptr< AudioContextInterface > & getAudioContextApi() const
Get the audio context API.
Definition settings_manager_general.cpp:46
ApplyResult applySettings(const SingleDisplayConfiguration &config) override
Apply the provided configuration to the system.
Definition settings_manager_apply.cpp:264
MacSettingsManager(std::shared_ptr< MacDisplayDeviceInterface > dd_api, std::shared_ptr< AudioContextInterface > audio_context_api, std::unique_ptr< MacPersistentState > persistent_state, MacWorkarounds workarounds)
Default constructor for the class.
Definition settings_manager_general.cpp:15
A class for applying and reverting display device settings.
Definition settings_manager_interface.h:14
RevertResult
Outcome values when trying to revert settings.
Definition settings_manager_interface.h:32
ApplyResult
Outcome values when trying to apply settings.
Definition settings_manager_interface.h:19
std::vector< EnumeratedDevice > EnumeratedDeviceList
A list of EnumeratedDevice objects.
Definition types.h:208
Declarations for the MacDisplayDeviceInterface.
Declarations for the MacPersistentState.
Declarations for the SettingsManagerInterface.
Settings for macOS-specific workarounds.
Definition types.h:144
Configuration centered around a single display.
Definition types.h:216