chromium/chromeos/ash/components/dbus/audio/fake_floss_media_client.h

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

#ifndef CHROMEOS_ASH_COMPONENTS_DBUS_AUDIO_FAKE_FLOSS_MEDIA_CLIENT_H_
#define CHROMEOS_ASH_COMPONENTS_DBUS_AUDIO_FAKE_FLOSS_MEDIA_CLIENT_H_

#include <stdint.h>

#include "base/component_export.h"
#include "chromeos/ash/components/dbus/audio/floss_media_client.h"

namespace ash {

// The FlossMediaClient implementation used on Linux desktop.
class COMPONENT_EXPORT(DBUS_AUDIO) FakeFlossMediaClient
    : public FlossMediaClient {
 public:
  FakeFlossMediaClient();

  FakeFlossMediaClient(const FakeFlossMediaClient&) = delete;
  FakeFlossMediaClient& operator=(const FakeFlossMediaClient&) = delete;

  ~FakeFlossMediaClient() override;

  static FakeFlossMediaClient* Get();

  void SetPlayerPlaybackStatus(const std::string& playback_status) override;
  void SetPlayerIdentity(const std::string& playback_identity) override;
  void SetPlayerPosition(const int64_t& position) override;
  void SetPlayerDuration(const int64_t& duration) override;
  void SetPlayerMetadata(
      const std::map<std::string, std::string>& metadata) override;
};

}  // namespace ash

#endif  // CHROMEOS_ASH_COMPONENTS_DBUS_AUDIO_FAKE_FLOSS_MEDIA_CLIENT_H_