input/tidal: add API documentation
This commit is contained in:
parent
187cc573a7
commit
1ecad094bd
src/input/plugins
@ -31,12 +31,20 @@
|
|||||||
|
|
||||||
class CurlRequest;
|
class CurlRequest;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Callback class for #TidalLoginRequest.
|
||||||
|
*
|
||||||
|
* Its methods must be thread-safe.
|
||||||
|
*/
|
||||||
class TidalLoginHandler {
|
class TidalLoginHandler {
|
||||||
public:
|
public:
|
||||||
virtual void OnTidalLoginSuccess(std::string &&session) noexcept = 0;
|
virtual void OnTidalLoginSuccess(std::string &&session) noexcept = 0;
|
||||||
virtual void OnTidalLoginError(std::exception_ptr error) noexcept = 0;
|
virtual void OnTidalLoginError(std::exception_ptr error) noexcept = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An asynchronous Tidal "login/username" request.
|
||||||
|
*/
|
||||||
class TidalLoginRequest final : CurlResponseHandler {
|
class TidalLoginRequest final : CurlResponseHandler {
|
||||||
CurlSlist request_headers;
|
CurlSlist request_headers;
|
||||||
|
|
||||||
|
@ -34,10 +34,20 @@
|
|||||||
class CurlRequest;
|
class CurlRequest;
|
||||||
class TidalLoginRequest;
|
class TidalLoginRequest;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Callback class for #TidalSessionManager.
|
||||||
|
*
|
||||||
|
* Its methods must be thread-safe.
|
||||||
|
*/
|
||||||
class TidalSessionHandler
|
class TidalSessionHandler
|
||||||
: public boost::intrusive::list_base_hook<boost::intrusive::link_mode<boost::intrusive::safe_link>>
|
: public boost::intrusive::list_base_hook<boost::intrusive::link_mode<boost::intrusive::safe_link>>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
/**
|
||||||
|
* TidalSessionHandler::AddLoginHandler() has completed
|
||||||
|
* (successful or failed). This method may now call
|
||||||
|
* #TidalSessionHandler::GetSession().
|
||||||
|
*/
|
||||||
virtual void OnTidalSession() noexcept = 0;
|
virtual void OnTidalSession() noexcept = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -105,6 +115,13 @@ public:
|
|||||||
return base_url;
|
return base_url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ask the object to call back once the login to Tidal has
|
||||||
|
* completed. If no session exists currently, then one is
|
||||||
|
* created. Since the callback may occur in another thread,
|
||||||
|
* the it may have been completed already before this method
|
||||||
|
* returns.
|
||||||
|
*/
|
||||||
void AddLoginHandler(TidalSessionHandler &h) noexcept;
|
void AddLoginHandler(TidalSessionHandler &h) noexcept;
|
||||||
|
|
||||||
void RemoveLoginHandler(TidalSessionHandler &h) noexcept {
|
void RemoveLoginHandler(TidalSessionHandler &h) noexcept {
|
||||||
@ -117,6 +134,10 @@ public:
|
|||||||
return token;
|
return token;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the Tidal session id, or rethrows an exception if an
|
||||||
|
* error has occurred while logging in.
|
||||||
|
*/
|
||||||
std::string GetSession() const {
|
std::string GetSession() const {
|
||||||
const std::lock_guard<Mutex> protect(mutex);
|
const std::lock_guard<Mutex> protect(mutex);
|
||||||
|
|
||||||
|
@ -31,6 +31,11 @@
|
|||||||
|
|
||||||
class CurlRequest;
|
class CurlRequest;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Callback class for #TidalTrackRequest.
|
||||||
|
*
|
||||||
|
* Its methods must be thread-safe.
|
||||||
|
*/
|
||||||
class TidalTrackHandler
|
class TidalTrackHandler
|
||||||
: public boost::intrusive::list_base_hook<boost::intrusive::link_mode<boost::intrusive::safe_link>>
|
: public boost::intrusive::list_base_hook<boost::intrusive::link_mode<boost::intrusive::safe_link>>
|
||||||
{
|
{
|
||||||
@ -39,6 +44,9 @@ public:
|
|||||||
virtual void OnTidalTrackError(std::exception_ptr error) noexcept = 0;
|
virtual void OnTidalTrackError(std::exception_ptr error) noexcept = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* An asynchronous request for the streaming URL of a Tidal track.
|
||||||
|
*/
|
||||||
class TidalTrackRequest final : CurlResponseHandler {
|
class TidalTrackRequest final : CurlResponseHandler {
|
||||||
CurlSlist request_headers;
|
CurlSlist request_headers;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user