mirror of
https://github.com/owntone/owntone-server.git
synced 2025-02-26 12:59:19 -05:00
[spotify] Trigger scan after retrieving a valid access token from the
webinterface Library now offers the function "library_exec_async". This allows library sources to offer functions that will be executed in the library thread. Useful to allow partial scans of only one source.
This commit is contained in:
parent
ae1a45bacc
commit
adac1d3b5f
@ -689,6 +689,21 @@ library_is_exiting()
|
|||||||
return scan_exit;
|
return scan_exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Execute the function 'func' with the given argument 'arg' in the library thread.
|
||||||
|
*
|
||||||
|
* The pointer passed as argument is freed in the library thread after func returned.
|
||||||
|
*
|
||||||
|
* @param func The function to be executed
|
||||||
|
* @param arg Argument passed to func
|
||||||
|
* @return 0 if triggering the function execution succeeded, -1 on failure.
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
library_exec_async(command_function func, void *arg)
|
||||||
|
{
|
||||||
|
return commands_exec_async(cmdbase, func, arg);
|
||||||
|
}
|
||||||
|
|
||||||
static void *
|
static void *
|
||||||
library(void *arg)
|
library(void *arg)
|
||||||
{
|
{
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
|
#include "commands.h"
|
||||||
#include "db.h"
|
#include "db.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -88,6 +89,9 @@ library_set_scanning(bool is_scanning);
|
|||||||
bool
|
bool
|
||||||
library_is_exiting();
|
library_is_exiting();
|
||||||
|
|
||||||
|
int
|
||||||
|
library_exec_async(command_function func, void *arg);
|
||||||
|
|
||||||
int
|
int
|
||||||
library_init();
|
library_init();
|
||||||
|
|
||||||
|
@ -413,6 +413,9 @@ fptr_assign_all()
|
|||||||
// End of ugly part
|
// End of ugly part
|
||||||
|
|
||||||
|
|
||||||
|
static enum command_state
|
||||||
|
scan_webapi(void *arg, int *ret);
|
||||||
|
|
||||||
/* ------------------------------- MISC HELPERS ---------------------------- */
|
/* ------------------------------- MISC HELPERS ---------------------------- */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@ -1993,7 +1996,8 @@ spotify_oauth_callback(struct evbuffer *evbuf, struct evkeyvalq *param, const ch
|
|||||||
// Received a valid access token
|
// Received a valid access token
|
||||||
spotify_access_token_valid = true;
|
spotify_access_token_valid = true;
|
||||||
|
|
||||||
// TODO Trigger init-scan after successful access to spotifywebapi
|
// Trigger scan after successful access to spotifywebapi
|
||||||
|
library_exec_async(scan_webapi, NULL);
|
||||||
|
|
||||||
evbuffer_add_printf(evbuf, "ok, all done</p>\n");
|
evbuffer_add_printf(evbuf, "ok, all done</p>\n");
|
||||||
|
|
||||||
@ -2312,6 +2316,14 @@ fullrescan()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Thread: httpd */
|
||||||
|
static enum command_state
|
||||||
|
scan_webapi(void *arg, int *ret)
|
||||||
|
{
|
||||||
|
*ret = rescan();
|
||||||
|
return COMMAND_END;
|
||||||
|
}
|
||||||
|
|
||||||
/* Thread: main */
|
/* Thread: main */
|
||||||
int
|
int
|
||||||
spotify_init(void)
|
spotify_init(void)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user