input/qobuz: add setting "format_id"

This commit is contained in:
Max Kellermann
2018-01-26 17:30:28 +01:00
parent fce061b544
commit 67693c6ad0
5 changed files with 29 additions and 4 deletions

View File

@@ -52,10 +52,12 @@ QobuzClient::QobuzClient(EventLoop &event_loop,
const char *_app_id, const char *_app_secret,
const char *_device_manufacturer_id,
const char *_username, const char *_email,
const char *_password)
const char *_password,
const char *_format_id)
:base_url(_base_url), app_id(_app_id), app_secret(_app_secret),
device_manufacturer_id(_device_manufacturer_id),
username(_username), email(_email), password(_password),
format_id(_format_id),
curl(event_loop),
defer_invoke_handlers(event_loop, BIND_THIS_METHOD(InvokeHandlers))
{

View File

@@ -45,6 +45,7 @@ class QobuzClient final : QobuzLoginHandler {
const char *const app_id, *const app_secret;
const char *const device_manufacturer_id;
const char *const username, *const email, *const password;
const char *const format_id;
CurlInit curl;
@@ -72,7 +73,12 @@ public:
const char *_app_id, const char *_app_secret,
const char *_device_manufacturer_id,
const char *_username, const char *_email,
const char *_password);
const char *_password,
const char *_format_id);
const char *GetFormatId() const noexcept {
return format_id;
}
gcc_pure
CurlGlobal &GetCurl() noexcept;

View File

@@ -148,10 +148,13 @@ InitQobuzInput(EventLoop &event_loop, const ConfigBlock &block)
if (password == nullptr)
throw PluginUnavailable("No Qobuz password configured");
const char *format_id = block.GetBlockValue("format_id", "5");
qobuz_client = new QobuzClient(event_loop, base_url,
app_id, app_secret,
device_manufacturer_id,
username, email, password);
username, email, password,
format_id);
}
static void

View File

@@ -70,7 +70,7 @@ MakeTrackUrl(QobuzClient &client, const char *track_id)
return client.MakeSignedUrl("track", "getFileUrl",
{
{"track_id", track_id},
{"format_id", "5"},
{"format_id", client.GetFormatId()},
});
}