// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef SERVICES_AUDIO_IN_PROCESS_AUDIO_MANAGER_ACCESSOR_H_
#define SERVICES_AUDIO_IN_PROCESS_AUDIO_MANAGER_ACCESSOR_H_

#include "base/macros.h"
#include "services/audio/service.h"

namespace media {
class AudioManager;
}

namespace audio {

// Holds a pointer to an existing AudioManager. Must be created on AudioManager
// main thread. To be used with in-process Audio service which does not own
// AudioManager.
class InProcessAudioManagerAccessor : public Service::AudioManagerAccessor {
 public:
  explicit InProcessAudioManagerAccessor(media::AudioManager* audio_manager);
  ~InProcessAudioManagerAccessor() final;

  void Shutdown() final {}  // AudioManager must be shut down by its owner.
  media::AudioManager* GetAudioManager() final;

 private:
  media::AudioManager* const audio_manager_;
  DISALLOW_COPY_AND_ASSIGN(InProcessAudioManagerAccessor);
};

}  // namespace audio

#endif  // SERVICES_AUDIO_IN_PROCESS_AUDIO_MANAGER_ACCESSOR_H_
