mirror of
https://github.com/mpv-player/mpv
synced 2025-01-18 13:14:36 +00:00
global: add client API pointer to library handle
Makes the next commit simpler. It's probably a bad idea to add more fields to the global state, but on the other hand the client API state is pretty much per-instance anyway. It also will help with things like the proposed libmpv custom stream API.
This commit is contained in:
parent
2d4e8b623d
commit
31adc87bde
@ -7,6 +7,7 @@
|
||||
struct mpv_global {
|
||||
struct MPOpts *opts;
|
||||
struct mp_log *log;
|
||||
struct mp_client_api *client_api;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@ -21,6 +21,7 @@
|
||||
#include <assert.h>
|
||||
|
||||
#include "common/common.h"
|
||||
#include "common/global.h"
|
||||
#include "common/msg.h"
|
||||
#include "common/msg_control.h"
|
||||
#include "input/input.h"
|
||||
@ -137,6 +138,7 @@ void mp_clients_init(struct MPContext *mpctx)
|
||||
*mpctx->clients = (struct mp_client_api) {
|
||||
.mpctx = mpctx,
|
||||
};
|
||||
mpctx->global->client_api = mpctx->clients;
|
||||
pthread_mutex_init(&mpctx->clients->lock, NULL);
|
||||
}
|
||||
|
||||
@ -264,6 +266,11 @@ struct MPContext *mp_client_get_core(struct mpv_handle *ctx)
|
||||
return ctx->mpctx;
|
||||
}
|
||||
|
||||
struct MPContext *mp_client_api_get_core(struct mp_client_api *api)
|
||||
{
|
||||
return api->mpctx;
|
||||
}
|
||||
|
||||
static void wakeup_client(struct mpv_handle *ctx)
|
||||
{
|
||||
pthread_mutex_lock(&ctx->wakeup_lock);
|
||||
|
@ -31,6 +31,7 @@ void mp_client_property_change(struct MPContext *mpctx, const char *name);
|
||||
struct mpv_handle *mp_new_client(struct mp_client_api *clients, const char *name);
|
||||
struct mp_log *mp_client_get_log(struct mpv_handle *ctx);
|
||||
struct MPContext *mp_client_get_core(struct mpv_handle *ctx);
|
||||
struct MPContext *mp_client_api_get_core(struct mp_client_api *api);
|
||||
|
||||
void mp_resume_all(struct mpv_handle *ctx);
|
||||
|
||||
|
@ -250,6 +250,7 @@ struct mpv_global *create_sub_global(struct MPContext *mpctx)
|
||||
*new = (struct mpv_global){
|
||||
.log = mpctx->global->log,
|
||||
.opts = new_config->optstruct,
|
||||
.client_api = mpctx->clients,
|
||||
};
|
||||
return new;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user