#pragma once
#include "fat/ff.h"

/// @brief Interface for a background music service.
class IBgmService
{
public:
    virtual ~IBgmService() = 0;

    /// @brief Starts playback of the given file.
    /// @param filePath The file to play.
    /// @return True if playback was successfully started, or false otherwise.
    virtual bool StartBgm(const TCHAR* filePath) = 0;

    /// @brief Starts playback of the background music according to the app config.
    virtual void StartBgmFromConfig() = 0;

    /// @brief If currently playing, stops playback.
    virtual void StopBgm() = 0;
};

inline IBgmService::~IBgmService() { }
