// 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 MEDIA_AUDIO_AUDIO_THREAD_H_
#define MEDIA_AUDIO_AUDIO_THREAD_H_

#include "media/base/media_export.h"

namespace base {
class SingleThreadTaskRunner;
}  // namespace base

namespace media {

// This class encapulates the logic for the thread and task runners that the
// AudioManager and related classes run on.
class MEDIA_EXPORT AudioThread {
 public:
  virtual ~AudioThread() {}

  // Synchronously stops all underlying threads.
  virtual void Stop() = 0;

  // Indicates whether the audio thread is responsive. If false, calling Stop()
  // will likely block forever.
  virtual bool IsHung() const = 0;

  // Returns the task runner used for audio IO.
  // It always returns a non-null task runner (even after Stop has been called).
  virtual base::SingleThreadTaskRunner* GetTaskRunner() = 0;

  // Heavyweight tasks should use GetWorkerTaskRunner() instead of
  // GetTaskRunner(). On most platforms they are the same, but some share the
  // UI loop with the audio IO loop.
  // It always returns a non-null task runner (even after Stop has been called).
  virtual base::SingleThreadTaskRunner* GetWorkerTaskRunner() = 0;
};

}  // namespace media

#endif  // MEDIA_AUDIO_AUDIO_THREAD_H_
