1c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)// found in the LICENSE file. 4c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 5c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)#include "chrome/browser/extensions/api/audio/audio_service.h" 6c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 7c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)namespace extensions { 8c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 9c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)class AudioServiceImpl : public AudioService { 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) public: 11c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) AudioServiceImpl() {} 12c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual ~AudioServiceImpl() {} 13c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 14c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Called by listeners to this service to add/remove themselves as observers. 15c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void AddObserver(Observer* observer) OVERRIDE; 16c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void RemoveObserver(Observer* observer) OVERRIDE; 17c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 18c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // Start to query audio device information. 19c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) virtual void StartGetInfo(const GetInfoCallback& callback) OVERRIDE; 20b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) virtual void SetActiveDevices(const DeviceIdList& device_list) OVERRIDE; 21b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) virtual bool SetDeviceProperties(const std::string& device_id, 22b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) bool muted, 23b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) int volume, 24b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) int gain) OVERRIDE; 25c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)}; 26c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 27c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void AudioServiceImpl::AddObserver(Observer* observer) { 28c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // TODO: implement this for platforms other than Chrome OS. 29c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 30c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 31c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void AudioServiceImpl::RemoveObserver(Observer* observer) { 32c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // TODO: implement this for platforms other than Chrome OS. 33c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 34c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 35c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)AudioService* AudioService::CreateInstance() { 36c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) return new AudioServiceImpl; 37c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 38c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 39c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)void AudioServiceImpl::StartGetInfo(const GetInfoCallback& callback) { 40c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) // TODO: implement this for platforms other than Chrome OS. 41c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) if (!callback.is_null()) 42c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) callback.Run(OutputInfo(), InputInfo(), false); 43c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} 44c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 45b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)void AudioServiceImpl::SetActiveDevices(const DeviceIdList& device_list) { 46b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)} 47b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) 48b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)bool AudioServiceImpl::SetDeviceProperties(const std::string& device_id, 49b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) bool muted, 50b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) int volume, 51b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) int gain) { 52b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) return false; 53b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles)} 54b2df76ea8fec9e32f6f3718986dba0d95315b29cTorne (Richard Coles) 55c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)} // namespace extensions 56