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.
4
5#include "chrome/browser/extensions/api/audio/audio_service.h"
6
7namespace extensions {
8
9class AudioServiceImpl : public AudioService {
10 public:
11  AudioServiceImpl() {}
12  virtual ~AudioServiceImpl() {}
13
14  // Called by listeners to this service to add/remove themselves as observers.
15  virtual void AddObserver(Observer* observer) OVERRIDE;
16  virtual void RemoveObserver(Observer* observer) OVERRIDE;
17
18  // Start to query audio device information.
19  virtual void StartGetInfo(const GetInfoCallback& callback) OVERRIDE;
20  virtual void SetActiveDevices(const DeviceIdList& device_list) OVERRIDE;
21  virtual bool SetDeviceProperties(const std::string& device_id,
22                                   bool muted,
23                                   int volume,
24                                   int gain) OVERRIDE;
25};
26
27void AudioServiceImpl::AddObserver(Observer* observer) {
28  // TODO: implement this for platforms other than Chrome OS.
29}
30
31void AudioServiceImpl::RemoveObserver(Observer* observer) {
32  // TODO: implement this for platforms other than Chrome OS.
33}
34
35AudioService* AudioService::CreateInstance() {
36  return new AudioServiceImpl;
37}
38
39void AudioServiceImpl::StartGetInfo(const GetInfoCallback& callback) {
40  // TODO: implement this for platforms other than Chrome OS.
41  if (!callback.is_null())
42    callback.Run(OutputInfo(), InputInfo(), false);
43}
44
45void AudioServiceImpl::SetActiveDevices(const DeviceIdList& device_list) {
46}
47
48bool AudioServiceImpl::SetDeviceProperties(const std::string& device_id,
49                                           bool muted,
50                                           int volume,
51                                           int gain) {
52  return false;
53}
54
55}  // namespace extensions
56