blob: 1b8efcd944817c5a7f47103797b476babb9c4c72 [file] [log] [blame]
// Copyright 2021 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 CHROME_BROWSER_UI_GLOBAL_MEDIA_CONTROLS_MEDIA_NOTIFICATION_PRODUCER_H_
#define CHROME_BROWSER_UI_GLOBAL_MEDIA_CONTROLS_MEDIA_NOTIFICATION_PRODUCER_H_
#include <set>
#include <string>
#include "base/memory/weak_ptr.h"
namespace media_message_center {
class MediaNotificationItem;
} // namespace media_message_center
class MediaNotificationContainerImpl;
// Creates and owns the media notification items shown in the Global Media
// Controls. There are multiple MediaNotificationProducers for different types
// of notification items.
class MediaNotificationProducer {
public:
virtual base::WeakPtr<media_message_center::MediaNotificationItem>
GetNotificationItem(const std::string& id) = 0;
virtual std::set<std::string> GetActiveControllableNotificationIds()
const = 0;
virtual void OnItemShown(const std::string& id,
MediaNotificationContainerImpl* container) {}
};
#endif // CHROME_BROWSER_UI_GLOBAL_MEDIA_CONTROLS_MEDIA_NOTIFICATION_PRODUCER_H_