mirror of
https://github.com/mpv-player/mpv
synced 2025-01-13 02:16:40 +00:00
client API: change semantics for MPV_FORMAT_STRING
With mpv_set_property(h, "property", MPV_FORMAT_STRING, ptr), ptr now has to be of type char** instead of char*. This makes it more consistent with mpv_get_property() and also non-pointer formats, which will be introduced in the following commits. mpv_set_property() of course does not change its interface (only its implementation is adjusted to keep its interface). This also affects mpv_set_option(), but again not mpv_set_option_string().
This commit is contained in:
parent
1e30048184
commit
1e27d130a2
@ -372,10 +372,16 @@ typedef enum mpv_format {
|
||||
* printf("%s\n", result);
|
||||
* mpv_free(result);
|
||||
*
|
||||
* Or just use mpv_get_property_string().
|
||||
*
|
||||
* Example for writing:
|
||||
*
|
||||
* char *value = "the new value";
|
||||
* mpv_set_property(ctx, "property", MPV_FORMAT_STRING, (void *)value);
|
||||
* // yep, you pass the address to the variable
|
||||
* // (needed for symmetry with other types and mpv_get_property)
|
||||
* mpv_set_property(ctx, "property", MPV_FORMAT_STRING, &value);
|
||||
*
|
||||
* Or just use mpv_set_property_string().
|
||||
*
|
||||
*/
|
||||
MPV_FORMAT_STRING = 1,
|
||||
@ -673,7 +679,13 @@ typedef struct mpv_event_property {
|
||||
*/
|
||||
mpv_format format;
|
||||
/**
|
||||
* Received property value. Depends on the format.
|
||||
* Received property value. Depends on the format. This is like the
|
||||
* pointer argument passed to mpv_get_property().
|
||||
*
|
||||
* For example, for MPV_FORMAT_STRING you get the string with:
|
||||
*
|
||||
* char *value = *(char **)(event_property->data);
|
||||
*
|
||||
* Note that this is set to NULL if retrieving the property failed.
|
||||
* See mpv_event.error for the status.
|
||||
*/
|
||||
|
@ -462,7 +462,7 @@ int mpv_set_option(mpv_handle *ctx, const char *name, mpv_format format,
|
||||
} else {
|
||||
if (format != MPV_FORMAT_STRING)
|
||||
return MPV_ERROR_OPTION_FORMAT;
|
||||
const char *value = data;
|
||||
const char *value = *(char **)data;
|
||||
int err = m_config_set_option0(ctx->mpctx->mconfig, name, value);
|
||||
switch (err) {
|
||||
case M_OPT_MISSING_PARAM:
|
||||
@ -481,7 +481,7 @@ int mpv_set_option(mpv_handle *ctx, const char *name, mpv_format format,
|
||||
|
||||
int mpv_set_option_string(mpv_handle *ctx, const char *name, const char *data)
|
||||
{
|
||||
return mpv_set_option(ctx, name, MPV_FORMAT_STRING, (void *)data);
|
||||
return mpv_set_option(ctx, name, MPV_FORMAT_STRING, &data);
|
||||
}
|
||||
|
||||
// Run a command in the playback thread.
|
||||
@ -635,7 +635,7 @@ int mpv_set_property(mpv_handle *ctx, const char *name, mpv_format format,
|
||||
.mpctx = ctx->mpctx,
|
||||
.name = name,
|
||||
.format = format,
|
||||
.data = data,
|
||||
.data = *(char **)data,
|
||||
};
|
||||
run_locked(ctx, setproperty_fn, &req);
|
||||
return req.status;
|
||||
@ -643,7 +643,7 @@ int mpv_set_property(mpv_handle *ctx, const char *name, mpv_format format,
|
||||
|
||||
int mpv_set_property_string(mpv_handle *ctx, const char *name, const char *data)
|
||||
{
|
||||
return mpv_set_property(ctx, name, MPV_FORMAT_STRING, (void *)data);
|
||||
return mpv_set_property(ctx, name, MPV_FORMAT_STRING, &data);
|
||||
}
|
||||
|
||||
int mpv_set_property_async(mpv_handle *ctx, uint64_t ud, const char *name,
|
||||
@ -657,7 +657,7 @@ int mpv_set_property_async(mpv_handle *ctx, uint64_t ud, const char *name,
|
||||
.mpctx = ctx->mpctx,
|
||||
.name = talloc_strdup(req, name),
|
||||
.format = MPV_FORMAT_STRING,
|
||||
.data = talloc_strdup(req, data), // for now always a string
|
||||
.data = talloc_strdup(req, *(char **)data), // for now always a string
|
||||
.reply_ctx = ctx,
|
||||
.userdata = ud,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user