/******************************************************************************!
* \file Server.h
* \author Sebastien Beaugrand
* \sa http://beaugrand.chez.com/
* \copyright CeCILL 2.1 Free Software license
******************************************************************************/
#include <atomic>
#include <jsonrpccpp/server/connectors/httpserver.h>
#include "abstractstubserver.h"
class List;
class Player;
/******************************************************************************!
* \class Server
******************************************************************************/
class Server : public AbstractStubServer
{
public:
Server(jsonrpc::AbstractServerConnector& conn,
List& list,
Player& player);
virtual ~Server();
virtual Json::Value list() override;
virtual Json::Value info() override;
virtual Json::Value rand() override;
virtual Json::Value ok() override;
virtual Json::Value play() override;
virtual Json::Value pause() override;
virtual Json::Value stop() override;
virtual Json::Value prev() override;
virtual Json::Value next() override;
virtual Json::Value artist() override;
virtual Json::Value album(const std::string& artist, int pos) override;
virtual Json::Value pos(int pos) override;
virtual Json::Value dir(const std::string& path) override;
virtual std::string musicDirectory() override;
virtual void quit() override;
std::atomic_bool loop = true;
List& mList;
Player& mPlayer;
std::string mSelect;
std::chrono::time_point<std::chrono::steady_clock> mSelectTime;
};