Serenity Operating System
1/*
2 * Copyright (c) 2021, Cesar Torres <shortanemoia@protonmail.com>
3 * Copyright (c) 2022, the SerenityOS developers.
4 *
5 * SPDX-License-Identifier: BSD-2-Clause
6 */
7
8#pragma once
9
10#include "VisualizationWidget.h"
11#include <LibGUI/Frame.h>
12
13class AlbumCoverVisualizationWidget final : public VisualizationWidget {
14 C_OBJECT(AlbumCoverVisualizationWidget)
15
16public:
17 AlbumCoverVisualizationWidget(Function<RefPtr<Gfx::Bitmap>()> get_file_cover_from_player);
18 ~AlbumCoverVisualizationWidget() override = default;
19 void start_new_file(StringView) override;
20
21private:
22 void render(GUI::PaintEvent&, FixedArray<float> const&) override { }
23 void paint_event(GUI::PaintEvent&) override;
24 AlbumCoverVisualizationWidget() = default;
25 ErrorOr<NonnullRefPtr<Gfx::Bitmap>> get_album_cover(StringView const filename);
26
27 Function<RefPtr<Gfx::Bitmap>()> m_get_file_cover_from_player;
28
29 RefPtr<Gfx::Bitmap> m_serenity_bg;
30 RefPtr<Gfx::Bitmap> m_album_cover;
31 RefPtr<Gfx::Bitmap> m_file_cover;
32};