A stub implementation of LastfmScrobbler is created. (contributes to #14)
HttpClient::send() is renamed to ::post(); ::get() is added. (contributes to #14)
HttpClient::NO_TIMEOUT is added to indicate that no timeout is set up.
Minor code changes.
Verification that the basic encoding is ASCII-compatible is uniformed.
Code style is uniformed.
UrlBuilder is introduced. (contributes to #14)
UrlBuilder#param(): 'const char *' values are accepted instead of 'std::string' ones for the sake of better performance and interoperability. (contributes to #14)
Initialiser-list appending is used instead of the array-based.
UrlBuilder now can be used only for environments with an ASCII-compatible default encoding.
UrlBuilder#param(): a version is introduced that takes sizes of the param name and value sequences.
UrlBuilder: various other ways to add a request parameter are added.
Gravifon Scrobbler: re-usable DeaDBeeF-related functionality is moved to deadbeef_util.hpp
An initial (no-op) implementation of lastfm_scrobbler. (contributes to #14)
The assertion that the lock is acquired upon Scrobbler::m_mutex is extracted into Scrobbler::assertLocked().
1) UnlockGuard is moved from gravifon_scobbler_deadbeef_plugin to libafc;
2) std::printf is used instead of ::printf;
3) a spelling mistake is corrected.
currentUTCTimeSeconds() is introduced.
UrlBuilder::paramName(const std::string &) and ::paramValue(const std::string &) are introduced.
The functionality from the C++ standard library is used accurately.
LastfmScrobbler: authentication is implemented. (contributes to #14)