Always send enabled state in extension update checks
[chromium-blink-merge.git] / chromeos / audio / audio_devices_pref_handler.h
blob417c4ecbb8a4ea80417c5eb09a1098dd38c53c00
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROMEOS_AUDIO_AUDIO_DEVICES_PREF_HANDLER_H_
6 #define CHROMEOS_AUDIO_AUDIO_DEVICES_PREF_HANDLER_H_
8 #include "base/basictypes.h"
9 #include "base/memory/ref_counted.h"
10 #include "chromeos/audio/audio_pref_observer.h"
11 #include "chromeos/chromeos_export.h"
13 class PrefService;
15 namespace chromeos {
17 struct AudioDevice;
19 // Interface that handles audio preference related work, reads and writes
20 // audio preferences, and notifies AudioPrefObserver for audio preference
21 // changes.
22 class CHROMEOS_EXPORT AudioDevicesPrefHandler
23 : public base::RefCountedThreadSafe<AudioDevicesPrefHandler> {
24 public:
25 // Gets the audio output volume value from prefs for a device. Since we can
26 // only have either a gain or a volume for a device (depending on whether it
27 // is input or output), we don't really care which value it is.
28 virtual double GetOutputVolumeValue(const AudioDevice* device) = 0;
29 virtual double GetInputGainValue(const AudioDevice* device) = 0;
30 // Sets the audio volume or gain value to prefs for a device.
31 virtual void SetVolumeGainValue(const AudioDevice& device, double value) = 0;
33 // Reads the audio mute value from prefs for a device.
34 virtual bool GetMuteValue(const AudioDevice& device) = 0;
35 // Sets the audio mute value to prefs for a device.
36 virtual void SetMuteValue(const AudioDevice& device, bool mute_on) = 0;
38 // Reads the audio capture allowed value from prefs.
39 virtual bool GetAudioCaptureAllowedValue() = 0;
40 // Reads the audio output allowed value from prefs.
41 virtual bool GetAudioOutputAllowedValue() = 0;
43 // Adds an audio preference observer.
44 virtual void AddAudioPrefObserver(AudioPrefObserver* observer) = 0;
45 // Removes an audio preference observer.
46 virtual void RemoveAudioPrefObserver(AudioPrefObserver* observer) = 0;
48 // Creates the instance.
49 static AudioDevicesPrefHandler* Create(PrefService* local_state);
51 protected:
52 virtual ~AudioDevicesPrefHandler() {}
54 private:
55 friend class base::RefCountedThreadSafe<AudioDevicesPrefHandler>;
58 } // namespace chromeos
60 #endif // CHROMEOS_AUDIO_AUDIO_DEVICES_PREF_HANDLER_H_