~aleteoryx/muditaos

ref: 10f27328e82c84f3e7aaaae6075112ead7225f11 muditaos/module-apps/application-music-player/models/SongsModelInterface.hpp -rw-r--r-- 1.2 KiB
10f27328 — Przemyslaw Brudny [EGD-7215] Connected Sim contact import with backends 4 years ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#pragma once

#include <InternalModel.hpp>
#include <ListItemProvider.hpp>
#include <apps-common/Application.hpp>

namespace app::music_player
{
    class SongsListItemProvider : public app::InternalModel<gui::ListItem *>, public gui::ListItemProvider
    {
      public:
        virtual ~SongsListItemProvider() noexcept = default;

        virtual void createData(std::function<bool(const std::string &fileName)>) = 0;
    };

    class SongsModelInterface : public SongsListItemProvider
    {
      public:
        virtual ~SongsModelInterface() noexcept = default;

        enum class SongState
        {
            Playing,
            NotPlaying
        };

        virtual bool isSongPlaying() const noexcept                              = 0;
        virtual void setCurrentSongState(SongState songState) noexcept           = 0;
        virtual std::optional<audio::Token> getCurrentFileToken() const noexcept = 0;
        virtual void setCurrentFileToken(std::optional<audio::Token>) noexcept   = 0;
    };
} // namespace app::music_player